@abstract-foundation/agw-client
Version:
Abstract Global Wallet Client SDK
31 lines • 1.36 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.createAbstractClient = createAbstractClient;
const viem_1 = require("viem");
const accounts_1 = require("viem/accounts");
const utils_js_1 = require("./utils.js");
const walletActions_js_1 = require("./walletActions.js");
async function createAbstractClient({ signer, chain, transport, address, isPrivyCrossApp = false, publicTransport = (0, viem_1.http)(), customPaymasterHandler, }) {
if (!transport) {
throw new Error('Transport is required');
}
const publicClient = (0, viem_1.createPublicClient)({
chain: chain,
transport: publicTransport,
});
const smartAccountAddress = address ??
(await (0, utils_js_1.getSmartAccountAddressFromInitialSigner)(signer.address, publicClient));
const baseClient = (0, viem_1.createClient)({
account: (0, accounts_1.toAccount)(smartAccountAddress),
chain: chain,
transport,
});
const signerWalletClient = (0, viem_1.createWalletClient)({
account: signer,
chain: chain,
transport,
});
const abstractClient = baseClient.extend((0, walletActions_js_1.globalWalletActions)(signerWalletClient, publicClient, isPrivyCrossApp, customPaymasterHandler));
return abstractClient;
}
//# sourceMappingURL=abstractClient.js.map