Beispiel #1
0
        private FunctionABI GetNethFunctionABI(IAbiFunctionDefinition definition)
        {
            var functionABI = new FunctionABI(definition.Name, definition.Constant);

            functionABI.InputParameters  = this.GetNethParameters(definition.inputs);
            functionABI.OutputParameters = this.GetNethParameters(definition.outputs);
            return(functionABI);
        }
Beispiel #2
0
        public AbiFuncationCoder GetFuncationCoder(string funcName)
        {
            IAbiFunctionDefinition funcDefinition = this._definition.Functions.Where(item => item.Name == funcName).First();

            if (funcDefinition == null)
            {
                throw new Exception("function not exists");
            }
            return(new AbiFuncationCoder(funcDefinition));
        }
Beispiel #3
0
        public void TestAbiFunctionBuilder()
        {
            string abiJson = "{\"constant\": false,\"inputs\": [{\"name\": \"a1\",\"type\": \"uint256\"},{\"name\": \"a2\",\"type\": \"string\"}],\"name\": \"f1\",\"outputs\": [{\"name\": \"r1\",\"type\": \"address\"},{\"name\": \"r2\",\"type\": \"bytes\"}],\"payable\": false,\"stateMutability\": \"nonpayable\",\"type\": \"function\"}";
            IAbiFunctionDefinition definition = (new AbiFunctionBuiler()).Builder(abiJson);

            Assert.True(definition.Type.Equals("function"));
            Assert.True(definition.Name.Equals("f1"));
            Assert.True(definition.Constant.Equals(false));
            Assert.True(definition.Payable.Equals(false));
            Assert.True(definition.stateMutability.Equals(AbiStateMutability.Nonpayable));
            Assert.True(definition.Sha3Signature.SequenceEqual("0x27fcbb2f".ToBytes()));

            Assert.True(definition.inputs.Length == 2);
            Assert.True(definition.inputs[0].Name.Equals("a1"));
            Assert.True(definition.inputs[0].ABIType.Equals("uint256"));
            Assert.True(definition.inputs[1].Name.Equals("a2"));
            Assert.True(definition.inputs[1].ABIType.Equals("string"));

            Assert.True(definition.outputs.Length == 2);
            Assert.True(definition.outputs[0].Name.Equals("r1"));
            Assert.True(definition.outputs[0].ABIType.Equals("address"));
            Assert.True(definition.outputs[1].Name.Equals("r2"));
            Assert.True(definition.outputs[1].ABIType.Equals("bytes"));
        }
Beispiel #4
0
 public AbiFuncationCoder(IAbiFunctionDefinition definition)
 {
     this._definition = definition;
 }