using System; using System.Threading.Tasks; using Nethereum.Hex.HexConvertors.Extensions; using Nethereum.JsonRpc.Client; namespace Nethereum.RPC.Eth.Transactions { /// /// eth_sendRawTransaction /// Creates new message call transaction or a contract creation for signed transactions. /// Parameters /// DATA, The signed transaction data. /// params: ["0xd46e8dd67c5d32be8d46e8dd67c5d32be8058bb8eb970870f072445675058bb8eb970870f072445675"] /// Returns /// DATA, 32 Bytes - the transaction hash, or the zero hash if the transaction is not yet available. /// Use eth_getTransactionReceipt to get the contract address, after the transaction was mined, when you created a /// contract. /// Example /// Request /// curl -X POST --data '{"jsonrpc":"2.0","method":"eth_sendRawTransaction","params":[{see above}],"id":1}' /// Result /// { /// "id":1, /// "jsonrpc": "2.0", /// "result": "0xe670ec64341771606e55d6b4ca35a1a6b75ee3d5145a99d05921026d1527331" /// } /// public class EthSendRawTransaction : RpcRequestResponseHandler, IEthSendRawTransaction { public EthSendRawTransaction(IClient client) : base(client, ApiMethods.eth_sendRawTransaction.ToString()) { } public Task SendRequestAsync(string signedTransactionData, object id = null) { if (signedTransactionData == null) throw new ArgumentNullException(nameof(signedTransactionData)); return base.SendRequestAsync(id, signedTransactionData.EnsureHexPrefix()); } public RpcRequest BuildRequest(string signedTransactionData, object id = null) { if (signedTransactionData == null) throw new ArgumentNullException(nameof(signedTransactionData)); return base.BuildRequest(id, signedTransactionData.EnsureHexPrefix()); } } }