using System; using System.Threading.Tasks; using Nethereum.Hex.HexConvertors.Extensions; using Nethereum.JsonRpc.Client; namespace Nethereum.RPC.Eth { /// /// eth_sign /// Signs data with a given address. /// Note the address to sign must be unlocked. /// Parameters /// DATA, 20 Bytes - address /// DATA, Data to sign /// Returns /// DATA: Signed data /// Example /// Request /// curl -X POST --data '{"jsonrpc":"2.0","method":"eth_sign","params":["0xd1ade25ccd3d550a7eb532ac759cac7be09c2719", /// "0xdeadbeef"],"id":1}' /// Result /// { /// "id":1, /// "jsonrpc": "2.0", /// "result": /// "0x2ac19db245478a06032e69cdbd2b54e648b78431d0a47bd1fbab18f79f820ba407466e37adbe9e84541cab97ab7d290f4a64a5825c876d22109f3bf813254e8601" /// } /// public class EthSign : RpcRequestResponseHandler, IEthSign { public EthSign(IClient client) : base(client, ApiMethods.eth_sign.ToString()) { } public Task SendRequestAsync(string address, string data, object id = null) { if (address == null) throw new ArgumentNullException(nameof(address)); if (data == null) throw new ArgumentNullException(nameof(data)); return base.SendRequestAsync(id, address.EnsureHexPrefix(), data); } public RpcRequest BuildRequest(string address, string data, object id = null) { if (address == null) throw new ArgumentNullException(nameof(address)); if (data == null) throw new ArgumentNullException(nameof(data)); return base.BuildRequest(id, address.EnsureHexPrefix(), data); } } }