UNPKG

@biconomy/abstractjs

Version:

SDK for Biconomy integration with support for account abstraction, smart accounts, ERC-4337.

69 lines 2.84 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.toGasTankAccount = toGasTankAccount; const viem_1 = require("viem"); const accounts_1 = require("viem/accounts"); const _1 = require("./index.js"); const createMeeClient_1 = require("../clients/createMeeClient.js"); const deployGasTank_1 = require("./decorators/deployGasTank.js"); const getGasTankAddress_1 = require("./decorators/getGasTankAddress.js"); const getGasTankBalance_1 = require("./decorators/getGasTankBalance.js"); const getGasTankNonce_1 = require("./decorators/getGasTankNonce.js"); const sponsorSupertransaction_1 = require("./decorators/sponsorSupertransaction.js"); const withdrawFromGasTank_1 = require("./decorators/withdrawFromGasTank.js"); async function toGasTankAccount(params) { const { chainConfiguration, privateKey, options } = params; const { chain, transport } = chainConfiguration; const mcNexus = await (0, _1.toMultichainNexusAccount)({ signer: (0, accounts_1.privateKeyToAccount)(privateKey), chainConfigurations: [chainConfiguration] }); const publicClient = (0, viem_1.createPublicClient)({ chain, transport }); const meeClient = await (0, createMeeClient_1.createMeeClient)({ account: mcNexus, ...(options?.mee?.url ? { url: options.mee.url } : {}), ...(options?.mee?.apiKey ? { apiKey: options.mee.apiKey } : {}) }); const getAddress = () => (0, getGasTankAddress_1.getGasTankAddress)(mcNexus, { chainId: chain.id }); const getBalance = (params) => (0, getGasTankBalance_1.getGasTankBalance)(mcNexus, { chainId: chain.id, tokenAddress: params.tokenAddress }); const signSponsorship = (params) => (0, sponsorSupertransaction_1.sponsorSupertransaction)(mcNexus, { chainId: chain.id, quote: params.quote }); const getNonce = () => (0, getGasTankNonce_1.getGasTankNonce)(mcNexus, { chainId: chain.id }); const isDeployed = () => { return mcNexus.deploymentOn(chain.id, true).isDeployed(); }; const deploy = (params) => (0, deployGasTank_1.default)(mcNexus, { meeClient, chainId: chain.id, tokenAddress: params.tokenAddress, amount: params.amount, confirmations: params.confirmations || 2 }); const withdraw = (params) => (0, withdrawFromGasTank_1.default)(mcNexus, { meeClient, chainId: chain.id, tokenAddress: params.tokenAddress, recipient: params.recipient, amount: params.amount, confirmations: params.confirmations || 2 }); return { publicClient, isDeployed, getAddress, getBalance, getNonce, signSponsorship, deploy, withdraw }; } //# sourceMappingURL=toGasTankAccount.js.map