@coinbase/cdp-sdk
Version:
SDK for interacting with the Coinbase Developer Platform Wallet API
35 lines • 1.21 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.useSpendPermission = useSpendPermission;
const viem_1 = require("viem");
const constants_js_1 = require("../../../spend-permissions/constants.js");
const sendUserOperation_js_1 = require("../sendUserOperation.js");
/**
* Use a spend permission to spend tokens.
*
* @param apiClient - The API client to use.
* @param account - The smart account to use.
* @param options - The options for the spend permission.
*
* @returns The result of the spend permission.
*/
function useSpendPermission(apiClient, account, options) {
const { spendPermission, value, network } = options;
const data = (0, viem_1.encodeFunctionData)({
abi: constants_js_1.SPEND_PERMISSION_MANAGER_ABI,
functionName: "spend",
args: [spendPermission, value],
});
return (0, sendUserOperation_js_1.sendUserOperation)(apiClient, {
smartAccount: account,
network: network,
calls: [
{
to: constants_js_1.SPEND_PERMISSION_MANAGER_ADDRESS,
data,
value: 0n,
},
],
});
}
//# sourceMappingURL=smartAccount.use.js.map