UNPKG

@hyperlane-xyz/sdk

Version:

The official SDK for the Hyperlane Network

27 lines 1.21 kB
import { Wallet, ethers } from 'ethers'; import { Wallet as ZkSyncWallet } from 'zksync-ethers'; import { assert } from '@hyperlane-xyz/utils'; import { ChainTechnicalStack } from '../../index.js'; export class EvmMultiProtocolSignerAdapter { chainName; multiProvider; constructor(chainName, privateKey, multiProtocolProvider) { this.chainName = chainName; const multiProvider = multiProtocolProvider.toMultiProvider(); const { technicalStack } = multiProvider.getChainMetadata(chainName); assert(ethers.utils.isHexString(privateKey), `Private key for chain ${chainName} should be a hex string`); const wallet = technicalStack === ChainTechnicalStack.ZkSync ? new ZkSyncWallet(privateKey) : new Wallet(privateKey); multiProvider.setSigner(this.chainName, wallet); this.multiProvider = multiProvider; } async address() { return this.multiProvider.getSignerAddress(this.chainName); } async sendAndConfirmTransaction(tx) { const res = await this.multiProvider.sendTransaction(this.chainName, tx.transaction); return res.transactionHash; } } //# sourceMappingURL=ethersv5.js.map