@xchainjs/xchain-avax 1.0.15 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/index.esm.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { Network, ExplorerProvider } from '@xchainjs/xchain-client';
2
2
  import { ClientKeystore as ClientKeystore$1, KeystoreSigner, ClientLedger as ClientLedger$1, LedgerSigner } from '@xchainjs/xchain-evm';
3
- import { EtherscanProvider, RoutescanProvider } from '@xchainjs/xchain-evm-providers';
3
+ import { EtherscanProviderV2, RoutescanProvider } from '@xchainjs/xchain-evm-providers';
4
4
  import { AssetType } from '@xchainjs/xchain-util';
5
5
  import { ethers, BigNumber } from 'ethers';
6
6
 
@@ -15,8 +15,11 @@ const AssetAVAX = { chain: AVAXChain, symbol: 'AVAX', ticker: 'AVAX', type: Asse
15
15
  // Ankr api key
16
16
  const ankrApiKey = process.env.ANKR_API_KEY;
17
17
  // Define JSON-RPC providers for mainnet and testnet
18
- const AVALANCHE_MAINNET_ETHERS_PROVIDER = new ethers.providers.JsonRpcProvider(`https://rpc.ankr.com/avalanche/${ankrApiKey}`);
19
- const AVALANCHE_TESTNET_ETHERS_PROVIDER = new ethers.providers.JsonRpcProvider('https://rpc.ankr.com/avalanche_fuji');
18
+ const AVALANCHE_MAINNET_ETHERS_PROVIDER = new ethers.providers.JsonRpcProvider(`https://rpc.ankr.com/avalanche/${ankrApiKey}`, { name: 'avalanche', chainId: 43114 });
19
+ const AVALANCHE_TESTNET_ETHERS_PROVIDER = new ethers.providers.JsonRpcProvider(`https://rpc.ankr.com/avalanche_fuji/${ankrApiKey}`, {
20
+ name: 'fuji',
21
+ chainId: 43113,
22
+ });
20
23
  // Define ethers providers for different networks
21
24
  const ethersJSProviders = {
22
25
  [Network.Mainnet]: AVALANCHE_MAINNET_ETHERS_PROVIDER,
@@ -24,8 +27,8 @@ const ethersJSProviders = {
24
27
  [Network.Stagenet]: AVALANCHE_MAINNET_ETHERS_PROVIDER,
25
28
  };
26
29
  // Define online providers (Etherscan) for mainnet and testnet
27
- const AVAX_ONLINE_PROVIDER_TESTNET = new EtherscanProvider(AVALANCHE_TESTNET_ETHERS_PROVIDER, 'https://api-testnet.snowtrace.io', process.env.SNOWTRACE_API_KEY || '', AVAXChain, AssetAVAX, 18);
28
- const AVAX_ONLINE_PROVIDER_MAINNET = new EtherscanProvider(AVALANCHE_MAINNET_ETHERS_PROVIDER, 'https://api.snowtrace.io', process.env.SNOWTRACE_API_KEY || '', AVAXChain, AssetAVAX, 18);
30
+ const AVAX_ONLINE_PROVIDER_TESTNET = new EtherscanProviderV2(AVALANCHE_TESTNET_ETHERS_PROVIDER, 'https://api.etherscan.io/v2', process.env.ETHERSCAN_API_KEY || '', AVAXChain, AssetAVAX, 18, 43113);
31
+ const AVAX_ONLINE_PROVIDER_MAINNET = new EtherscanProviderV2(AVALANCHE_MAINNET_ETHERS_PROVIDER, 'https://api.etherscan.io/v2', process.env.ETHERSCAN_API_KEY || '', AVAXChain, AssetAVAX, 18, 43114);
29
32
  // Define providers for different networks
30
33
  const avaxProviders = {
31
34
  [Network.Mainnet]: AVAX_ONLINE_PROVIDER_MAINNET,
@@ -134,4 +137,3 @@ class ClientLedger extends ClientLedger$1 {
134
137
  // Export all elements from the 'client' module
135
138
 
136
139
  export { AVAXChain, AVAX_DECIMAL, AVAX_GAS_ASSET_DECIMAL, AssetAVAX, ClientKeystore as Client, ClientKeystore, ClientLedger, LOWER_FEE_BOUND, UPPER_FEE_BOUND, ClientKeystore as default, defaultAvaxParams };
137
- //# sourceMappingURL=index.esm.js.map
package/lib/index.js CHANGED
@@ -19,8 +19,11 @@ const AssetAVAX = { chain: AVAXChain, symbol: 'AVAX', ticker: 'AVAX', type: xcha
19
19
  // Ankr api key
20
20
  const ankrApiKey = process.env.ANKR_API_KEY;
21
21
  // Define JSON-RPC providers for mainnet and testnet
22
- const AVALANCHE_MAINNET_ETHERS_PROVIDER = new ethers.ethers.providers.JsonRpcProvider(`https://rpc.ankr.com/avalanche/${ankrApiKey}`);
23
- const AVALANCHE_TESTNET_ETHERS_PROVIDER = new ethers.ethers.providers.JsonRpcProvider('https://rpc.ankr.com/avalanche_fuji');
22
+ const AVALANCHE_MAINNET_ETHERS_PROVIDER = new ethers.ethers.providers.JsonRpcProvider(`https://rpc.ankr.com/avalanche/${ankrApiKey}`, { name: 'avalanche', chainId: 43114 });
23
+ const AVALANCHE_TESTNET_ETHERS_PROVIDER = new ethers.ethers.providers.JsonRpcProvider(`https://rpc.ankr.com/avalanche_fuji/${ankrApiKey}`, {
24
+ name: 'fuji',
25
+ chainId: 43113,
26
+ });
24
27
  // Define ethers providers for different networks
25
28
  const ethersJSProviders = {
26
29
  [xchainClient.Network.Mainnet]: AVALANCHE_MAINNET_ETHERS_PROVIDER,
@@ -28,8 +31,8 @@ const ethersJSProviders = {
28
31
  [xchainClient.Network.Stagenet]: AVALANCHE_MAINNET_ETHERS_PROVIDER,
29
32
  };
30
33
  // Define online providers (Etherscan) for mainnet and testnet
31
- const AVAX_ONLINE_PROVIDER_TESTNET = new xchainEvmProviders.EtherscanProvider(AVALANCHE_TESTNET_ETHERS_PROVIDER, 'https://api-testnet.snowtrace.io', process.env.SNOWTRACE_API_KEY || '', AVAXChain, AssetAVAX, 18);
32
- const AVAX_ONLINE_PROVIDER_MAINNET = new xchainEvmProviders.EtherscanProvider(AVALANCHE_MAINNET_ETHERS_PROVIDER, 'https://api.snowtrace.io', process.env.SNOWTRACE_API_KEY || '', AVAXChain, AssetAVAX, 18);
34
+ const AVAX_ONLINE_PROVIDER_TESTNET = new xchainEvmProviders.EtherscanProviderV2(AVALANCHE_TESTNET_ETHERS_PROVIDER, 'https://api.etherscan.io/v2', process.env.ETHERSCAN_API_KEY || '', AVAXChain, AssetAVAX, 18, 43113);
35
+ const AVAX_ONLINE_PROVIDER_MAINNET = new xchainEvmProviders.EtherscanProviderV2(AVALANCHE_MAINNET_ETHERS_PROVIDER, 'https://api.etherscan.io/v2', process.env.ETHERSCAN_API_KEY || '', AVAXChain, AssetAVAX, 18, 43114);
33
36
  // Define providers for different networks
34
37
  const avaxProviders = {
35
38
  [xchainClient.Network.Mainnet]: AVAX_ONLINE_PROVIDER_MAINNET,
@@ -148,4 +151,3 @@ exports.LOWER_FEE_BOUND = LOWER_FEE_BOUND;
148
151
  exports.UPPER_FEE_BOUND = UPPER_FEE_BOUND;
149
152
  exports.default = ClientKeystore;
150
153
  exports.defaultAvaxParams = defaultAvaxParams;
151
- //# sourceMappingURL=index.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xchainjs/xchain-avax",
3
- "version": "1.0.15",
3
+ "version": "2.0.1",
4
4
  "description": "Avax EVM client for XChainJS",
5
5
  "keywords": [
6
6
  "XChain",
@@ -37,10 +37,10 @@
37
37
  },
38
38
  "dependencies": {
39
39
  "@ledgerhq/hw-transport": "6.30.6",
40
- "@xchainjs/xchain-client": "1.0.10",
41
- "@xchainjs/xchain-evm": "1.0.14",
42
- "@xchainjs/xchain-evm-providers": "1.0.12",
43
- "@xchainjs/xchain-util": "1.0.8",
40
+ "@xchainjs/xchain-client": "2.0.0",
41
+ "@xchainjs/xchain-evm": "2.0.1",
42
+ "@xchainjs/xchain-evm-providers": "2.0.1",
43
+ "@xchainjs/xchain-util": "2.0.0",
44
44
  "ethers": "5.7.2"
45
45
  },
46
46
  "devDependencies": {
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.esm.js","sources":["../src/const.ts","../src/ClientKeystore.ts","../src/ClientLedger.ts","../src/index.ts"],"sourcesContent":["// Import necessary modules and classes from external packages and files\nimport { ExplorerProvider, Network } from '@xchainjs/xchain-client'\nimport { EVMClientParams } from '@xchainjs/xchain-evm'\nimport { EtherscanProvider, RoutescanProvider } from '@xchainjs/xchain-evm-providers'\nimport { Asset, AssetType } from '@xchainjs/xchain-util'\nimport { BigNumber, ethers } from 'ethers'\n\n// Define constants related to Avalanche\nexport const AVAX_DECIMAL = 18\nexport const LOWER_FEE_BOUND = 2_000_000_000\nexport const UPPER_FEE_BOUND = 1_000_000_000_000\nexport const AVAX_GAS_ASSET_DECIMAL = 18\nexport const AVAXChain = 'AVAX' as const\nexport const AssetAVAX: Asset = { chain: AVAXChain, symbol: 'AVAX', ticker: 'AVAX', type: AssetType.NATIVE }\n\n// Ankr api key\nconst ankrApiKey = process.env.ANKR_API_KEY\n\n// Define JSON-RPC providers for mainnet and testnet\nconst AVALANCHE_MAINNET_ETHERS_PROVIDER = new ethers.providers.JsonRpcProvider(\n `https://rpc.ankr.com/avalanche/${ankrApiKey}`,\n)\nconst AVALANCHE_TESTNET_ETHERS_PROVIDER = new ethers.providers.JsonRpcProvider('https://rpc.ankr.com/avalanche_fuji')\n\n// Define ethers providers for different networks\nconst ethersJSProviders = {\n [Network.Mainnet]: AVALANCHE_MAINNET_ETHERS_PROVIDER,\n [Network.Testnet]: AVALANCHE_TESTNET_ETHERS_PROVIDER,\n [Network.Stagenet]: AVALANCHE_MAINNET_ETHERS_PROVIDER,\n}\n\n// Define online providers (Etherscan) for mainnet and testnet\nconst AVAX_ONLINE_PROVIDER_TESTNET = new EtherscanProvider(\n AVALANCHE_TESTNET_ETHERS_PROVIDER,\n 'https://api-testnet.snowtrace.io',\n process.env.SNOWTRACE_API_KEY || '',\n AVAXChain,\n AssetAVAX,\n 18,\n)\nconst AVAX_ONLINE_PROVIDER_MAINNET = new EtherscanProvider(\n AVALANCHE_MAINNET_ETHERS_PROVIDER,\n 'https://api.snowtrace.io',\n process.env.SNOWTRACE_API_KEY || '',\n AVAXChain,\n AssetAVAX,\n 18,\n)\n\n// Define providers for different networks\nconst avaxProviders = {\n [Network.Mainnet]: AVAX_ONLINE_PROVIDER_MAINNET,\n [Network.Testnet]: AVAX_ONLINE_PROVIDER_TESTNET,\n [Network.Stagenet]: AVAX_ONLINE_PROVIDER_MAINNET,\n}\n\n// Define Routescan providers for mainnet and testnet\nconst ROUTESCAN_PROVIDER_MAINNET = new RoutescanProvider(\n AVALANCHE_MAINNET_ETHERS_PROVIDER,\n 'https://api.routescan.io',\n 43114,\n AssetAVAX,\n AVAX_DECIMAL,\n)\n\nconst ROUTESCAN_PROVIDER_TESTNET = new RoutescanProvider(\n AVALANCHE_TESTNET_ETHERS_PROVIDER,\n 'https://api.routescan.io',\n 43113,\n AssetAVAX,\n AVAX_DECIMAL,\n true,\n)\n\n// Define Routescan providers for different networks\nconst routescanProviders = {\n [Network.Mainnet]: ROUTESCAN_PROVIDER_MAINNET,\n [Network.Testnet]: ROUTESCAN_PROVIDER_TESTNET,\n [Network.Stagenet]: ROUTESCAN_PROVIDER_MAINNET,\n}\n\n// Define explorer providers for mainnet and testnet\nconst AVAX_MAINNET_EXPLORER = new ExplorerProvider(\n 'https://snowtrace.dev/',\n 'https://snowtrace.dev/address/%%ADDRESS%%',\n 'https://snowtrace.dev/tx/%%TX_ID%%',\n)\nconst AVAX_TESTNET_EXPLORER = new ExplorerProvider(\n 'https://testnet.snowtrace.dev/',\n 'https://testnet.snowtrace.dev/address/%%ADDRESS%%',\n 'https://testnet.snowtrace.dev/tx/%%TX_ID%%',\n)\n\n// Define explorer providers for different networks\nconst avaxExplorerProviders = {\n [Network.Mainnet]: AVAX_MAINNET_EXPLORER,\n [Network.Testnet]: AVAX_TESTNET_EXPLORER,\n [Network.Stagenet]: AVAX_MAINNET_EXPLORER,\n}\n\n// Define root derivation paths for different networks\nconst ethRootDerivationPaths = {\n [Network.Mainnet]: `m/44'/60'/0'/0/`,\n [Network.Testnet]: `m/44'/60'/0'/0/`,\n [Network.Stagenet]: `m/44'/60'/0'/0/`,\n}\n\n// Define default parameters for the Avalanche client\nconst defaults = {\n [Network.Mainnet]: {\n approveGasLimit: BigNumber.from(200000),\n transferGasAssetGasLimit: BigNumber.from(23000),\n transferTokenGasLimit: BigNumber.from(100000),\n gasPrice: BigNumber.from(30 * 10 ** 9),\n },\n [Network.Testnet]: {\n approveGasLimit: BigNumber.from(200000),\n transferGasAssetGasLimit: BigNumber.from(23000),\n transferTokenGasLimit: BigNumber.from(100000),\n gasPrice: BigNumber.from(30 * 10 ** 9),\n },\n [Network.Stagenet]: {\n approveGasLimit: BigNumber.from(200000),\n transferGasAssetGasLimit: BigNumber.from(23000),\n transferTokenGasLimit: BigNumber.from(100000),\n gasPrice: BigNumber.from(30 * 10 ** 9),\n },\n}\n\n// Define the default parameters for the Avalanche client\nexport const defaultAvaxParams: EVMClientParams = {\n chain: AVAXChain,\n gasAsset: AssetAVAX,\n gasAssetDecimals: AVAX_GAS_ASSET_DECIMAL,\n defaults,\n providers: ethersJSProviders,\n explorerProviders: avaxExplorerProviders,\n dataProviders: [avaxProviders, routescanProviders],\n network: Network.Mainnet,\n feeBounds: {\n lower: LOWER_FEE_BOUND,\n upper: UPPER_FEE_BOUND,\n },\n rootDerivationPaths: ethRootDerivationPaths,\n}\n","// Import the Client class from '@xchainjs/xchain-evm' module\nimport { Network } from '@xchainjs/xchain-client'\nimport { ClientKeystore as EVMClientKeystore, EVMClientParams, KeystoreSigner } from '@xchainjs/xchain-evm'\n\n// Import defaultAvaxParams constant from './const' file\nimport { defaultAvaxParams } from './const'\n\n// Define and export the Client class as the default exportClientKeystore\nexport class ClientKeystore extends EVMClientKeystore {\n // Constructor function that takes an optional config parameter, defaulting to defaultAvaxParams\n constructor(config: Omit<EVMClientParams, 'signer'> = defaultAvaxParams) {\n super({\n ...config,\n signer: config.phrase\n ? new KeystoreSigner({\n phrase: config.phrase,\n provider: config.providers[config.network || Network.Mainnet],\n derivationPath: config.rootDerivationPaths\n ? config.rootDerivationPaths[config.network || Network.Mainnet]\n : '',\n })\n : undefined,\n })\n }\n}\n","/**\n * Import statements\n * Importing the `Client` class from the '@xchainjs/xchain-evm' module\n * Importing the `defaultEthParams` constant from the './const' file\n */\nimport type Transport from '@ledgerhq/hw-transport'\nimport { Network } from '@xchainjs/xchain-client'\nimport { ClientLedger as EVMClientLedger, EVMClientParams, LedgerSigner } from '@xchainjs/xchain-evm'\n/**\n * Class definition for the Avalanche EVM client.\n * Extends the `XchainEvmClient` class.\n */\nexport class ClientLedger extends EVMClientLedger {\n /**\n * Constructor for the Avalanche EVM client.\n * @param {Object} config - Configuration object for the client (optional).\n * Defaults to `defaultEthParams` if not provided.\n */\n constructor(config: Omit<EVMClientParams, 'signer' | 'phrase'> & { transport: Transport }) {\n // Call the constructor of the parent class with the provided config or the default parameters\n super({\n ...config,\n signer: new LedgerSigner({\n transport: config.transport,\n provider: config.providers[config.network || Network.Mainnet],\n derivationPath: config.rootDerivationPaths ? config.rootDerivationPaths[config.network || Network.Mainnet] : '',\n }),\n })\n }\n}\n","// Export all elements from the 'client' module\nimport { ClientKeystore } from './ClientKeystore'\n\nexport { ClientKeystore, ClientKeystore as Client } from './ClientKeystore'\nexport { ClientLedger } from './ClientLedger'\n\n// Export all elements from the 'const' module\nexport * from './const'\n\nexport default ClientKeystore\n"],"names":["EVMClientKeystore","EVMClientLedger"],"mappings":"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"}
package/lib/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":["../src/const.ts","../src/ClientKeystore.ts","../src/ClientLedger.ts","../src/index.ts"],"sourcesContent":["// Import necessary modules and classes from external packages and files\nimport { ExplorerProvider, Network } from '@xchainjs/xchain-client'\nimport { EVMClientParams } from '@xchainjs/xchain-evm'\nimport { EtherscanProvider, RoutescanProvider } from '@xchainjs/xchain-evm-providers'\nimport { Asset, AssetType } from '@xchainjs/xchain-util'\nimport { BigNumber, ethers } from 'ethers'\n\n// Define constants related to Avalanche\nexport const AVAX_DECIMAL = 18\nexport const LOWER_FEE_BOUND = 2_000_000_000\nexport const UPPER_FEE_BOUND = 1_000_000_000_000\nexport const AVAX_GAS_ASSET_DECIMAL = 18\nexport const AVAXChain = 'AVAX' as const\nexport const AssetAVAX: Asset = { chain: AVAXChain, symbol: 'AVAX', ticker: 'AVAX', type: AssetType.NATIVE }\n\n// Ankr api key\nconst ankrApiKey = process.env.ANKR_API_KEY\n\n// Define JSON-RPC providers for mainnet and testnet\nconst AVALANCHE_MAINNET_ETHERS_PROVIDER = new ethers.providers.JsonRpcProvider(\n `https://rpc.ankr.com/avalanche/${ankrApiKey}`,\n)\nconst AVALANCHE_TESTNET_ETHERS_PROVIDER = new ethers.providers.JsonRpcProvider('https://rpc.ankr.com/avalanche_fuji')\n\n// Define ethers providers for different networks\nconst ethersJSProviders = {\n [Network.Mainnet]: AVALANCHE_MAINNET_ETHERS_PROVIDER,\n [Network.Testnet]: AVALANCHE_TESTNET_ETHERS_PROVIDER,\n [Network.Stagenet]: AVALANCHE_MAINNET_ETHERS_PROVIDER,\n}\n\n// Define online providers (Etherscan) for mainnet and testnet\nconst AVAX_ONLINE_PROVIDER_TESTNET = new EtherscanProvider(\n AVALANCHE_TESTNET_ETHERS_PROVIDER,\n 'https://api-testnet.snowtrace.io',\n process.env.SNOWTRACE_API_KEY || '',\n AVAXChain,\n AssetAVAX,\n 18,\n)\nconst AVAX_ONLINE_PROVIDER_MAINNET = new EtherscanProvider(\n AVALANCHE_MAINNET_ETHERS_PROVIDER,\n 'https://api.snowtrace.io',\n process.env.SNOWTRACE_API_KEY || '',\n AVAXChain,\n AssetAVAX,\n 18,\n)\n\n// Define providers for different networks\nconst avaxProviders = {\n [Network.Mainnet]: AVAX_ONLINE_PROVIDER_MAINNET,\n [Network.Testnet]: AVAX_ONLINE_PROVIDER_TESTNET,\n [Network.Stagenet]: AVAX_ONLINE_PROVIDER_MAINNET,\n}\n\n// Define Routescan providers for mainnet and testnet\nconst ROUTESCAN_PROVIDER_MAINNET = new RoutescanProvider(\n AVALANCHE_MAINNET_ETHERS_PROVIDER,\n 'https://api.routescan.io',\n 43114,\n AssetAVAX,\n AVAX_DECIMAL,\n)\n\nconst ROUTESCAN_PROVIDER_TESTNET = new RoutescanProvider(\n AVALANCHE_TESTNET_ETHERS_PROVIDER,\n 'https://api.routescan.io',\n 43113,\n AssetAVAX,\n AVAX_DECIMAL,\n true,\n)\n\n// Define Routescan providers for different networks\nconst routescanProviders = {\n [Network.Mainnet]: ROUTESCAN_PROVIDER_MAINNET,\n [Network.Testnet]: ROUTESCAN_PROVIDER_TESTNET,\n [Network.Stagenet]: ROUTESCAN_PROVIDER_MAINNET,\n}\n\n// Define explorer providers for mainnet and testnet\nconst AVAX_MAINNET_EXPLORER = new ExplorerProvider(\n 'https://snowtrace.dev/',\n 'https://snowtrace.dev/address/%%ADDRESS%%',\n 'https://snowtrace.dev/tx/%%TX_ID%%',\n)\nconst AVAX_TESTNET_EXPLORER = new ExplorerProvider(\n 'https://testnet.snowtrace.dev/',\n 'https://testnet.snowtrace.dev/address/%%ADDRESS%%',\n 'https://testnet.snowtrace.dev/tx/%%TX_ID%%',\n)\n\n// Define explorer providers for different networks\nconst avaxExplorerProviders = {\n [Network.Mainnet]: AVAX_MAINNET_EXPLORER,\n [Network.Testnet]: AVAX_TESTNET_EXPLORER,\n [Network.Stagenet]: AVAX_MAINNET_EXPLORER,\n}\n\n// Define root derivation paths for different networks\nconst ethRootDerivationPaths = {\n [Network.Mainnet]: `m/44'/60'/0'/0/`,\n [Network.Testnet]: `m/44'/60'/0'/0/`,\n [Network.Stagenet]: `m/44'/60'/0'/0/`,\n}\n\n// Define default parameters for the Avalanche client\nconst defaults = {\n [Network.Mainnet]: {\n approveGasLimit: BigNumber.from(200000),\n transferGasAssetGasLimit: BigNumber.from(23000),\n transferTokenGasLimit: BigNumber.from(100000),\n gasPrice: BigNumber.from(30 * 10 ** 9),\n },\n [Network.Testnet]: {\n approveGasLimit: BigNumber.from(200000),\n transferGasAssetGasLimit: BigNumber.from(23000),\n transferTokenGasLimit: BigNumber.from(100000),\n gasPrice: BigNumber.from(30 * 10 ** 9),\n },\n [Network.Stagenet]: {\n approveGasLimit: BigNumber.from(200000),\n transferGasAssetGasLimit: BigNumber.from(23000),\n transferTokenGasLimit: BigNumber.from(100000),\n gasPrice: BigNumber.from(30 * 10 ** 9),\n },\n}\n\n// Define the default parameters for the Avalanche client\nexport const defaultAvaxParams: EVMClientParams = {\n chain: AVAXChain,\n gasAsset: AssetAVAX,\n gasAssetDecimals: AVAX_GAS_ASSET_DECIMAL,\n defaults,\n providers: ethersJSProviders,\n explorerProviders: avaxExplorerProviders,\n dataProviders: [avaxProviders, routescanProviders],\n network: Network.Mainnet,\n feeBounds: {\n lower: LOWER_FEE_BOUND,\n upper: UPPER_FEE_BOUND,\n },\n rootDerivationPaths: ethRootDerivationPaths,\n}\n","// Import the Client class from '@xchainjs/xchain-evm' module\nimport { Network } from '@xchainjs/xchain-client'\nimport { ClientKeystore as EVMClientKeystore, EVMClientParams, KeystoreSigner } from '@xchainjs/xchain-evm'\n\n// Import defaultAvaxParams constant from './const' file\nimport { defaultAvaxParams } from './const'\n\n// Define and export the Client class as the default exportClientKeystore\nexport class ClientKeystore extends EVMClientKeystore {\n // Constructor function that takes an optional config parameter, defaulting to defaultAvaxParams\n constructor(config: Omit<EVMClientParams, 'signer'> = defaultAvaxParams) {\n super({\n ...config,\n signer: config.phrase\n ? new KeystoreSigner({\n phrase: config.phrase,\n provider: config.providers[config.network || Network.Mainnet],\n derivationPath: config.rootDerivationPaths\n ? config.rootDerivationPaths[config.network || Network.Mainnet]\n : '',\n })\n : undefined,\n })\n }\n}\n","/**\n * Import statements\n * Importing the `Client` class from the '@xchainjs/xchain-evm' module\n * Importing the `defaultEthParams` constant from the './const' file\n */\nimport type Transport from '@ledgerhq/hw-transport'\nimport { Network } from '@xchainjs/xchain-client'\nimport { ClientLedger as EVMClientLedger, EVMClientParams, LedgerSigner } from '@xchainjs/xchain-evm'\n/**\n * Class definition for the Avalanche EVM client.\n * Extends the `XchainEvmClient` class.\n */\nexport class ClientLedger extends EVMClientLedger {\n /**\n * Constructor for the Avalanche EVM client.\n * @param {Object} config - Configuration object for the client (optional).\n * Defaults to `defaultEthParams` if not provided.\n */\n constructor(config: Omit<EVMClientParams, 'signer' | 'phrase'> & { transport: Transport }) {\n // Call the constructor of the parent class with the provided config or the default parameters\n super({\n ...config,\n signer: new LedgerSigner({\n transport: config.transport,\n provider: config.providers[config.network || Network.Mainnet],\n derivationPath: config.rootDerivationPaths ? config.rootDerivationPaths[config.network || Network.Mainnet] : '',\n }),\n })\n }\n}\n","// Export all elements from the 'client' module\nimport { ClientKeystore } from './ClientKeystore'\n\nexport { ClientKeystore, ClientKeystore as Client } from './ClientKeystore'\nexport { ClientLedger } from './ClientLedger'\n\n// Export all elements from the 'const' module\nexport * from './const'\n\nexport default ClientKeystore\n"],"names":["AssetType","ethers","Network","EtherscanProvider","RoutescanProvider","ExplorerProvider","BigNumber","EVMClientKeystore","KeystoreSigner","EVMClientLedger","LedgerSigner"],"mappings":"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"}