@lidofinance/lido-ethereum-sdk
Version:
<div style="display: flex;" align="center"> <h1 align="center">Lido Ethereum SDK</h1> </div>
44 lines • 1.52 kB
JavaScript
;
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