示例#1
0
        public byte[] Encode(params dynamic[] values)
        {
            MemoryStream stream = new MemoryStream();

            if (values.Length == this._definition.inputs.Length)
            {
                try
                {
                    AbiInputParameter[] parameters = new AbiInputParameter[values.Length];
                    for (int index = 0; index < values.Length; index++)
                    {
                        parameters[index] = new AbiInputParameter(this._definition.inputs[index], values[index]);
                    }
                    stream.Append(this._definition.Sha3Signature);
                    stream.Append(AbiParameterCoder.EncodeParames(parameters));
                }
                catch
                {
                    throw new ArgumentException("input values invalid");
                }
            }
            else
            {
                throw new ArgumentException("values number not match");
            }
            return(stream.ToArray());
        }
示例#2
0
        public byte[] EncodeConstructorWithParameter(params dynamic[] values)
        {
            if (this._definition.Constructor == null)
            {
                throw new ArgumentException("Constructor havn’t parameter");
            }

            List <AbiInputParameter> parameters = new List <AbiInputParameter>();

            for (int index = 0; index < values.Length; index++)
            {
                IAbiParameterDefinition parameDefinition = this._definition.Constructor.inputs[0];
                parameters.Add(new AbiInputParameter(parameDefinition, values[index]));
            }

            return(AbiParameterCoder.EncodeParames(parameters.ToArray()));
        }