diff --git a/docs/code-splitting.md b/docs/code-splitting.md new file mode 100644 index 0000000000..1eabce6bdc --- /dev/null +++ b/docs/code-splitting.md @@ -0,0 +1,31 @@ +# Code Splitting + +As explained in [this link](https://legacy.reactjs.org/docs/code-splitting.html), Code-Splitting is a feature supported by some bundlers that allows the creation of multiple bundles that can be loaded dynamically at runtime. This technique enables us to "lazily-load" only the necessary components for the user's current needs, significantly enhancing the performance of the application. + + +## What we did + +- Splitting Signers from initial bundle + + +## What we are going to do + +Currently, we've achieved a good initial bundle size based on analyses conducted using tools like `lighthouse`. Some potential future works that could contribute to the journey ahead are listed below: + +- Implement retry mechanisms for dynamic imports to address issues with failing to import certain chunks. +- Maintain the applied changes to prevent future modifications from undoing the achieved results. +- Identify potential areas that can be dynamically imported. +- Attempt to enhance clients that have integrated widgets (like dapp) to improve overall performance. + + +## Technical Consideration + +- Avoid small chunks, they don't add any value to user. they will have network overhead as well. +- Chunks will be built using esbuild's [splitting](https://esbuild.github.io/api/#splitting) option. +- Code splitting for libraries is off by default. To enable the option, add the "--splitting" parameter to the "build" script of that package. + + +## Notes + +The `@rango-dev/signer-solana` package is not dynamically imported because it has a major dependency ("@solana/web3.js") that is also a dependency in `@solflare-wallet/sdk`, which is used in `provider-solflare`. This dependency cannot be dynamically imported, so importing `@rango-dev/signer-solana` dynamically would only result in a very small reduction in the bundle size. + diff --git a/wallets/provider-argentx/src/signer.ts b/wallets/provider-argentx/src/signer.ts index 2ebfac1856..60e90b2966 100644 --- a/wallets/provider-argentx/src/signer.ts +++ b/wallets/provider-argentx/src/signer.ts @@ -1,12 +1,12 @@ import type { SignerFactory } from 'rango-types'; +import { DefaultStarknetSigner } from '@rango-dev/signer-starknet'; import { DefaultSignerFactory, TransactionType as TxType } from 'rango-types'; export default async function getSigners( provider: any ): Promise { const signers = new DefaultSignerFactory(); - const { DefaultStarknetSigner } = await import('@rango-dev/signer-starknet'); signers.registerSigner(TxType.STARKNET, new DefaultStarknetSigner(provider)); return signers; } diff --git a/wallets/provider-bitget/src/signer.ts b/wallets/provider-bitget/src/signer.ts index 9505c5cc64..c79fea9e00 100644 --- a/wallets/provider-bitget/src/signer.ts +++ b/wallets/provider-bitget/src/signer.ts @@ -1,5 +1,6 @@ import type { SignerFactory } from 'rango-types'; +import { DefaultTronSigner } from '@rango-dev/signer-tron'; import { getNetworkInstance, Networks } from '@rango-dev/wallets-shared'; import { DefaultSignerFactory, TransactionType as TxType } from 'rango-types'; @@ -10,7 +11,6 @@ export default async function getSigners( const tronProvider = getNetworkInstance(provider, Networks.TRON); const signers = new DefaultSignerFactory(); const { DefaultEvmSigner } = await import('@rango-dev/signer-evm'); - const { DefaultTronSigner } = await import('@rango-dev/signer-tron'); signers.registerSigner(TxType.EVM, new DefaultEvmSigner(ethProvider)); signers.registerSigner(TxType.TRON, new DefaultTronSigner(tronProvider)); return signers; diff --git a/wallets/provider-braavos/src/signer.ts b/wallets/provider-braavos/src/signer.ts index 2ebfac1856..60e90b2966 100644 --- a/wallets/provider-braavos/src/signer.ts +++ b/wallets/provider-braavos/src/signer.ts @@ -1,12 +1,12 @@ import type { SignerFactory } from 'rango-types'; +import { DefaultStarknetSigner } from '@rango-dev/signer-starknet'; import { DefaultSignerFactory, TransactionType as TxType } from 'rango-types'; export default async function getSigners( provider: any ): Promise { const signers = new DefaultSignerFactory(); - const { DefaultStarknetSigner } = await import('@rango-dev/signer-starknet'); signers.registerSigner(TxType.STARKNET, new DefaultStarknetSigner(provider)); return signers; } diff --git a/wallets/provider-brave/src/signer.ts b/wallets/provider-brave/src/signer.ts index f78541e90b..6cd7760393 100644 --- a/wallets/provider-brave/src/signer.ts +++ b/wallets/provider-brave/src/signer.ts @@ -3,6 +3,8 @@ import type { SignerFactory } from 'rango-types'; import { getNetworkInstance, Networks } from '@rango-dev/wallets-shared'; import { DefaultSignerFactory, TransactionType as TxType } from 'rango-types'; +import { CustomSolanaSigner } from './solana-signer.js'; + export default async function getSigners( provider: any ): Promise { @@ -10,7 +12,6 @@ export default async function getSigners( const solProvider = getNetworkInstance(provider, Networks.SOLANA); const signers = new DefaultSignerFactory(); const { DefaultEvmSigner } = await import('@rango-dev/signer-evm'); - const { CustomSolanaSigner } = await import('./solana-signer.js'); signers.registerSigner(TxType.EVM, new DefaultEvmSigner(ethProvider)); signers.registerSigner(TxType.SOLANA, new CustomSolanaSigner(solProvider)); return signers; diff --git a/wallets/provider-clover/src/signer.ts b/wallets/provider-clover/src/signer.ts index f78541e90b..6cd7760393 100644 --- a/wallets/provider-clover/src/signer.ts +++ b/wallets/provider-clover/src/signer.ts @@ -3,6 +3,8 @@ import type { SignerFactory } from 'rango-types'; import { getNetworkInstance, Networks } from '@rango-dev/wallets-shared'; import { DefaultSignerFactory, TransactionType as TxType } from 'rango-types'; +import { CustomSolanaSigner } from './solana-signer.js'; + export default async function getSigners( provider: any ): Promise { @@ -10,7 +12,6 @@ export default async function getSigners( const solProvider = getNetworkInstance(provider, Networks.SOLANA); const signers = new DefaultSignerFactory(); const { DefaultEvmSigner } = await import('@rango-dev/signer-evm'); - const { CustomSolanaSigner } = await import('./solana-signer.js'); signers.registerSigner(TxType.EVM, new DefaultEvmSigner(ethProvider)); signers.registerSigner(TxType.SOLANA, new CustomSolanaSigner(solProvider)); return signers; diff --git a/wallets/provider-coin98/package.json b/wallets/provider-coin98/package.json index 8120eab91d..97f5bba03c 100644 --- a/wallets/provider-coin98/package.json +++ b/wallets/provider-coin98/package.json @@ -14,7 +14,7 @@ "src" ], "scripts": { - "build": "node ../../scripts/build/command.mjs --path wallets/provider-coin98 --splitting", + "build": "node ../../scripts/build/command.mjs --path wallets/provider-coin98", "ts-check": "tsc --declaration --emitDeclarationOnly -p ./tsconfig.json", "clean": "rimraf dist", "format": "prettier --write '{.,src}/**/*.{ts,tsx}'", @@ -31,4 +31,4 @@ "publishConfig": { "access": "public" } -} \ No newline at end of file +} diff --git a/wallets/provider-coin98/src/signer.ts b/wallets/provider-coin98/src/signer.ts index f78541e90b..6cd7760393 100644 --- a/wallets/provider-coin98/src/signer.ts +++ b/wallets/provider-coin98/src/signer.ts @@ -3,6 +3,8 @@ import type { SignerFactory } from 'rango-types'; import { getNetworkInstance, Networks } from '@rango-dev/wallets-shared'; import { DefaultSignerFactory, TransactionType as TxType } from 'rango-types'; +import { CustomSolanaSigner } from './solana-signer.js'; + export default async function getSigners( provider: any ): Promise { @@ -10,7 +12,6 @@ export default async function getSigners( const solProvider = getNetworkInstance(provider, Networks.SOLANA); const signers = new DefaultSignerFactory(); const { DefaultEvmSigner } = await import('@rango-dev/signer-evm'); - const { CustomSolanaSigner } = await import('./solana-signer.js'); signers.registerSigner(TxType.EVM, new DefaultEvmSigner(ethProvider)); signers.registerSigner(TxType.SOLANA, new CustomSolanaSigner(solProvider)); return signers; diff --git a/wallets/provider-coinbase/src/signer.ts b/wallets/provider-coinbase/src/signer.ts index f78541e90b..6cd7760393 100644 --- a/wallets/provider-coinbase/src/signer.ts +++ b/wallets/provider-coinbase/src/signer.ts @@ -3,6 +3,8 @@ import type { SignerFactory } from 'rango-types'; import { getNetworkInstance, Networks } from '@rango-dev/wallets-shared'; import { DefaultSignerFactory, TransactionType as TxType } from 'rango-types'; +import { CustomSolanaSigner } from './solana-signer.js'; + export default async function getSigners( provider: any ): Promise { @@ -10,7 +12,6 @@ export default async function getSigners( const solProvider = getNetworkInstance(provider, Networks.SOLANA); const signers = new DefaultSignerFactory(); const { DefaultEvmSigner } = await import('@rango-dev/signer-evm'); - const { CustomSolanaSigner } = await import('./solana-signer.js'); signers.registerSigner(TxType.EVM, new DefaultEvmSigner(ethProvider)); signers.registerSigner(TxType.SOLANA, new CustomSolanaSigner(solProvider)); return signers; diff --git a/wallets/provider-exodus/src/signer.ts b/wallets/provider-exodus/src/signer.ts index f78541e90b..6cd7760393 100644 --- a/wallets/provider-exodus/src/signer.ts +++ b/wallets/provider-exodus/src/signer.ts @@ -3,6 +3,8 @@ import type { SignerFactory } from 'rango-types'; import { getNetworkInstance, Networks } from '@rango-dev/wallets-shared'; import { DefaultSignerFactory, TransactionType as TxType } from 'rango-types'; +import { CustomSolanaSigner } from './solana-signer.js'; + export default async function getSigners( provider: any ): Promise { @@ -10,7 +12,6 @@ export default async function getSigners( const solProvider = getNetworkInstance(provider, Networks.SOLANA); const signers = new DefaultSignerFactory(); const { DefaultEvmSigner } = await import('@rango-dev/signer-evm'); - const { CustomSolanaSigner } = await import('./solana-signer.js'); signers.registerSigner(TxType.EVM, new DefaultEvmSigner(ethProvider)); signers.registerSigner(TxType.SOLANA, new CustomSolanaSigner(solProvider)); return signers; diff --git a/wallets/provider-frontier/src/signer.ts b/wallets/provider-frontier/src/signer.ts index d5ce402b77..99e6ce0dcd 100644 --- a/wallets/provider-frontier/src/signer.ts +++ b/wallets/provider-frontier/src/signer.ts @@ -1,5 +1,6 @@ import type { SignerFactory } from 'rango-types'; +import { DefaultSolanaSigner } from '@rango-dev/signer-solana'; import { getNetworkInstance, Networks } from '@rango-dev/wallets-shared'; import { DefaultSignerFactory, TransactionType as TxType } from 'rango-types'; @@ -10,7 +11,6 @@ export default async function getSigners( const solProvider = getNetworkInstance(provider, Networks.SOLANA); const signers = new DefaultSignerFactory(); const { DefaultEvmSigner } = await import('@rango-dev/signer-evm'); - const { DefaultSolanaSigner } = await import('@rango-dev/signer-solana'); signers.registerSigner(TxType.EVM, new DefaultEvmSigner(ethProvider)); signers.registerSigner(TxType.SOLANA, new DefaultSolanaSigner(solProvider)); return signers; diff --git a/wallets/provider-ledger/src/signers/ethereum.ts b/wallets/provider-ledger/src/signers/ethereum.ts index 5417b0e429..b49536f818 100644 --- a/wallets/provider-ledger/src/signers/ethereum.ts +++ b/wallets/provider-ledger/src/signers/ethereum.ts @@ -2,6 +2,7 @@ import type { TransactionLike } from 'ethers'; import type { GenericSigner } from 'rango-types'; import type { EvmTransaction } from 'rango-types/mainApi'; +import Eth, { ledgerService } from '@ledgerhq/hw-app-eth'; import { DEFAULT_ETHEREUM_RPC_URL } from '@rango-dev/wallets-shared'; import { JsonRpcProvider, Transaction } from 'ethers'; import { SignerError, SignerErrorCode } from 'rango-types'; @@ -18,7 +19,7 @@ export class EthereumSigner implements GenericSigner { try { const transport = await transportConnect(); - const eth = new (await import('@ledgerhq/hw-app-eth')).default(transport); + const eth = new Eth(transport); const result = await eth.signPersonalMessage( getDerivationPath(), Buffer.from(msg).toString('hex') @@ -59,13 +60,15 @@ export class EthereumSigner implements GenericSigner { const unsignedTx = Transaction.from(transaction).unsignedSerialized.substring(2); // Create unsigned transaction - const resolution = await ( - await import('@ledgerhq/hw-app-eth') - ).ledgerService.resolveTransaction(unsignedTx, {}, {}); // metadata necessary to allow the device to clear sign information + const resolution = await ledgerService.resolveTransaction( + unsignedTx, + {}, + {} + ); // metadata necessary to allow the device to clear sign information const transport = await transportConnect(); - const eth = new (await import('@ledgerhq/hw-app-eth')).default(transport); + const eth = new Eth(transport); const signature = await eth.signTransaction( getDerivationPath(), diff --git a/wallets/provider-ledger/src/signers/solana.ts b/wallets/provider-ledger/src/signers/solana.ts index 75971102a7..e8fdd8b97c 100644 --- a/wallets/provider-ledger/src/signers/solana.ts +++ b/wallets/provider-ledger/src/signers/solana.ts @@ -2,6 +2,7 @@ import type { SolanaWeb3Signer } from '@rango-dev/signer-solana'; import type { Transaction, VersionedTransaction } from '@solana/web3.js'; import type { GenericSigner, SolanaTransaction } from 'rango-types'; +import Solana from '@ledgerhq/hw-app-solana'; import { generalSolanaTransactionExecutor } from '@rango-dev/signer-solana'; import { PublicKey } from '@solana/web3.js'; import { SignerError, SignerErrorCode } from 'rango-types'; @@ -24,9 +25,7 @@ export class SolanaSigner implements GenericSigner { try { const transport = await transportConnect(); - const solana = new (await import('@ledgerhq/hw-app-solana')).default( - transport - ); + const solana = new Solana(transport); const result = await solana.signOffchainMessage( getDerivationPath(), @@ -44,9 +43,7 @@ export class SolanaSigner implements GenericSigner { solanaWeb3Transaction: Transaction | VersionedTransaction ) => { const transport = await transportConnect(); - const solana = new (await import('@ledgerhq/hw-app-solana')).default( - transport - ); + const solana = new Solana(transport); let signResult; if (isVersionedTransaction(solanaWeb3Transaction)) { diff --git a/wallets/provider-math-wallet/src/signer.ts b/wallets/provider-math-wallet/src/signer.ts index aa05b7ada2..2df36a2432 100644 --- a/wallets/provider-math-wallet/src/signer.ts +++ b/wallets/provider-math-wallet/src/signer.ts @@ -1,5 +1,6 @@ import type { SignerFactory } from 'rango-types'; +import { DefaultSolanaSigner } from '@rango-dev/signer-solana'; import { getNetworkInstance, Networks } from '@rango-dev/wallets-shared'; import { DefaultSignerFactory, TransactionType as TxType } from 'rango-types'; @@ -12,7 +13,6 @@ export default async function getSigners( const signers = new DefaultSignerFactory(); const { DefaultEvmSigner } = await import('@rango-dev/signer-evm'); - const { DefaultSolanaSigner } = await import('@rango-dev/signer-solana'); const { MathWalletCosmosSigner } = await import('./signers/cosmosSigner.js'); if (!!ethProvider) { diff --git a/wallets/provider-mytonwallet/src/signer.ts b/wallets/provider-mytonwallet/src/signer.ts index 50936aeec9..b9d9aa1e4b 100644 --- a/wallets/provider-mytonwallet/src/signer.ts +++ b/wallets/provider-mytonwallet/src/signer.ts @@ -1,13 +1,13 @@ import type { TonProvider } from './types.js'; import type { SignerFactory } from 'rango-types'; +import { DefaultTonSigner } from '@rango-dev/signer-ton'; import { DefaultSignerFactory, TransactionType as TxType } from 'rango-types'; export default async function getSigners( provider: TonProvider ): Promise { const signers = new DefaultSignerFactory(); - const { DefaultTonSigner } = await import('@rango-dev/signer-ton'); signers.registerSigner(TxType.TON, new DefaultTonSigner(provider)); return signers; } diff --git a/wallets/provider-okx/src/signer.ts b/wallets/provider-okx/src/signer.ts index f78541e90b..6cd7760393 100644 --- a/wallets/provider-okx/src/signer.ts +++ b/wallets/provider-okx/src/signer.ts @@ -3,6 +3,8 @@ import type { SignerFactory } from 'rango-types'; import { getNetworkInstance, Networks } from '@rango-dev/wallets-shared'; import { DefaultSignerFactory, TransactionType as TxType } from 'rango-types'; +import { CustomSolanaSigner } from './solana-signer.js'; + export default async function getSigners( provider: any ): Promise { @@ -10,7 +12,6 @@ export default async function getSigners( const solProvider = getNetworkInstance(provider, Networks.SOLANA); const signers = new DefaultSignerFactory(); const { DefaultEvmSigner } = await import('@rango-dev/signer-evm'); - const { CustomSolanaSigner } = await import('./solana-signer.js'); signers.registerSigner(TxType.EVM, new DefaultEvmSigner(ethProvider)); signers.registerSigner(TxType.SOLANA, new CustomSolanaSigner(solProvider)); return signers; diff --git a/wallets/provider-phantom/src/signer.ts b/wallets/provider-phantom/src/signer.ts index 42397b7562..376e8a2fdc 100644 --- a/wallets/provider-phantom/src/signer.ts +++ b/wallets/provider-phantom/src/signer.ts @@ -1,5 +1,6 @@ import type { SignerFactory } from 'rango-types'; +import { DefaultSolanaSigner } from '@rango-dev/signer-solana'; import { getNetworkInstance, Networks } from '@rango-dev/wallets-shared'; import { DefaultSignerFactory, TransactionType as TxType } from 'rango-types'; @@ -8,7 +9,6 @@ export default async function getSigners( ): Promise { const solProvider = getNetworkInstance(provider, Networks.SOLANA); const signers = new DefaultSignerFactory(); - const { DefaultSolanaSigner } = await import('@rango-dev/signer-solana'); signers.registerSigner(TxType.SOLANA, new DefaultSolanaSigner(solProvider)); return signers; } diff --git a/wallets/provider-safepal/src/signer.ts b/wallets/provider-safepal/src/signer.ts index d5ce402b77..99e6ce0dcd 100644 --- a/wallets/provider-safepal/src/signer.ts +++ b/wallets/provider-safepal/src/signer.ts @@ -1,5 +1,6 @@ import type { SignerFactory } from 'rango-types'; +import { DefaultSolanaSigner } from '@rango-dev/signer-solana'; import { getNetworkInstance, Networks } from '@rango-dev/wallets-shared'; import { DefaultSignerFactory, TransactionType as TxType } from 'rango-types'; @@ -10,7 +11,6 @@ export default async function getSigners( const solProvider = getNetworkInstance(provider, Networks.SOLANA); const signers = new DefaultSignerFactory(); const { DefaultEvmSigner } = await import('@rango-dev/signer-evm'); - const { DefaultSolanaSigner } = await import('@rango-dev/signer-solana'); signers.registerSigner(TxType.EVM, new DefaultEvmSigner(ethProvider)); signers.registerSigner(TxType.SOLANA, new DefaultSolanaSigner(solProvider)); return signers; diff --git a/wallets/provider-solflare-snap/package.json b/wallets/provider-solflare-snap/package.json index 875a89f77e..bdd2b26e1b 100644 --- a/wallets/provider-solflare-snap/package.json +++ b/wallets/provider-solflare-snap/package.json @@ -14,7 +14,7 @@ "src" ], "scripts": { - "build": "node ../../scripts/build/command.mjs --path wallets/provider-solflare-snap --splitting", + "build": "node ../../scripts/build/command.mjs --path wallets/provider-solflare-snap", "ts-check": "tsc --declaration --emitDeclarationOnly -p ./tsconfig.json", "clean": "rimraf dist", "format": "prettier --write '{.,src}/**/*.{ts,tsx}'", @@ -31,4 +31,4 @@ "publishConfig": { "access": "public" } -} \ No newline at end of file +} diff --git a/wallets/provider-solflare-snap/src/signer.ts b/wallets/provider-solflare-snap/src/signer.ts index db613eb67e..9094bc7c52 100644 --- a/wallets/provider-solflare-snap/src/signer.ts +++ b/wallets/provider-solflare-snap/src/signer.ts @@ -2,13 +2,12 @@ import type { SignerFactory } from 'rango-types'; import { DefaultSignerFactory, TransactionType as TxType } from 'rango-types'; +import { SolflareSnapSolanaSigner } from './signers/solanaSigner.js'; + export default async function getSigners( provider: any ): Promise { const signers = new DefaultSignerFactory(); - const { SolflareSnapSolanaSigner } = await import( - './signers/solanaSigner.js' - ); signers.registerSigner(TxType.SOLANA, new SolflareSnapSolanaSigner(provider)); return signers; } diff --git a/wallets/provider-solflare/package.json b/wallets/provider-solflare/package.json index a4d2d05ea8..3ec766496d 100644 --- a/wallets/provider-solflare/package.json +++ b/wallets/provider-solflare/package.json @@ -14,7 +14,7 @@ "src" ], "scripts": { - "build": "node ../../scripts/build/command.mjs --path wallets/provider-solflare --splitting", + "build": "node ../../scripts/build/command.mjs --path wallets/provider-solflare", "ts-check": "tsc --declaration --emitDeclarationOnly -p ./tsconfig.json", "clean": "rimraf dist", "format": "prettier --write '{.,src}/**/*.{ts,tsx}'", @@ -30,4 +30,4 @@ "publishConfig": { "access": "public" } -} \ No newline at end of file +} diff --git a/wallets/provider-solflare/src/signer.ts b/wallets/provider-solflare/src/signer.ts index a8aec099e5..b898b4f1f4 100644 --- a/wallets/provider-solflare/src/signer.ts +++ b/wallets/provider-solflare/src/signer.ts @@ -3,11 +3,12 @@ import type { SignerFactory } from 'rango-types'; import { DefaultSignerFactory, TransactionType as TxType } from 'rango-types'; +import { CustomSolanaSigner } from './signers/solanaSigner.js'; + export default async function getSigners( provider: Solflare ): Promise { const signers = new DefaultSignerFactory(); - const { CustomSolanaSigner } = await import('./signers/solanaSigner.js'); signers.registerSigner(TxType.SOLANA, new CustomSolanaSigner(provider)); return signers; } diff --git a/wallets/provider-tron-link/src/signer.ts b/wallets/provider-tron-link/src/signer.ts index 0249fff315..02d4a1adbd 100644 --- a/wallets/provider-tron-link/src/signer.ts +++ b/wallets/provider-tron-link/src/signer.ts @@ -1,12 +1,12 @@ import type { SignerFactory } from 'rango-types'; +import { DefaultTronSigner } from '@rango-dev/signer-tron'; import { DefaultSignerFactory, TransactionType as TxType } from 'rango-types'; export default async function getSigners( provider: any ): Promise { const signers = new DefaultSignerFactory(); - const { DefaultTronSigner } = await import('@rango-dev/signer-tron'); signers.registerSigner(TxType.TRON, new DefaultTronSigner(provider)); return signers; } diff --git a/wallets/provider-xdefi/src/cosmos-signer.ts b/wallets/provider-xdefi/src/cosmos-signer.ts index 87a0ae3375..a709678e7a 100644 --- a/wallets/provider-xdefi/src/cosmos-signer.ts +++ b/wallets/provider-xdefi/src/cosmos-signer.ts @@ -1,6 +1,5 @@ import type { CosmosTransaction, GenericSigner } from 'rango-types'; -import { executeCosmosTransaction } from '@rango-dev/signer-cosmos'; import { getNetworkInstance, Networks } from '@rango-dev/wallets-shared'; import { SignerError, SignerErrorCode } from 'rango-types'; @@ -36,6 +35,10 @@ export class CustomCosmosSigner implements GenericSigner { } } async signAndSendTx(tx: CosmosTransaction): Promise<{ hash: string }> { + const { executeCosmosTransaction } = await import( + '@rango-dev/signer-cosmos' + ); + if (tx.rawTransfer === null) { const cosmosProvider = getNetworkInstance(this.provider, Networks.COSMOS); const hash = await executeCosmosTransaction(tx, cosmosProvider); diff --git a/wallets/provider-xdefi/src/signer.ts b/wallets/provider-xdefi/src/signer.ts index d140887017..f40627c282 100644 --- a/wallets/provider-xdefi/src/signer.ts +++ b/wallets/provider-xdefi/src/signer.ts @@ -3,6 +3,10 @@ import type { SignerFactory } from 'rango-types'; import { getNetworkInstance, Networks } from '@rango-dev/wallets-shared'; import { DefaultSignerFactory, TransactionType as TxType } from 'rango-types'; +import { CustomCosmosSigner } from './cosmos-signer.js'; +import { CustomSolanaSigner } from './solana-signer.js'; +import { CustomTransferSigner } from './utxo-signer.js'; + export default async function getSigners( provider: any ): Promise { @@ -11,9 +15,6 @@ export default async function getSigners( const signers = new DefaultSignerFactory(); const { DefaultEvmSigner } = await import('@rango-dev/signer-evm'); - const { CustomSolanaSigner } = await import('./solana-signer.js'); - const { CustomCosmosSigner } = await import('./cosmos-signer.js'); - const { CustomTransferSigner } = await import('./utxo-signer.js'); signers.registerSigner(TxType.EVM, new DefaultEvmSigner(ethProvider)); signers.registerSigner(TxType.SOLANA, new CustomSolanaSigner(solProvider));