@hyperlane-xyz/sdk
Version:
The official SDK for the Hyperlane Network
25 lines • 1.63 kB
JavaScript
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