public JObject sendTxPlusSign(string neoCliJsonRPCUrl, string txScriptHex, string signHex, string publicKeyHex) { byte[] txScript = txScriptHex.HexString2Bytes(); byte[] sign = signHex.HexString2Bytes(); byte[] pubkey = publicKeyHex.HexString2Bytes(); //byte[] prikey = privateKeyHex.HexToBytes(); //byte[] sign = null; //sign = ThinNeo.Helper.Sign(txScript, prikey); //var pubkey = ThinNeo.Helper.GetPublicKeyFromPrivateKey(prikey); var addr = ThinNeo.Helper.GetAddressFromPublicKey(pubkey); ThinNeo.Transaction lastTran = new ThinNeo.Transaction(); lastTran.Deserialize(new MemoryStream(txScript)); lastTran.witnesses = null; lastTran.AddWitness(sign, pubkey, addr); string TxPlusSignStr = string.Empty; using (var ms = new System.IO.MemoryStream()) { lastTran.Serialize(ms); TxPlusSignStr = ms.ToArray().ToHexString(); } return(sendrawtransaction(neoCliJsonRPCUrl, TxPlusSignStr)); }
private void Button_Click_4(object sender, RoutedEventArgs e) { if (lastTran == null) { return; } byte[] sign = null; using (var ms = new System.IO.MemoryStream()) { lastTran.SerializeUnsigned(ms); sign = ThinNeo.Helper.Sign(ms.ToArray(), prikey); ms.Close(); } var pubkey = ThinNeo.Helper.GetPublicKeyFromPrivateKey(prikey); var addr = ThinNeo.Helper.GetAddressFromPublicKey(pubkey); lastTran.witnesses = null; lastTran.AddWitness(sign, pubkey, addr); using (var ms = new System.IO.MemoryStream()) { lastTran.Serialize(ms); textTran.Text = ThinNeo.Helper.Bytes2HexString(ms.ToArray()); } }
private static string getTxSignHex(string txScriptHex, string signHex, string publicKeyHex) { byte[] txScript = txScriptHex.HexToBytes(); var sign = signHex.HexToBytes(); //byte[] prikey = privateKeyHex.HexToBytes(); //var prikeyStr = ThinNeo.Helper.Bytes2HexString(prikey); //byte[] sign = null; //sign = ThinNeo.Helper.Sign(txScript, prikey); //var signStr = ThinNeo.Helper.Bytes2HexString(sign); //var pubkey = ThinNeo.Helper.GetPublicKeyFromPrivateKey(prikey); var pubkey = publicKeyHex.HexToBytes(); var addr = ThinNeo.Helper.GetAddressFromPublicKey(pubkey); ThinNeo.Transaction lastTran = new ThinNeo.Transaction(); lastTran.Deserialize(new MemoryStream(txScriptHex.HexToBytes())); lastTran.witnesses = null; lastTran.AddWitness(sign, pubkey, addr); using (var ms = new System.IO.MemoryStream()) { lastTran.Serialize(ms); return(ThinNeo.Helper.Bytes2HexString(ms.ToArray())); } }