当前位置: 首页>>代码示例>>C#>>正文


C# Transaction.ReadWrite方法代码示例

本文整理汇总了C#中Transaction.ReadWrite方法的典型用法代码示例。如果您正苦于以下问题:C# Transaction.ReadWrite方法的具体用法?C# Transaction.ReadWrite怎么用?C# Transaction.ReadWrite使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Transaction的用法示例。


在下文中一共展示了Transaction.ReadWrite方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: Entity

            public Entity(DynamicTableEntity entity)
            {
                var splitted = entity.RowKey.Split(new string[] { "-" }, StringSplitOptions.None);
                _PartitionKey = entity.PartitionKey;
                Timestamp = entity.Timestamp;
                TxId = uint256.Parse(splitted[0]);
                Type = GetType(splitted[1]);
                if(splitted.Length >= 3 && splitted[2] != string.Empty)
                    BlockId = uint256.Parse(splitted[2]);
                var bytes = Helper.GetEntityProperty(entity, "a");
                if(bytes != null && bytes.Length != 0)
                {
                    Transaction = new Transaction();
                    Transaction.ReadWrite(bytes);
                }
                bytes = Helper.GetEntityProperty(entity, "b");
                if(bytes != null && bytes.Length != 0)
                {
                    ColoredTransaction = new ColoredTransaction();
                    ColoredTransaction.ReadWrite(bytes);
                }
                _PreviousTxOuts = Helper.DeserializeList<TxOut>(Helper.GetEntityProperty(entity, "c"));

                var timestamp = Helper.GetEntityProperty(entity, "d");
                if(timestamp != null && timestamp.Length == 8)
                {
                    Timestamp = new DateTimeOffset((long)ToUInt64(timestamp, 0), TimeSpan.Zero);
                }
            }
开发者ID:bijakatlykkex,项目名称:NBitcoin.Indexer,代码行数:29,代码来源:TransactionEntry.cs

示例2: sighash_from_data

		public void sighash_from_data()
		{
			var tests = TestCase.read_json("Data/sighash.json");

			foreach(var test in tests)
			{
				var strTest = test.ToString();
				if(test.Count < 1) // Allow for extra stuff (useful for comments)
				{
					Assert.True(false, "Bad test: " + strTest);
					continue;
				}
				if(test.Count == 1)
					continue; // comment

				string raw_tx, raw_script, sigHashHex;
				int nIn, nHashType;
				Transaction tx = new Transaction();
				Script scriptCode = new Script();


				// deserialize test data
				raw_tx = (string)test[0];
				raw_script = (string)test[1];
				nIn = (int)(long)test[2];
				nHashType = (int)(long)test[3];
				sigHashHex = (string)test[4];


				tx.ReadWrite(ParseHex(raw_tx));


				ValidationState state = Network.Main.CreateValidationState();
				Assert.True(state.CheckTransaction(tx), strTest);
				Assert.True(state.IsValid);

				var raw = ParseHex(raw_script);
				scriptCode = new Script(raw);



				var sh = Script.SignatureHash(scriptCode, tx, nIn, (SigHash)nHashType);
				Assert.True(sh.ToString() == sigHashHex, strTest);
			}
		}
开发者ID:n1rvana,项目名称:NBitcoin,代码行数:45,代码来源:sighash_tests.cs

示例3: bloom_match

		public void bloom_match()
		{
			// Random real transaction (b4749f017444b051c44dfd2720e88f314ff94f3dd6d56d40ef65854fcd7fff6b)
			Transaction tx = new Transaction();
			tx.ReadWrite(ParseHex("01000000010b26e9b7735eb6aabdf358bab62f9816a21ba9ebdb719d5299e88607d722c190000000008b4830450220070aca44506c5cef3a16ed519d7c3c39f8aab192c4e1c90d065f37b8a4af6141022100a8e160b856c2d43d27d8fba71e5aef6405b8643ac4cb7cb3c462aced7f14711a0141046d11fee51b0e60666d5049a9101a72741df480b96ee26488a4d3466b95c9a40ac5eeef87e10a5cd336c19a84565f80fa6c547957b7700ff4dfbdefe76036c339ffffffff021bff3d11000000001976a91404943fdd508053c75000106d3bc6e2754dbcff1988ac2f15de00000000001976a914a266436d2965547608b9e15d9032a7b9d64fa43188ac00000000"));


			// and one which spends it (e2769b09e784f32f62ef849763d4f45b98e07ba658647343b915ff832b110436)
			var ch = new byte[] { 0x01, 0x00, 0x00, 0x00, 0x01, 0x6b, 0xff, 0x7f, 0xcd, 0x4f, 0x85, 0x65, 0xef, 0x40, 0x6d, 0xd5, 0xd6, 0x3d, 0x4f, 0xf9, 0x4f, 0x31, 0x8f, 0xe8, 0x20, 0x27, 0xfd, 0x4d, 0xc4, 0x51, 0xb0, 0x44, 0x74, 0x01, 0x9f, 0x74, 0xb4, 0x00, 0x00, 0x00, 0x00, 0x8c, 0x49, 0x30, 0x46, 0x02, 0x21, 0x00, 0xda, 0x0d, 0xc6, 0xae, 0xce, 0xfe, 0x1e, 0x06, 0xef, 0xdf, 0x05, 0x77, 0x37, 0x57, 0xde, 0xb1, 0x68, 0x82, 0x09, 0x30, 0xe3, 0xb0, 0xd0, 0x3f, 0x46, 0xf5, 0xfc, 0xf1, 0x50, 0xbf, 0x99, 0x0c, 0x02, 0x21, 0x00, 0xd2, 0x5b, 0x5c, 0x87, 0x04, 0x00, 0x76, 0xe4, 0xf2, 0x53, 0xf8, 0x26, 0x2e, 0x76, 0x3e, 0x2d, 0xd5, 0x1e, 0x7f, 0xf0, 0xbe, 0x15, 0x77, 0x27, 0xc4, 0xbc, 0x42, 0x80, 0x7f, 0x17, 0xbd, 0x39, 0x01, 0x41, 0x04, 0xe6, 0xc2, 0x6e, 0xf6, 0x7d, 0xc6, 0x10, 0xd2, 0xcd, 0x19, 0x24, 0x84, 0x78, 0x9a, 0x6c, 0xf9, 0xae, 0xa9, 0x93, 0x0b, 0x94, 0x4b, 0x7e, 0x2d, 0xb5, 0x34, 0x2b, 0x9d, 0x9e, 0x5b, 0x9f, 0xf7, 0x9a, 0xff, 0x9a, 0x2e, 0xe1, 0x97, 0x8d, 0xd7, 0xfd, 0x01, 0xdf, 0xc5, 0x22, 0xee, 0x02, 0x28, 0x3d, 0x3b, 0x06, 0xa9, 0xd0, 0x3a, 0xcf, 0x80, 0x96, 0x96, 0x8d, 0x7d, 0xbb, 0x0f, 0x91, 0x78, 0xff, 0xff, 0xff, 0xff, 0x02, 0x8b, 0xa7, 0x94, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x19, 0x76, 0xa9, 0x14, 0xba, 0xde, 0xec, 0xfd, 0xef, 0x05, 0x07, 0x24, 0x7f, 0xc8, 0xf7, 0x42, 0x41, 0xd7, 0x3b, 0xc0, 0x39, 0x97, 0x2d, 0x7b, 0x88, 0xac, 0x40, 0x94, 0xa8, 0x02, 0x00, 0x00, 0x00, 0x00, 0x19, 0x76, 0xa9, 0x14, 0xc1, 0x09, 0x32, 0x48, 0x3f, 0xec, 0x93, 0xed, 0x51, 0xf5, 0xfe, 0x95, 0xe7, 0x25, 0x59, 0xf2, 0xcc, 0x70, 0x43, 0xf9, 0x88, 0xac, 0x00, 0x00, 0x00, 0x00, 0x00 };
			var vch = ch.Take(ch.Length - 1).ToArray();

			Transaction spendingTx = new Transaction();
			spendingTx.ReadWrite(vch);

			BloomFilter filter = new BloomFilter(10, 0.000001, 0, BloomFlags.UPDATE_ALL);
			filter.Insert(uint256.Parse("0xb4749f017444b051c44dfd2720e88f314ff94f3dd6d56d40ef65854fcd7fff6b"));
			Assert.True(filter.IsRelevantAndUpdate(tx), "Simple Bloom filter didn't match tx hash");

			filter = new BloomFilter(10, 0.000001, 0, BloomFlags.UPDATE_ALL);
			// byte-reversed tx hash
			filter.Insert(ParseHex("6bff7fcd4f8565ef406dd5d63d4ff94f318fe82027fd4dc451b04474019f74b4"));
			Assert.True(filter.IsRelevantAndUpdate(tx), "Simple Bloom filter didn't match manually serialized tx hash");

			filter = new BloomFilter(10, 0.000001, 0, BloomFlags.UPDATE_ALL);
			filter.Insert(ParseHex("30450220070aca44506c5cef3a16ed519d7c3c39f8aab192c4e1c90d065f37b8a4af6141022100a8e160b856c2d43d27d8fba71e5aef6405b8643ac4cb7cb3c462aced7f14711a01"));
			Assert.True(filter.IsRelevantAndUpdate(tx), "Simple Bloom filter didn't match input signature");

			filter = new BloomFilter(10, 0.000001, 0, BloomFlags.UPDATE_ALL);
			filter.Insert(ParseHex("046d11fee51b0e60666d5049a9101a72741df480b96ee26488a4d3466b95c9a40ac5eeef87e10a5cd336c19a84565f80fa6c547957b7700ff4dfbdefe76036c339"));
			Assert.True(filter.IsRelevantAndUpdate(tx), "Simple Bloom filter didn't match input pub key");

			filter = new BloomFilter(10, 0.000001, 0, BloomFlags.UPDATE_ALL);
			filter.Insert(ParseHex("04943fdd508053c75000106d3bc6e2754dbcff19"));
			Assert.True(filter.IsRelevantAndUpdate(tx), "Simple Bloom filter didn't match output address");
			Assert.True(filter.IsRelevantAndUpdate(spendingTx), "Simple Bloom filter didn't add output");

			filter = new BloomFilter(10, 0.000001, 0, BloomFlags.UPDATE_ALL);
			filter.Insert(ParseHex("a266436d2965547608b9e15d9032a7b9d64fa431"));
			Assert.True(filter.IsRelevantAndUpdate(tx), "Simple Bloom filter didn't match output address");

			filter = new BloomFilter(10, 0.000001, 0, BloomFlags.UPDATE_ALL);
			filter.Insert(new OutPoint(uint256.Parse("0x90c122d70786e899529d71dbeba91ba216982fb6ba58f3bdaab65e73b7e9260b"), 0));
			Assert.True(filter.IsRelevantAndUpdate(tx), "Simple Bloom filter didn't match COutPoint");

			filter = new BloomFilter(10, 0.000001, 0, BloomFlags.UPDATE_ALL);
			OutPoint prevOutPoint = new OutPoint(uint256.Parse("0x90c122d70786e899529d71dbeba91ba216982fb6ba58f3bdaab65e73b7e9260b"), 0);
			{
				var data = prevOutPoint.ToBytes();
				filter.Insert(data);
			}
			Assert.True(filter.IsRelevantAndUpdate(tx), "Simple Bloom filter didn't match manually serialized COutPoint");

			filter = new BloomFilter(10, 0.000001, 0, BloomFlags.UPDATE_ALL);
			filter.Insert(uint256.Parse("00000009e784f32f62ef849763d4f45b98e07ba658647343b915ff832b110436"));
			Assert.True(!filter.IsRelevantAndUpdate(tx), "Simple Bloom filter matched random tx hash");

			filter = new BloomFilter(10, 0.000001, 0, BloomFlags.UPDATE_ALL);
			filter.Insert(ParseHex("0000006d2965547608b9e15d9032a7b9d64fa431"));
			Assert.True(!filter.IsRelevantAndUpdate(tx), "Simple Bloom filter matched random address");

			filter = new BloomFilter(10, 0.000001, 0, BloomFlags.UPDATE_ALL);
			filter.Insert(new OutPoint(uint256.Parse("0x90c122d70786e899529d71dbeba91ba216982fb6ba58f3bdaab65e73b7e9260b"), 1));
			Assert.True(!filter.IsRelevantAndUpdate(tx), "Simple Bloom filter matched COutPoint for an output we didn't care about");

			filter = new BloomFilter(10, 0.000001, 0, BloomFlags.UPDATE_ALL);
			filter.Insert(new OutPoint(uint256.Parse("0x000000d70786e899529d71dbeba91ba216982fb6ba58f3bdaab65e73b7e9260b"), 0));
			Assert.True(!filter.IsRelevantAndUpdate(tx), "Simple Bloom filter matched COutPoint for an output we didn't care about");
		}
开发者ID:crowar,项目名称:NBitcoin,代码行数:68,代码来源:bloom_tests.cs

示例4: GetRawTransactionAsync

		public async Task<Transaction> GetRawTransactionAsync(uint256 txid, bool throwIfNotFound = true)
		{
			var response = await SendCommandAsync(new RPCRequest("getrawtransaction", new[] { txid.ToString() }), throwIfNotFound).ConfigureAwait(false);
			if (throwIfNotFound)
				response.ThrowIfError();
			if (response.Error != null && response.Error.Code == RPCErrorCode.RPC_INVALID_ADDRESS_OR_KEY)
				return null;

			response.ThrowIfError();
			var tx = new Transaction();
			tx.ReadWrite(Encoders.Hex.DecodeData(response.Result.ToString()));
			return tx;
		}
开发者ID:hu53yin,项目名称:NBitcoin,代码行数:13,代码来源:RPCClient.cs

示例5: GetRawTransaction

 public Transaction GetRawTransaction(uint256 txid)
 {
     var response = SendCommand("getrawtransaction", txid.ToString());
     var tx = new Transaction();
     tx.ReadWrite(Encoders.Hex.DecodeData(response.Result.ToString()));
     return tx;
 }
开发者ID:nikropht,项目名称:NBitcoin,代码行数:7,代码来源:RPCClient.cs


注:本文中的Transaction.ReadWrite方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。