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); }
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)); }
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")); }
public AbiFuncationCoder(IAbiFunctionDefinition definition) { this._definition = definition; }