public void ToJson() { CoinReference[] refs = new[] { TestUtils.GetCoinReference(new UInt256(TestUtils.GetByteArray(32, 0x42))) }; uut.Claims = refs; uut.Attributes = new TransactionAttribute[0]; uut.Inputs = new CoinReference[0]; uut.Outputs = new TransactionOutput[0]; uut.Witnesses = new Witness[0]; JObject jObj = uut.ToJson(); jObj.Should().NotBeNull(); jObj["txid"].AsString().Should().Be("0x45a5c537ca95d62add6b331cad0fd742ce29ada02c50ea7e4d709f83563972b9"); jObj["size"].AsNumber().Should().Be(41); jObj["type"].AsString().Should().Be("ClaimTransaction"); jObj["version"].AsNumber().Should().Be(0); ((JArray)jObj["attributes"]).Count.Should().Be(0); ((JArray)jObj["vin"]).Count.Should().Be(0); ((JArray)jObj["vout"]).Count.Should().Be(0); jObj["sys_fee"].AsString().Should().Be("0"); jObj["net_fee"].AsString().Should().Be("0"); ((JArray)jObj["scripts"]).Count.Should().Be(0); JArray claims = (JArray)jObj["claims"]; claims.Count.Should().Be(1); claims[0]["txid"].AsString().Should().Be("0x2020202020202020202020202020202020202020202020202020202020202042"); claims[0]["vout"].AsNumber().Should().Be(0); }
public void Size__Get_3_Claims() { CoinReference[] refs = new[] { TestUtils.GetCoinReference(null), TestUtils.GetCoinReference(null), TestUtils.GetCoinReference(null) }; uut.Claims = refs; uut.Attributes = new TransactionAttribute[0]; uut.Inputs = new CoinReference[0]; uut.Outputs = new TransactionOutput[0]; uut.Witnesses = new Witness[0]; uut.Size.Should().Be(109); // 1, 1, 1, 1, 1, 1 + claims 103 }
public void GetScriptHashesForVerifying_1_Claim() { CoinReference[] refs = new[] { TestUtils.GetCoinReference(new UInt256(TestUtils.GetByteArray(32, 0x42))) }; uut.Claims = refs; uut.Attributes = new TransactionAttribute[0]; uut.Inputs = new CoinReference[0]; uut.Outputs = new TransactionOutput[0]; uut.Scripts = new Witness[0]; TestUtils.SetupTestBlockchain(UInt256.Zero); UInt160[] res = uut.GetScriptHashesForVerifying(); res.Length.Should().Be(1); }
private IssueTransaction getIssueTransaction(bool inputVal, decimal outputVal, UInt256 assetId) { TestUtils.SetupTestBlockchain(assetId); CoinReference[] inputsVal; if (inputVal) { inputsVal = new[] { TestUtils.GetCoinReference(null) }; } else { inputsVal = new CoinReference[0]; } return(new IssueTransaction { Attributes = new TransactionAttribute[0], Inputs = inputsVal, Outputs = new[] { new TransactionOutput { AssetId = assetId, Value = Fixed8.FromDecimal(outputVal), ScriptHash = Contract.CreateMultiSigRedeemScript(1, TestUtils.StandbyValidators).ToScriptHash() } }, Scripts = new[] { new Witness { InvocationScript = new byte[0], VerificationScript = new[] { (byte)OpCode.PUSHT } } } }); }