Пожалуйста, обратите внимание, что пользователь заблокирован
Здрасте, как то заказывал себе удобную библиотеку .dll (написана на Rust) для работы с сид фразами и приватными ключами из под дельфи, может кому то пригодится:
Внимание
1.Библиотека x64 разрядная то есть ваш проект тоже должен быть x64 разрядный иначе работать не будет
2.Работает только с тремя монетами ETH, BTC, BNB
Пароль на архив:
0xFCB4c4928CdB84544C4DB8C82D3fFDc06C0a3F95
Код:
unit Unit2;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, System.StrUtils;
type
TForm2 = class(TForm)
Button1: TButton;
Memo1: TMemo;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
const
mlib='coin.dll';
function Calc(phrase, dirPath, coin: PAnsiChar): PAnsiChar; cdecl; inline;
external mlib name 'gen_coin' delayed; inline;
function hex_to_addr(coin, wif: PAnsiChar): PAnsiChar; cdecl; inline;
external mlib name 'hex_to_addr' delayed; inline;
function wif_to_addr(coin, wif: PAnsiChar): PAnsiChar; cdecl; inline;
external mlib name 'wif_to_addr' delayed; inline;
function from_entropy(hex_entropy: PAnsiChar): PAnsiChar; cdecl; inline;
external mlib name 'from_entropy' delayed; inline;
function to_entropy(mnemonic: PAnsiChar): PAnsiChar; cdecl; inline;
external mlib name 'to_entropy' delayed; inline;
procedure CalcFree(coin: PAnsiChar); cdecl; inline;
external mlib name 'free_coin' delayed; inline;
implementation
{$R *.dfm}
procedure TForm2.Button1Click(Sender: TObject);
const
MyMnemonic='electric canvas manual bike pelican leader vicious art arrow ritual sponsor axis';
var
e:PAnsiChar;
begin
Memo1.Lines.Add('ETHEREUM:');
e:=hex_to_addr('ETH',PAnsiChar(AnsiString('a08a21a5f893a0929ea609c78e149a224fda2c964dcafd6a31789c550a5c41a0')));
Memo1.Lines.Add('HEXPrivateKey to walletaddress: '+SplitString(e,'|')[1]);
CalcFree(e);
e:=wif_to_addr('ETH',PAnsiChar(AnsiString('5K2zME1AQhG7prqgxTmsnypcBWDWq3xjjnbPFkyFFcDRpGjrCPs')));
Memo1.Lines.Add('WIFPrivateKey to walletaddress: '+SplitString(e,'|')[1]);
CalcFree(e);
e:=Calc(PAnsiChar(AnsiString(MyMnemonic)),'m/44''/60''/0''/0/0', 'ETH');
Memo1.Lines.Add('Wallet Address: '+SplitString(e,'|')[0]);
Memo1.Lines.Add('PublicKey: '+SplitString(e,'|')[1]);
Memo1.Lines.Add('PrivateKey: '+SplitString(e,'|')[2]);
CalcFree(e);
Memo1.Lines.Add('BITCOIN:');
e:=Calc(PAnsiChar(AnsiString(MyMnemonic)),'m/84''/0''/0''/0/0', 'BTCP2WPKH'); //// coin -> BTC | BTCP2SH | BTCP2WPKH
Memo1.Lines.Add('Wallet Address: '+SplitString(e,'|')[0]);
Memo1.Lines.Add('PublicKey: '+SplitString(e,'|')[1]);
Memo1.Lines.Add('PrivateKey: '+SplitString(e,'|')[2]);
CalcFree(e);
//Дополнительно:
Memo1.Lines.Add('FROMHEX: ');
e:=to_entropy(PAnsiChar(AnsiString(MyMnemonic)));
Memo1.Lines.Add('Mnemonic to HEX: '+e);
CalcFree(e);
e:=from_entropy(PAnsiChar(AnsiString('4764361d8b1a24fd3ce0660cb7534988')));
Memo1.Lines.Add('HEX to Mnemonic: '+e);
CalcFree(e);
end;
end.
Внимание
1.Библиотека x64 разрядная то есть ваш проект тоже должен быть x64 разрядный иначе работать не будет
2.Работает только с тремя монетами ETH, BTC, BNB
Скрытый контент для зарегистрированных пользователей.
Пароль на архив:
0xFCB4c4928CdB84544C4DB8C82D3fFDc06C0a3F95
Вложения
Последнее редактирование: