public override async Task SignAsync(CeloTransactionChainId transaction) { var txMessage = new EthereumSignTx { Nonce = transaction.Nonce, GasPrice = transaction.GasPrice, GasLimit = transaction.GasLimit, To = transaction.ReceiveAddress, Value = transaction.Value, AddressNs = GetPath(), ChainId = (uint)new BigInteger(transaction.ChainId) }; if (transaction.Data.Length > 0) { txMessage.DataInitialChunk = transaction.Data; txMessage.DataLength = (uint)transaction.Data.Length; } var signature = await TrezorManager.SendMessageAsync <EthereumTxRequest, EthereumSignTx>(txMessage); if (signature.SignatureS == null || signature.SignatureR == null) { throw new Exception("Signing failure or not accepted"); } transaction.SetSignature(EthECDSASignatureFactory.FromComponents(signature.SignatureR, signature.SignatureS, (byte)signature.SignatureV)); }
public override async Task SignAsync(CeloTransactionChainId transaction) { await SignHashTransactionAsync(transaction).ConfigureAwait(false); }