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
        }
Beispiel #3
0
        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);
        }
Beispiel #4
0
        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 }
                    }
                }
            });
        }