@biconomy/abstractjs
Version:
SDK for Biconomy integration with support for account abstraction, smart accounts, ERC-4337.
26 lines • 1.31 kB
JavaScript
import { readContract } from "viem/actions";
import { GLOBAL_COMPOSABLE_READS } from "../utils/composableReads.js";
/**
* Executes a read operation across all deployments in a BaseMultichainSmartAccount.
*
* @param account - The multichain smart account containing deployments to read from.
* @param parameters - {@link MultichainReadParameters} specifying the read type and its parameters.
* @returns Promise resolving to an array of read payloads, one for each deployment.
*/
export const multichainRead = async (account, parameters) => {
const { type, parameters: parametersForType } = parameters;
// Cast GLOBAL_COMPOSABLE_READS to ReadDictionary to ensure all read functions have a consistent type
const readFunctions = GLOBAL_COMPOSABLE_READS;
const results = await Promise.all(account.deployments.map(async (account) => {
const chainId = account.client.chain?.id;
if (!chainId) {
throw new Error("Chain ID is not set");
}
// The read function now expects the updated parameters structure.
const [readData] = await readFunctions[type](account, parametersForType);
return (await readContract(account.client, readData));
}));
return results;
};
export default multichainRead;
//# sourceMappingURL=multichainRead.js.map