Esempio n. 1
0
        public void TestToParameter()
        {
            StackItem byteItem = "00e057eb481b".HexToBytes();

            Assert.AreEqual(30000000000000L, (long)new BigInteger(byteItem.ToParameter().Value as byte[]));

            StackItem boolItem = false;

            Assert.AreEqual(false, (bool)boolItem.ToParameter().Value);

            StackItem intItem = new BigInteger(1000);

            Assert.AreEqual(1000, (BigInteger)intItem.ToParameter().Value);

            StackItem interopItem = new VM.Types.InteropInterface <string>("test");

            Assert.AreEqual(null, interopItem.ToParameter().Value);

            StackItem arrayItem = new VM.Types.Array(new[] { byteItem, boolItem, intItem, interopItem });

            Assert.AreEqual(1000, (BigInteger)(arrayItem.ToParameter().Value as List <ContractParameter>)[2].Value);

            StackItem mapItem = new VM.Types.Map(new Dictionary <StackItem, StackItem>(new[] { new KeyValuePair <StackItem, StackItem>(byteItem, intItem) }));

            Assert.AreEqual(1000, (BigInteger)(mapItem.ToParameter().Value as List <KeyValuePair <ContractParameter, ContractParameter> >)[0].Value.Value);
        }
Esempio n. 2
0
        private void TestToParameter2InteropInterface()
        {
            StackItem         item      = new VM.Types.InteropInterface <VM.Types.Boolean>(new VM.Types.Boolean(true));
            ContractParameter parameter = VM.Helper.ToParameter(item);

            Assert.AreEqual(ContractParameterType.InteropInterface, parameter.Type);
        }
Esempio n. 3
0
        public bool GetTransactions(ExecutionEngine engine)
        {
            var obj   = engine.EvaluationStack.Pop();
            var block = ((VM.Types.InteropInterface)obj).GetInterface <Block>();

            if (block == null)
            {
                return(false);
            }

            // returns Transaction[]

            var txs = new StackItem[block._transactions.Count];

            int index = 0;

            foreach (var tx in block.Transactions)
            {
                txs[index] = new VM.Types.InteropInterface(tx);
                index++;
            }

            var array = new VM.Types.Array(txs);

            throw new NotImplementedException();
        }
Esempio n. 4
0
        public bool GetTransactions(ExecutionEngine engine)
        {
            var obj   = engine.EvaluationStack.Pop();
            var block = obj.GetInterface <Block>();

            if (block == null)
            {
                return(false);
            }

            // returns Transaction[]

            var txs = new StackItem[block.transactions.Count];

            for (int i = 0; i < block.transactions.Count; i++)
            {
                var tx = block.transactions[i];
                txs[i] = new VM.Types.InteropInterface(tx);
            }

            var array = new VM.Types.Array(txs);

            throw new NotImplementedException();
        }