public async Task Test(string addressFrom, string privateKey, bool legacy) { var transfer = new TransferFunction(); transfer.To = "0x12890d2cce102216644c59daE5baed380d848301"; transfer.FromAddress = addressFrom; transfer.Value = 1; transfer.Nonce = 1; transfer.GasPrice = 100; transfer.Gas = 1000; var rpcClient = new HttpClient(new Uri("http://localhost:8545"), defaultTimeOutForTests); var transactionInput = transfer.CreateTransactionInput("0x12890d2cce102216644c59daE5baed380d84830c"); var account = new Account(privateKey, Chain.MainNet); account.TransactionManager.Client = rpcClient; var signature = await account.TransactionManager.SignTransactionAsync(transactionInput); var ledgerManager = await LedgerFactory.GetWindowsConnectedLedgerManager(); var externalAccount = new ExternalAccount(new LedgerExternalSigner(ledgerManager, 0, legacy), 1); await externalAccount.InitialiseAsync(); externalAccount.InitialiseDefaultTransactionManager(rpcClient); //Ensure contract data is enable in the settings of ledger nano var signature2 = await externalAccount.TransactionManager.SignTransactionAsync(transactionInput); Assert.Equal(signature, signature2); //Signing just transfer var signature3 = await externalAccount.TransactionManager.SignTransactionAsync(new TransactionInput() { From = addressFrom, GasPrice = new HexBigInteger(Transaction.DEFAULT_GAS_PRICE), Gas = new HexBigInteger(Transaction.DEFAULT_GAS_LIMIT), Nonce = new HexBigInteger(1), To = "0x12890d2cce102216644c59daE5baed380d848301", Value = new HexBigInteger(100) }); }
public LedgerWalletTest() { signer = LedgerFactory.GetLedgerWalletAsync(DerivationPath.DefaultBIP44).Result; Assert.True(signer != null); }