UNPKG

@hyperlane-xyz/sdk

Version:

The official SDK for the Hyperlane Network

33 lines 1.41 kB
import { ethers } from 'ethers'; import { assert } from '@hyperlane-xyz/utils'; import { HyperlaneRouterDeployer } from '../../router/HyperlaneRouterDeployer.js'; import { interchainAccountFactories, } from './contracts.js'; export class InterchainAccountDeployer extends HyperlaneRouterDeployer { constructor(multiProvider, contractVerifier, concurrentDeploy) { super(multiProvider, interchainAccountFactories, { contractVerifier, concurrentDeploy, }); } router(contracts) { return contracts.interchainAccountRouter; } async deployContracts(chain, config) { if (config.interchainSecurityModule) { throw new Error('Configuration of ISM not supported in ICA deployer'); } assert(config.commitmentIsm.urls.length > 0, 'Commitment ISM URLs are required for deployment of ICA Routers. Please provide at least one URL in the commitmentIsm.urls array.'); const owner = await this.multiProvider.getSignerAddress(chain); const interchainAccountRouter = await this.deployContract(chain, 'interchainAccountRouter', [ config.mailbox, ethers.constants.AddressZero, owner, 50_000, config.commitmentIsm.urls, ]); return { interchainAccountRouter, }; } } //# sourceMappingURL=InterchainAccountDeployer.js.map