示例#1
0
        public static bool Get(ExecutionEngine engine)
        {
            //StorageContext context, byte[] key
            //OR
            //StorageContext context, string key

            //returns byte[]

            var context = engine.EvaluationStack.Pop();
            var item    = (VM.Types.ByteArray)engine.EvaluationStack.Pop();

            var key = item.GetByteArray();

            var data = OnGet != null?OnGet(key) : null;

            if (data == null)
            {
                data = new byte[0];
            }

            var result = new VM.Types.ByteArray(data);

            engine.EvaluationStack.Push(result);

            return(true);
        }
示例#2
0
        private void TestToParameter2ByteArray()
        {
            StackItem         item      = new VM.Types.ByteArray(new byte[] { 0x00 });
            ContractParameter parameter = VM.Helper.ToParameter(item);

            Assert.AreEqual(ContractParameterType.ByteArray, parameter.Type);
            Assert.AreEqual(Encoding.Default.GetString(new byte[] { 0x00 }), Encoding.Default.GetString((byte[])parameter.Value));
        }
示例#3
0
        public static bool Get(ExecutionEngine engine)
        {
            //StorageContext context, byte[] key
            //OR
            //StorageContext context, string key

            //returns byte[]

            var context = engine.EvaluationStack.Pop();
            var item    = (VM.Types.ByteArray)engine.EvaluationStack.Pop();

            var key = item.GetByteArray();

            var storage = context.GetInterface <Storage>();
            var data    = storage.Read(key);

            var result = new VM.Types.ByteArray(data);

            engine.EvaluationStack.Push(result);

            return(true);
        }