@exromany/lido-csm-sdk
Version:
[](https://github.com/lidofinance/lido-csm-sdk/blob/main/LICENSE.txt) [](h
25 lines • 916 B
JavaScript
import { encodeFunctionData } from 'viem';
/**
* Prepares a contract call for use with viem's sendCalls method
* @param contract - Contract instance from getContract
* @param functionName - Name of the contract function to call (type-safe from ABI)
* @param args - Function arguments (type-safe from ABI)
* @param value - ETH value to send (required for payable, forbidden for others)
* @returns Call object compatible with viem sendCalls format
*
* @example
* ```ts
* const call = prepCall(contract, 'transfer', ['0x...', 100n]);
* const payableCall = prepCall(contract, 'deposit', [], 1000n); // value required for payable
* ```
*/
export const prepCall = (contract, functionName, args, ...valueArgs) => ({
to: contract.address,
data: encodeFunctionData({
abi: contract.abi,
functionName,
args,
}),
value: valueArgs[0],
});
//# sourceMappingURL=prep-call.js.map