@xchainjs/xchain-avax 1.0.14 → 2.0.0

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
@@ -12,8 +12,10 @@ const UPPER_FEE_BOUND = 1000000000000;
12
12
  const AVAX_GAS_ASSET_DECIMAL = 18;
13
13
  const AVAXChain = 'AVAX';
14
14
  const AssetAVAX = { chain: AVAXChain, symbol: 'AVAX', ticker: 'AVAX', type: AssetType.NATIVE };
15
+ // Ankr api key
16
+ const ankrApiKey = process.env.ANKR_API_KEY;
15
17
  // Define JSON-RPC providers for mainnet and testnet
16
- const AVALANCHE_MAINNET_ETHERS_PROVIDER = new ethers.providers.JsonRpcProvider('https://rpc.ankr.com/avalanche');
18
+ const AVALANCHE_MAINNET_ETHERS_PROVIDER = new ethers.providers.JsonRpcProvider(`https://rpc.ankr.com/avalanche/${ankrApiKey}`);
17
19
  const AVALANCHE_TESTNET_ETHERS_PROVIDER = new ethers.providers.JsonRpcProvider('https://rpc.ankr.com/avalanche_fuji');
18
20
  // Define ethers providers for different networks
19
21
  const ethersJSProviders = {
@@ -132,4 +134,3 @@ class ClientLedger extends ClientLedger$1 {
132
134
  // Export all elements from the 'client' module
133
135
 
134
136
  export { AVAXChain, AVAX_DECIMAL, AVAX_GAS_ASSET_DECIMAL, AssetAVAX, ClientKeystore as Client, ClientKeystore, ClientLedger, LOWER_FEE_BOUND, UPPER_FEE_BOUND, ClientKeystore as default, defaultAvaxParams };
135
- //# sourceMappingURL=index.esm.js.map
package/lib/index.js CHANGED
@@ -16,8 +16,10 @@ const UPPER_FEE_BOUND = 1000000000000;
16
16
  const AVAX_GAS_ASSET_DECIMAL = 18;
17
17
  const AVAXChain = 'AVAX';
18
18
  const AssetAVAX = { chain: AVAXChain, symbol: 'AVAX', ticker: 'AVAX', type: xchainUtil.AssetType.NATIVE };
19
+ // Ankr api key
20
+ const ankrApiKey = process.env.ANKR_API_KEY;
19
21
  // Define JSON-RPC providers for mainnet and testnet
20
- const AVALANCHE_MAINNET_ETHERS_PROVIDER = new ethers.ethers.providers.JsonRpcProvider('https://rpc.ankr.com/avalanche');
22
+ const AVALANCHE_MAINNET_ETHERS_PROVIDER = new ethers.ethers.providers.JsonRpcProvider(`https://rpc.ankr.com/avalanche/${ankrApiKey}`);
21
23
  const AVALANCHE_TESTNET_ETHERS_PROVIDER = new ethers.ethers.providers.JsonRpcProvider('https://rpc.ankr.com/avalanche_fuji');
22
24
  // Define ethers providers for different networks
23
25
  const ethersJSProviders = {
@@ -146,4 +148,3 @@ exports.LOWER_FEE_BOUND = LOWER_FEE_BOUND;
146
148
  exports.UPPER_FEE_BOUND = UPPER_FEE_BOUND;
147
149
  exports.default = ClientKeystore;
148
150
  exports.defaultAvaxParams = defaultAvaxParams;
149
- //# sourceMappingURL=index.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xchainjs/xchain-avax",
3
- "version": "1.0.14",
3
+ "version": "2.0.0",
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.0",
42
+ "@xchainjs/xchain-evm-providers": "2.0.0",
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// Define JSON-RPC providers for mainnet and testnet\nconst AVALANCHE_MAINNET_ETHERS_PROVIDER = new ethers.providers.JsonRpcProvider('https://rpc.ankr.com/avalanche')\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// Define JSON-RPC providers for mainnet and testnet\nconst AVALANCHE_MAINNET_ETHERS_PROVIDER = new ethers.providers.JsonRpcProvider('https://rpc.ankr.com/avalanche')\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":";;;;;;;;;;AAAA;AAOA;AACO,MAAM,YAAY,GAAG,GAAE;AACvB,MAAM,eAAe,GAAG,WAAa;AACrC,MAAM,eAAe,GAAG,cAAiB;AACzC,MAAM,sBAAsB,GAAG,GAAE;AACjC,MAAM,SAAS,GAAG,OAAe;MAC3B,SAAS,GAAU,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAEA,oBAAS,CAAC,MAAM,GAAE;AAE5G;AACA,MAAM,iCAAiC,GAAG,IAAIC,aAAM,CAAC,SAAS,CAAC,eAAe,CAAC,gCAAgC,CAAC,CAAA;AAChH,MAAM,iCAAiC,GAAG,IAAIA,aAAM,CAAC,SAAS,CAAC,eAAe,CAAC,qCAAqC,CAAC,CAAA;AAErH;AACA,MAAM,iBAAiB,GAAG;AACxB,IAAA,CAACC,oBAAO,CAAC,OAAO,GAAG,iCAAiC;AACpD,IAAA,CAACA,oBAAO,CAAC,OAAO,GAAG,iCAAiC;AACpD,IAAA,CAACA,oBAAO,CAAC,QAAQ,GAAG,iCAAiC;CACtD,CAAA;AAED;AACA,MAAM,4BAA4B,GAAG,IAAIC,oCAAiB,CACxD,iCAAiC,EACjC,kCAAkC,EAClC,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,EAAE,EACnC,SAAS,EACT,SAAS,EACT,EAAE,CACH,CAAA;AACD,MAAM,4BAA4B,GAAG,IAAIA,oCAAiB,CACxD,iCAAiC,EACjC,0BAA0B,EAC1B,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,EAAE,EACnC,SAAS,EACT,SAAS,EACT,EAAE,CACH,CAAA;AAED;AACA,MAAM,aAAa,GAAG;AACpB,IAAA,CAACD,oBAAO,CAAC,OAAO,GAAG,4BAA4B;AAC/C,IAAA,CAACA,oBAAO,CAAC,OAAO,GAAG,4BAA4B;AAC/C,IAAA,CAACA,oBAAO,CAAC,QAAQ,GAAG,4BAA4B;CACjD,CAAA;AAED;AACA,MAAM,0BAA0B,GAAG,IAAIE,oCAAiB,CACtD,iCAAiC,EACjC,0BAA0B,EAC1B,KAAK,EACL,SAAS,EACT,YAAY,CACb,CAAA;AAED,MAAM,0BAA0B,GAAG,IAAIA,oCAAiB,CACtD,iCAAiC,EACjC,0BAA0B,EAC1B,KAAK,EACL,SAAS,EACT,YAAY,EACZ,IAAI,CACL,CAAA;AAED;AACA,MAAM,kBAAkB,GAAG;AACzB,IAAA,CAACF,oBAAO,CAAC,OAAO,GAAG,0BAA0B;AAC7C,IAAA,CAACA,oBAAO,CAAC,OAAO,GAAG,0BAA0B;AAC7C,IAAA,CAACA,oBAAO,CAAC,QAAQ,GAAG,0BAA0B;CAC/C,CAAA;AAED;AACA,MAAM,qBAAqB,GAAG,IAAIG,6BAAgB,CAChD,wBAAwB,EACxB,2CAA2C,EAC3C,oCAAoC,CACrC,CAAA;AACD,MAAM,qBAAqB,GAAG,IAAIA,6BAAgB,CAChD,gCAAgC,EAChC,mDAAmD,EACnD,4CAA4C,CAC7C,CAAA;AAED;AACA,MAAM,qBAAqB,GAAG;AAC5B,IAAA,CAACH,oBAAO,CAAC,OAAO,GAAG,qBAAqB;AACxC,IAAA,CAACA,oBAAO,CAAC,OAAO,GAAG,qBAAqB;AACxC,IAAA,CAACA,oBAAO,CAAC,QAAQ,GAAG,qBAAqB;CAC1C,CAAA;AAED;AACA,MAAM,sBAAsB,GAAG;AAC7B,IAAA,CAACA,oBAAO,CAAC,OAAO,GAAG,CAAiB,eAAA,CAAA;AACpC,IAAA,CAACA,oBAAO,CAAC,OAAO,GAAG,CAAiB,eAAA,CAAA;AACpC,IAAA,CAACA,oBAAO,CAAC,QAAQ,GAAG,CAAiB,eAAA,CAAA;CACtC,CAAA;AAED;AACA,MAAM,QAAQ,GAAG;AACf,IAAA,CAACA,oBAAO,CAAC,OAAO,GAAG;AACjB,QAAA,eAAe,EAAEI,gBAAS,CAAC,IAAI,CAAC,MAAM,CAAC;AACvC,QAAA,wBAAwB,EAAEA,gBAAS,CAAC,IAAI,CAAC,KAAK,CAAC;AAC/C,QAAA,qBAAqB,EAAEA,gBAAS,CAAC,IAAI,CAAC,MAAM,CAAC;AAC7C,QAAA,QAAQ,EAAEA,gBAAS,CAAC,IAAI,CAAC,EAAE,GAAG,IAAA,CAAA,GAAA,CAAA,EAAE,EAAI,CAAC,CAAA,CAAC;AACvC,KAAA;AACD,IAAA,CAACJ,oBAAO,CAAC,OAAO,GAAG;AACjB,QAAA,eAAe,EAAEI,gBAAS,CAAC,IAAI,CAAC,MAAM,CAAC;AACvC,QAAA,wBAAwB,EAAEA,gBAAS,CAAC,IAAI,CAAC,KAAK,CAAC;AAC/C,QAAA,qBAAqB,EAAEA,gBAAS,CAAC,IAAI,CAAC,MAAM,CAAC;AAC7C,QAAA,QAAQ,EAAEA,gBAAS,CAAC,IAAI,CAAC,EAAE,GAAG,IAAA,CAAA,GAAA,CAAA,EAAE,EAAI,CAAC,CAAA,CAAC;AACvC,KAAA;AACD,IAAA,CAACJ,oBAAO,CAAC,QAAQ,GAAG;AAClB,QAAA,eAAe,EAAEI,gBAAS,CAAC,IAAI,CAAC,MAAM,CAAC;AACvC,QAAA,wBAAwB,EAAEA,gBAAS,CAAC,IAAI,CAAC,KAAK,CAAC;AAC/C,QAAA,qBAAqB,EAAEA,gBAAS,CAAC,IAAI,CAAC,MAAM,CAAC;AAC7C,QAAA,QAAQ,EAAEA,gBAAS,CAAC,IAAI,CAAC,EAAE,GAAG,IAAA,CAAA,GAAA,CAAA,EAAE,EAAI,CAAC,CAAA,CAAC;AACvC,KAAA;CACF,CAAA;AAED;AACa,MAAA,iBAAiB,GAAoB;AAChD,IAAA,KAAK,EAAE,SAAS;AAChB,IAAA,QAAQ,EAAE,SAAS;AACnB,IAAA,gBAAgB,EAAE,sBAAsB;IACxC,QAAQ;AACR,IAAA,SAAS,EAAE,iBAAiB;AAC5B,IAAA,iBAAiB,EAAE,qBAAqB;AACxC,IAAA,aAAa,EAAE,CAAC,aAAa,EAAE,kBAAkB,CAAC;IAClD,OAAO,EAAEJ,oBAAO,CAAC,OAAO;AACxB,IAAA,SAAS,EAAE;AACT,QAAA,KAAK,EAAE,eAAe;AACtB,QAAA,KAAK,EAAE,eAAe;AACvB,KAAA;AACD,IAAA,mBAAmB,EAAE,sBAAsB;;;AC1I7C;AAOA;AACM,MAAO,cAAe,SAAQK,wBAAiB,CAAA;;AAEnD,IAAA,WAAA,CAAY,SAA0C,iBAAiB,EAAA;AACrE,QAAA,KAAK,iCACA,MAAM,CAAA,EAAA,EACT,MAAM,EAAE,MAAM,CAAC,MAAM;kBACjB,IAAIC,wBAAc,CAAC;oBACjB,MAAM,EAAE,MAAM,CAAC,MAAM;AACrB,oBAAA,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,IAAIN,oBAAO,CAAC,OAAO,CAAC;oBAC7D,cAAc,EAAE,MAAM,CAAC,mBAAmB;AACxC,0BAAE,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,OAAO,IAAIA,oBAAO,CAAC,OAAO,CAAC;AAC/D,0BAAE,EAAE;iBACP,CAAC;kBACF,SAAS,EAAA,CAAA,CACb,CAAA;KACH;AACF;;AChBD;;;AAGG;AACG,MAAO,YAAa,SAAQO,sBAAe,CAAA;AAC/C;;;;AAIG;AACH,IAAA,WAAA,CAAY,MAA6E,EAAA;;AAEvF,QAAA,KAAK,iCACA,MAAM,CAAA,EAAA,EACT,MAAM,EAAE,IAAIC,sBAAY,CAAC;gBACvB,SAAS,EAAE,MAAM,CAAC,SAAS;AAC3B,gBAAA,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,IAAIR,oBAAO,CAAC,OAAO,CAAC;gBAC7D,cAAc,EAAE,MAAM,CAAC,mBAAmB,GAAG,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,OAAO,IAAIA,oBAAO,CAAC,OAAO,CAAC,GAAG,EAAE;AAChH,aAAA,CAAC,IACF,CAAA;KACH;AACF;;AC7BD;;;;;;;;;;;;;;"}