@abstract-foundation/agw-client
Version:
Abstract Global Wallet Client SDK
45 lines • 1.6 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.toSessionClient = toSessionClient;
exports.createSessionClient = createSessionClient;
const viem_1 = require("viem");
const accounts_1 = require("viem/accounts");
const walletActions_js_1 = require("./walletActions.js");
function toSessionClient({ client, signer, session, paymasterHandler, }) {
return createSessionClient({
account: client.account,
chain: client.chain,
session,
signer,
transport: (0, viem_1.custom)(client.transport),
paymasterHandler,
});
}
function createSessionClient({ account, signer, chain, transport, session, paymasterHandler, nonceManager, }) {
if (!transport) {
transport = (0, viem_1.http)(undefined, {
batch: true,
});
}
const publicClient = (0, viem_1.createPublicClient)({
transport,
chain,
});
const parsedAccount = typeof account === 'string' ? (0, accounts_1.toAccount)(account) : account;
if (nonceManager) {
parsedAccount.nonceManager = nonceManager;
}
const baseClient = (0, viem_1.createClient)({
account: parsedAccount,
chain: chain,
transport,
});
const signerWalletClient = (0, viem_1.createWalletClient)({
account: signer,
chain: chain,
transport,
});
const sessionClient = baseClient.extend((0, walletActions_js_1.sessionWalletActions)(signerWalletClient, publicClient, session, paymasterHandler));
return sessionClient;
}
//# sourceMappingURL=sessionClient.js.map