UNPKG

@lidofinance/lido-ethereum-sdk

Version:

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

42 lines 1.45 kB
import { encodeFunctionData } from 'viem'; // copy from view internals const getFunctionParameters = (values) => { const hasArgs = values.length > 0 && Array.isArray(values[0]); // eslint-disable-next-line @typescript-eslint/no-non-null-assertion const args = (hasArgs ? values[0] : []); const options = ((hasArgs ? values[1] : values[0]) ?? {}); return { args, options }; }; export 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: encodeFunctionData({ abi: contract.abi, functionName, args, }), value: options.value, }; }; }, }); return contract; }; //# sourceMappingURL=get-encodable-contract.js.map