UNPKG

@hyperlane-xyz/sdk

Version:

The official SDK for the Hyperlane Network

25 lines 1.63 kB
import { ProtocolType } from '@hyperlane-xyz/utils'; import { CosmosNativeMultiProtocolSignerAdapter } from './cosmos/cosmjs.js'; import { EvmMultiProtocolSignerAdapter } from './evm/ethersv5.js'; import { RadixMultiProtocolSignerAdapter } from './radix/radix-toolkit.js'; import { StarknetMultiProtocolSignerAdapter } from './starknet/starknetjs.js'; import { KeypairSvmTransactionSigner, SvmMultiProtocolSignerAdapter, } from './svm/solana-web3js.js'; export async function getSignerForChain(chainName, accountConfig, multiProtocolProvider) { const protocol = accountConfig.protocol; switch (accountConfig.protocol) { case ProtocolType.Tron: case ProtocolType.Ethereum: return new EvmMultiProtocolSignerAdapter(chainName, accountConfig.privateKey, multiProtocolProvider); case ProtocolType.Sealevel: return new SvmMultiProtocolSignerAdapter(chainName, new KeypairSvmTransactionSigner(accountConfig.privateKey), multiProtocolProvider); case ProtocolType.CosmosNative: return CosmosNativeMultiProtocolSignerAdapter.init(chainName, accountConfig.privateKey, multiProtocolProvider); case ProtocolType.Starknet: return new StarknetMultiProtocolSignerAdapter(chainName, accountConfig.privateKey, accountConfig.address, multiProtocolProvider); case ProtocolType.Radix: return RadixMultiProtocolSignerAdapter.init(chainName, accountConfig.privateKey, multiProtocolProvider); default: throw new Error(`Signer not supported for protocol type ${protocol}`); } } //# sourceMappingURL=signers.js.map