本文整理汇总了C#中Transaction.ToBytes方法的典型用法代码示例。如果您正苦于以下问题:C# Transaction.ToBytes方法的具体用法?C# Transaction.ToBytes怎么用?C# Transaction.ToBytes使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Transaction
的用法示例。
在下文中一共展示了Transaction.ToBytes方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: test_witness
public void test_witness()
{
CKeyStore keystore = new CKeyStore();
CKeyStore keystore2 = new CKeyStore();
var key1 = new Key(true);
var key2 = new Key(true);
var key3 = new Key(true);
var key1L = new Key(false);
var key2L = new Key(false);
var pubkey1 = key1.PubKey;
var pubkey2 = key2.PubKey;
var pubkey3 = key3.PubKey;
var pubkey1L = key1L.PubKey;
var pubkey2L = key2L.PubKey;
keystore.AddKeyPubKey(key1, pubkey1);
keystore.AddKeyPubKey(key2, pubkey2);
keystore.AddKeyPubKey(key1L, pubkey1L);
keystore.AddKeyPubKey(key2L, pubkey2L);
Script scriptPubkey1, scriptPubkey2, scriptPubkey1L, scriptPubkey2L, scriptMulti;
scriptPubkey1 = new Script(Op.GetPushOp(pubkey1.ToBytes()), OpcodeType.OP_CHECKSIG);
scriptPubkey2 = new Script(Op.GetPushOp(pubkey2.ToBytes()), OpcodeType.OP_CHECKSIG);
scriptPubkey1L = new Script(Op.GetPushOp(pubkey1L.ToBytes()), OpcodeType.OP_CHECKSIG);
scriptPubkey2L = new Script(Op.GetPushOp(pubkey2L.ToBytes()), OpcodeType.OP_CHECKSIG);
List<PubKey> oneandthree = new List<PubKey>();
oneandthree.Add(pubkey1);
oneandthree.Add(pubkey3);
scriptMulti = PayToMultiSigTemplate.Instance.GenerateScriptPubKey(2, oneandthree.ToArray());
keystore.AddCScript(scriptPubkey1);
keystore.AddCScript(scriptPubkey2);
keystore.AddCScript(scriptPubkey1L);
keystore.AddCScript(scriptPubkey2L);
keystore.AddCScript(scriptMulti);
keystore.AddCScript(GetScriptForWitness(scriptPubkey1));
keystore.AddCScript(GetScriptForWitness(scriptPubkey2));
keystore.AddCScript(GetScriptForWitness(scriptPubkey1L));
keystore.AddCScript(GetScriptForWitness(scriptPubkey2L));
keystore.AddCScript(GetScriptForWitness(scriptMulti));
keystore2.AddCScript(scriptMulti);
keystore2.AddCScript(GetScriptForWitness(scriptMulti));
keystore2.AddKeyPubKey(key3, pubkey3);
Transaction output1, output2;
output1 = new Transaction();
output2 = new Transaction();
Transaction input1, input2;
input1 = new Transaction();
input2 = new Transaction();
// Normal pay-to-compressed-pubkey.
CreateCreditAndSpend(keystore, scriptPubkey1, ref output1, ref input1);
CreateCreditAndSpend(keystore, scriptPubkey2, ref output2, ref input2);
CheckWithFlag(output1, input1, 0, true);
CheckWithFlag(output1, input1, ScriptVerify.P2SH, true);
CheckWithFlag(output1, input1, ScriptVerify.Witness | ScriptVerify.P2SH, true);
CheckWithFlag(output1, input1, ScriptVerify.Standard, true);
CheckWithFlag(output1, input2, 0, false);
CheckWithFlag(output1, input2, ScriptVerify.P2SH, false);
CheckWithFlag(output1, input2, ScriptVerify.Witness | ScriptVerify.P2SH, false);
CheckWithFlag(output1, input2, ScriptVerify.Standard, false);
// P2SH pay-to-compressed-pubkey.
CreateCreditAndSpend(keystore, scriptPubkey1.Hash.ScriptPubKey, ref output1, ref input1);
CreateCreditAndSpend(keystore, scriptPubkey2.Hash.ScriptPubKey, ref output2, ref input2);
ReplaceRedeemScript(input2.Inputs[0], scriptPubkey1);
CheckWithFlag(output1, input1, 0, true);
CheckWithFlag(output1, input1, ScriptVerify.P2SH, true);
CheckWithFlag(output1, input1, ScriptVerify.Witness | ScriptVerify.P2SH, true);
CheckWithFlag(output1, input1, ScriptVerify.Standard, true);
CheckWithFlag(output1, input2, 0, true);
CheckWithFlag(output1, input2, ScriptVerify.P2SH, false);
CheckWithFlag(output1, input2, ScriptVerify.Witness | ScriptVerify.P2SH, false);
CheckWithFlag(output1, input2, ScriptVerify.Standard, false);
// Witness pay-to-compressed-pubkey (v0).
CreateCreditAndSpend(keystore, GetScriptForWitness(scriptPubkey1), ref output1, ref input1);
CreateCreditAndSpend(keystore, GetScriptForWitness(scriptPubkey2), ref output2, ref input2);
CheckWithFlag(output1, input1, 0, true);
CheckWithFlag(output1, input1, ScriptVerify.P2SH, true);
CheckWithFlag(output1, input1, ScriptVerify.Witness | ScriptVerify.P2SH, true);
CheckWithFlag(output1, input1, ScriptVerify.Standard, true);
CheckWithFlag(output1, input2, 0, true);
CheckWithFlag(output1, input2, ScriptVerify.P2SH, true);
CheckWithFlag(output1, input2, ScriptVerify.Witness | ScriptVerify.P2SH, false);
CheckWithFlag(output1, input2, ScriptVerify.Standard, false);
// P2SH witness pay-to-compressed-pubkey (v0).
CreateCreditAndSpend(keystore, GetScriptForWitness(scriptPubkey1).Hash.ScriptPubKey, ref output1, ref input1);
CreateCreditAndSpend(keystore, GetScriptForWitness(scriptPubkey2).Hash.ScriptPubKey, ref output2, ref input2);
ReplaceRedeemScript(input2.Inputs[0], GetScriptForWitness(scriptPubkey1));
CheckWithFlag(output1, input1, 0, true);
CheckWithFlag(output1, input1, ScriptVerify.P2SH, true);
CheckWithFlag(output1, input1, ScriptVerify.Witness | ScriptVerify.P2SH, true);
CheckWithFlag(output1, input1, ScriptVerify.Standard, true);
CheckWithFlag(output1, input2, 0, true);
CheckWithFlag(output1, input2, ScriptVerify.P2SH, true);
CheckWithFlag(output1, input2, ScriptVerify.Witness | ScriptVerify.P2SH, false);
CheckWithFlag(output1, input2, ScriptVerify.Standard, false);
// Normal pay-to-uncompressed-pubkey.
CreateCreditAndSpend(keystore, scriptPubkey1L, ref output1, ref input1);
//.........这里部分代码省略.........
示例2: CanParseWitTransaction
public void CanParseWitTransaction()
{
var hex = "010000000001015d896079097272b13ed9cb22acfabeca9ce83f586d98cc15a08ea2f9c558013b0300000000ffffffff01605af40500000000160014a8cbb5eca9af499cecaa08457690ab367f23d95b0247304402200b6baba4287f3321ae4ec6ba66420d9a48c3f3bc331603e7dca6b12ca75cce6102207fa582041b025605c0474b99a2d3ab5080d6ea14ae3a50b7de92596abf40fb4b012102cdfc0f4701e0c8db3a0913de5f635d0ea76663a8f80925567358d558603fae3500000000";
Transaction tx = new Transaction(hex);
var bytes = tx.ToBytes();
Assert.Equal(Encoders.Hex.EncodeData(bytes), hex);
Assert.Equal("4b3580bbcceb12fee91abc7f9e8e7d092e981d4bb38339204c457a04316d949a", tx.GetHash().ToString());
Assert.Equal("38331098fb804ef2e6dee7826a74b4af07e631a0f1082ffc063667ccb825d701", tx.GetWitHash().ToString());
var noWit = tx.WithOptions(TransactionOptions.None);
Assert.True(noWit.GetSerializedSize() < tx.GetSerializedSize());
tx = new Transaction("010000000001015d896079097272b13ed9cb22acfabeca9ce83f586d98cc15a08ea2f9c558013b0200000000ffffffff01605af40500000000160014a8cbb5eca9af499cecaa08457690ab367f23d95b02483045022100d3edd272c4ff247c36a1af34a2394859ece319f61ee85f759b94ec0ecd61912402206dbdc7c6ca8f7279405464d2d935b5e171dfd76656872f76399dbf333c0ac3a001fd08020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000");
ScriptError error;
Assert.False(tx.Inputs.AsIndexedInputs().First().VerifyScript(new Script("0 b7854eb547106248b136ca2bf48d8df2f1167588"), out error));
Assert.Equal(ScriptError.EqualVerify, error);
}
示例3: SendRawTransaction
public void SendRawTransaction(Transaction tx)
{
SendRawTransaction(tx.ToBytes());
}
示例4: SendRawTransactionAsync
public Task SendRawTransactionAsync(Transaction tx)
{
return SendRawTransactionAsync(tx.ToBytes());
}
示例5: CanParseWitTransaction
public void CanParseWitTransaction()
{
var hex = "010000000001015d896079097272b13ed9cb22acfabeca9ce83f586d98cc15a08ea2f9c558013b0300000000ffffffff01605af40500000000160014a8cbb5eca9af499cecaa08457690ab367f23d95b0247304402200b6baba4287f3321ae4ec6ba66420d9a48c3f3bc331603e7dca6b12ca75cce6102207fa582041b025605c0474b99a2d3ab5080d6ea14ae3a50b7de92596abf40fb4b012102cdfc0f4701e0c8db3a0913de5f635d0ea76663a8f80925567358d558603fae3500000000";
Transaction tx = new Transaction(hex);
var bytes = tx.ToBytes();
Assert.Equal(Encoders.Hex.EncodeData(bytes), hex);
Assert.Equal("4b3580bbcceb12fee91abc7f9e8e7d092e981d4bb38339204c457a04316d949a", tx.GetHash().ToString());
Assert.Equal("38331098fb804ef2e6dee7826a74b4af07e631a0f1082ffc063667ccb825d701", tx.GetWitHash().ToString());
var noWit = tx.RemoveOption(TransactionOptions.Witness);
Assert.True(noWit.GetSerializedSize() < tx.GetSerializedSize());
}