Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
var encodeF = function (abi, args, bytecode) {
if (abi) {
var abiInputs = types(abi.inputs)
args = convert.burrowToAbi(abiInputs, args) // If abi is passed, convert values accordingly
}
// If bytecode provided then this is a creation call, bytecode goes first
if (bytecode) {
var data = bytecode
if (abi) data += convert.bytesTB(coder.rawEncode(abiInputs, args))
return data
} else {
return functionSig(abi) + convert.bytesTB(coder.rawEncode(abiInputs, args))
}
}
export function encodeProxyCall(parametersType, values) {
const methodId = abi.methodID("initialize", parametersType).toString("hex");
const params = abi.rawEncode(parametersType, values).toString("hex");
return "0x" + methodId + params;
}
function encodeCall(name, arguments, values) {
const methodId = abi.methodID(name, arguments).toString('hex');
const params = abi.rawEncode(arguments, values).toString('hex');
return '0x' + methodId + params;
}
hash() {
return '0x' + abi.soliditySHA3(
['bytes32', 'bytes32', 'bytes32', 'bytes32', 'bytes32'],
[
this.instructionStack.hash(),
this.dataStack.hash(),
this.callStack.hash(),
this.registerVal.hash(),
this.staticVal.hash()
]).toString('hex');
}
}
export async function createComment (id, comment, address) {
let res
let userHash = `0x${soliditySHA3(['string'], [address]).toString('hex')}`
let user = address === 'anonymous' ? address : userHash.substr(2, 7)
try {
res = await axios.post(`${utilityApiURL}/create/comment`, {
id: id,
comment: comment,
address: user
})
return res
} catch (error) {
console.error(error)
}
}
encode(...params: any[]) {
return (
'0x' + signature + Abi.rawEncode(iTypes, params).toString('hex')
);
},
decode(raw: string) {
function encodeCall (name, args, values) {
const methodId = abi.methodID(name, args).toString('hex')
const params = abi.rawEncode(args, values).toString('hex')
return '0x' + methodId + params
}
export function abiEncodeData(payload, format = "") {
let abiEncodedData = ethereumjsAbi.rawEncode(payload.signature || [], payload.params);
if (format === "hex") return "0x" + abiEncodedData.toString("hex");
return abiEncodedData;
}
static generateHash(dataArgs) {
const types = [];
const args = [];
for (const value of dataArgs) {
types.push('uint256');
args.push(new BN(value, 16));
}
return Utilities.normalizeHex(abi.soliditySHA3(types, args).toString('hex').padStart(64, '0'));
}
export function tightlyPackedKeccak256(
inputTypes: string[],
...messages: any[]
) {
return '0x' + soliditySHA3(inputTypes, messages).toString('hex');
}