@biconomy/sdk
Version:
SDK for Biconomy integration with support for account abstraction, smart accounts, ERC-4337.
44 lines • 2 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.toMultichainNexusAccount = toMultichainNexusAccount;
const viem_1 = require("viem");
const constants_1 = require("../constants/index.js");
const toNexusAccount_1 = require("./toNexusAccount.js");
const build_1 = require("./decorators/build.js");
const buildBridgeInstructions_1 = require("./decorators/buildBridgeInstructions.js");
const getUnifiedERC20Balance_1 = require("./decorators/getUnifiedERC20Balance.js");
const queryBridge_1 = require("./decorators/queryBridge.js");
async function toMultichainNexusAccount(parameters) {
const { signer, chains } = parameters;
const deployments = await Promise.all(chains.map((chain) => (0, toNexusAccount_1.toNexusAccount)({
chain,
signer,
transport: (0, viem_1.http)(),
validatorAddress: constants_1.MEE_VALIDATOR_ADDRESS,
factoryAddress: constants_1.NEXUS_ACCOUNT_FACTORY,
attesters: [constants_1.TEMP_MEE_ATTESTER_ADDR]
})));
const deploymentOn = (chainId) => {
const deployment = deployments.find((dep) => dep.client.chain?.id === chainId);
return deployment;
};
const baseAccount = {
deployments,
signer,
deploymentOn
};
const getUnifiedERC20Balance = (mcToken) => {
return (0, getUnifiedERC20Balance_1.getUnifiedERC20Balance)({ mcToken, account: baseAccount });
};
const build = (params, currentInstructions) => (0, build_1.build)({ currentInstructions, account: baseAccount }, params);
const buildBridgeInstructions = (params) => (0, buildBridgeInstructions_1.buildBridgeInstructions)({ ...params, account: baseAccount });
const queryBridge = (params) => (0, queryBridge_1.queryBridge)({ ...params, account: baseAccount });
return {
...baseAccount,
getUnifiedERC20Balance,
build,
buildBridgeInstructions,
queryBridge
};
}
//# sourceMappingURL=toMultiChainNexusAccount.js.map