function encodeParameter(type, value) { assert(!_.isNil(value)); return abiEncoder.encodeParameter(type, normalizeEncodeValue(type, value)); }
function encodeFunctionCall(def, args=[]) { return abiEncoder.encodeFunctionCall( def, normalizeEncodeInput(def.inputs, args), ); }
function encodeConstructorCall(bytecode, def, args=[]) { return util.addHexPrefix(bytecode) + util.stripHexPrefix(abiEncoder.encodeParameters( def.inputs, normalizeEncodeInput(def.inputs, args), )); }
function decodeCallOutput(outputs, data) { return normalizeDecodedOutput( outputs, abiEncoder.decodeParameters(outputs, data)); }
function encodeLogSignature(def) { return abiEncoder.encodeEventSignature(def); }
function encodeLogTopicsFilter(def, args=[]) { const topicArgs = []; assert(def.inputs.length == args.length); for (let i = 0; i < args.length; i++) { if (def.inputs[i].indexed) { if (!_.isNil(args[i])) topicArgs.push(encodeParameter(def.inputs[i].type, args[i])); else topicArgs.push(null); } } return [abiEncoder.encodeEventSignature(def), ...topicArgs]; }
function decodeLogItemArgs(def, log) { return normalizeDecodedOutput( def.inputs, abiEncoder.decodeLog( def.inputs, log.data, log.topics.slice(1))); }
const abiItem = state.methodIDs[methodID]; if (abiItem) { let decoded = abiCoder.decodeParameters(abiItem.inputs, data.slice(10));
const decodedData = abiCoder.decodeParameters( dataTypes, logData.slice(2)