public static string CreateAndSignTransaction(string recipientAddress, long value, string iso8601datetime) { //faucet public key: 3cd938497b04562b35c001705ed287405da8aff2c486f70413350ef4f108ef9d8 //faucet address: 9a959a9a2eb68ab550e0355dfef656a5e6016d71 string faucetPrivKey = "2debcee8a64fb677dfd6c43423058b86810e7319c957b16bebb4fbf9883ac6b9"; BigInteger hexPrivateKey = new BigInteger(faucetPrivKey, 16); string publicKey = GetPublicKeyCompressed(faucetPrivKey); string senderAddress = CalculateRipeMD160Digest(publicKey); Transaction tran = new Transaction { FromAddress = senderAddress, ToAddress = recipientAddress, SenderPubKey = publicKey, Value = value, Fee = 20, DateCreated = iso8601datetime, }; string tranJson = JsonConvert.SerializeObject(tran, new JsonSerializerSettings { ContractResolver = new CamelCasePropertyNamesContractResolver() }); TranHash = CalcSHA256(tranJson); string txHash = BytesToHex(TranHash); BigInteger[] tranSignature = SignTransaction(hexPrivateKey, TranHash); TransactionSign tranSigned = new TransactionSign { FromAddress = senderAddress, ToAddress = recipientAddress, Value = value, DateCreated = iso8601datetime, Fee = 20, SenderPubKey = publicKey, TransactionHash = txHash, SenderSignature = new string[] { tranSignature[0].ToString(16), tranSignature[1].ToString(16) } }; string signedTransactionJson = JsonConvert.SerializeObject(tranSigned, new JsonSerializerSettings { ContractResolver = new CamelCasePropertyNamesContractResolver() }); return(signedTransactionJson); }
public RPC_Result RPC_SendRawTransaction(IList <MessagePackObject> _params) { var message = _params.First(); var pubkey = this.pubkey; var sign = Helper_NEO.Sign(message.AsBinary(), this.prikey); var signdata = new TransactionSign(); signdata.VScript = pubkey; signdata.IScript = sign; var data = SerializeHelper.SerializeToBinary(signdata); this.Tell_SendRaw(this._System.GetPipeline(this, "this/node"), message.AsBinary(), data); var result = new MessagePackObject(0); return(new RPC_Result(result)); }