UNPKG

@lidofinance/lido-ethereum-sdk

Version:

<div style="display: flex;" align="center"> <h1 align="center">Lido Ethereum SDK</h1> </div>

44 lines 1.52 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getEncodableContract = void 0; const viem_1 = require("viem"); const getFunctionParameters = (values) => { const hasArgs = values.length > 0 && Array.isArray(values[0]); const args = (hasArgs ? values[0] : []); const options = ((hasArgs ? values[1] : values[0]) ?? {}); return { args, options }; }; const getEncodableContract = (contract) => { contract.prepare = new Proxy({}, { get(_, functionName) { return (...parameters) => { const { args } = getFunctionParameters(parameters); return { address: contract.address, abi: contract.abi, functionName, args, }; }; }, }); contract.encode = new Proxy({}, { get(_, functionName) { return (...parameters) => { const { args, options } = getFunctionParameters(parameters); return { to: contract.address, data: (0, viem_1.encodeFunctionData)({ abi: contract.abi, functionName, args, }), value: options.value, }; }; }, }); return contract; }; exports.getEncodableContract = getEncodableContract; //# sourceMappingURL=get-encodable-contract.js.map