@yaswap/cryptoassets 1.0.0 → 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.
Files changed (228) hide show
  1. package/CHANGELOG.md +393 -0
  2. package/dist/package.json +33 -0
  3. package/dist/src/assets/index.d.ts +32 -17
  4. package/dist/src/assets/index.js +79 -0
  5. package/dist/src/assets/index.js.map +1 -0
  6. package/dist/src/assets/mainnet/erc20/arbitrum-tokens.d.ts +2 -0
  7. package/dist/src/assets/mainnet/erc20/arbitrum-tokens.js +32 -0
  8. package/dist/src/assets/mainnet/erc20/arbitrum-tokens.js.map +1 -0
  9. package/dist/src/assets/mainnet/erc20/avalanche-tokens.d.ts +2 -0
  10. package/dist/src/assets/mainnet/erc20/avalanche-tokens.js +56 -0
  11. package/dist/src/assets/mainnet/erc20/avalanche-tokens.js.map +1 -0
  12. package/dist/src/assets/mainnet/erc20/ethereum-tokens.d.ts +2 -0
  13. package/dist/src/assets/mainnet/erc20/ethereum-tokens.js +2892 -0
  14. package/dist/src/assets/mainnet/erc20/ethereum-tokens.js.map +1 -0
  15. package/dist/src/assets/mainnet/erc20/index.d.ts +4 -0
  16. package/dist/src/assets/mainnet/erc20/index.js +18 -0
  17. package/dist/src/assets/mainnet/erc20/index.js.map +1 -0
  18. package/dist/src/assets/mainnet/erc20/optimism-tokens.d.ts +2 -0
  19. package/dist/src/assets/mainnet/erc20/optimism-tokens.js +318 -0
  20. package/dist/src/assets/mainnet/erc20/optimism-tokens.js.map +1 -0
  21. package/dist/src/assets/mainnet/erc20/polygon-tokens.d.ts +2 -0
  22. package/dist/src/assets/mainnet/erc20/polygon-tokens.js +349 -0
  23. package/dist/src/assets/mainnet/erc20/polygon-tokens.js.map +1 -0
  24. package/dist/src/assets/mainnet/erc20/rsk-tokens.d.ts +2 -0
  25. package/dist/src/assets/mainnet/erc20/rsk-tokens.js +78 -0
  26. package/dist/src/assets/mainnet/erc20/rsk-tokens.js.map +1 -0
  27. package/dist/src/assets/mainnet/erc20/solana-tokens.d.ts +2 -0
  28. package/dist/src/assets/mainnet/erc20/solana-tokens.js +47 -0
  29. package/dist/src/assets/mainnet/erc20/solana-tokens.js.map +1 -0
  30. package/dist/src/assets/mainnet/erc20/terra-tokens.d.ts +2 -0
  31. package/dist/src/assets/mainnet/erc20/terra-tokens.js +746 -0
  32. package/dist/src/assets/mainnet/erc20/terra-tokens.js.map +1 -0
  33. package/dist/src/assets/mainnet/native.d.ts +3 -0
  34. package/dist/src/assets/mainnet/native.js +10 -0
  35. package/dist/src/assets/mainnet/native.js.map +1 -0
  36. package/dist/src/assets/testnet/erc20/ethereum-tokens.d.ts +2 -0
  37. package/dist/src/assets/testnet/erc20/ethereum-tokens.js +37 -0
  38. package/dist/src/assets/testnet/erc20/ethereum-tokens.js.map +1 -0
  39. package/dist/src/assets/testnet/erc20/index.d.ts +4 -0
  40. package/dist/src/assets/testnet/erc20/index.js +15 -0
  41. package/dist/src/assets/testnet/erc20/index.js.map +1 -0
  42. package/dist/src/assets/testnet/erc20/optimism-tokens.d.ts +2 -0
  43. package/dist/src/assets/testnet/erc20/optimism-tokens.js +50 -0
  44. package/dist/src/assets/testnet/erc20/optimism-tokens.js.map +1 -0
  45. package/dist/src/assets/testnet/erc20/polygon-tokens.d.ts +2 -0
  46. package/dist/src/assets/testnet/erc20/polygon-tokens.js +30 -0
  47. package/dist/src/assets/testnet/erc20/polygon-tokens.js.map +1 -0
  48. package/dist/src/assets/testnet/erc20/rsk-tokens.d.ts +2 -0
  49. package/dist/src/assets/testnet/erc20/rsk-tokens.js +18 -0
  50. package/dist/src/assets/testnet/erc20/rsk-tokens.js.map +1 -0
  51. package/dist/src/assets/testnet/erc20/terra-tokens.d.ts +2 -0
  52. package/dist/src/assets/testnet/erc20/terra-tokens.js +17 -0
  53. package/dist/src/assets/testnet/erc20/terra-tokens.js.map +1 -0
  54. package/dist/src/assets/testnet/native.d.ts +3 -0
  55. package/dist/src/assets/testnet/native.js +10 -0
  56. package/dist/src/assets/testnet/native.js.map +1 -0
  57. package/dist/src/assets/utils.d.ts +4 -0
  58. package/dist/src/assets/utils.js +19 -0
  59. package/dist/src/assets/utils.js.map +1 -0
  60. package/dist/src/chains/BaseChain.d.ts +11 -0
  61. package/dist/src/chains/BaseChain.js +13 -0
  62. package/dist/src/chains/BaseChain.js.map +1 -0
  63. package/dist/src/chains/EvmChain.d.ts +10 -0
  64. package/dist/src/chains/EvmChain.js +28 -0
  65. package/dist/src/chains/EvmChain.js.map +1 -0
  66. package/dist/src/chains/NonEvmChain.d.ts +17 -0
  67. package/dist/src/chains/NonEvmChain.js +57 -0
  68. package/dist/src/chains/NonEvmChain.js.map +1 -0
  69. package/dist/src/chains/UtxoChain.d.ts +12 -0
  70. package/dist/src/chains/UtxoChain.js +57 -0
  71. package/dist/src/chains/UtxoChain.js.map +1 -0
  72. package/dist/src/chains/index.d.ts +23 -0
  73. package/dist/src/chains/index.js +55 -0
  74. package/dist/src/chains/index.js.map +1 -0
  75. package/dist/src/chains/mainnet/EvmChains.d.ts +2 -0
  76. package/dist/src/chains/mainnet/EvmChains.js +24 -0
  77. package/dist/src/chains/mainnet/EvmChains.js.map +1 -0
  78. package/dist/src/chains/mainnet/NonEvmChains.d.ts +2 -0
  79. package/dist/src/chains/mainnet/NonEvmChains.js +14 -0
  80. package/dist/src/chains/mainnet/NonEvmChains.js.map +1 -0
  81. package/dist/src/chains/mainnet/UtxoChains.d.ts +2 -0
  82. package/dist/src/chains/mainnet/UtxoChains.js +12 -0
  83. package/dist/src/chains/mainnet/UtxoChains.js.map +1 -0
  84. package/dist/src/chains/mainnet/evm/arbitrum.d.ts +3 -0
  85. package/dist/src/chains/mainnet/evm/arbitrum.js +63 -0
  86. package/dist/src/chains/mainnet/evm/arbitrum.js.map +1 -0
  87. package/dist/src/chains/mainnet/evm/avalanche.d.ts +3 -0
  88. package/dist/src/chains/mainnet/evm/avalanche.js +65 -0
  89. package/dist/src/chains/mainnet/evm/avalanche.js.map +1 -0
  90. package/dist/src/chains/mainnet/evm/bsc.d.ts +3 -0
  91. package/dist/src/chains/mainnet/evm/bsc.js +62 -0
  92. package/dist/src/chains/mainnet/evm/bsc.js.map +1 -0
  93. package/dist/src/chains/mainnet/evm/ethereum.d.ts +3 -0
  94. package/dist/src/chains/mainnet/evm/ethereum.js +66 -0
  95. package/dist/src/chains/mainnet/evm/ethereum.js.map +1 -0
  96. package/dist/src/chains/mainnet/evm/fuse.d.ts +3 -0
  97. package/dist/src/chains/mainnet/evm/fuse.js +61 -0
  98. package/dist/src/chains/mainnet/evm/fuse.js.map +1 -0
  99. package/dist/src/chains/mainnet/evm/optimism.d.ts +3 -0
  100. package/dist/src/chains/mainnet/evm/optimism.js +62 -0
  101. package/dist/src/chains/mainnet/evm/optimism.js.map +1 -0
  102. package/dist/src/chains/mainnet/evm/polygon.d.ts +3 -0
  103. package/dist/src/chains/mainnet/evm/polygon.js +61 -0
  104. package/dist/src/chains/mainnet/evm/polygon.js.map +1 -0
  105. package/dist/src/chains/mainnet/evm/rsk.d.ts +3 -0
  106. package/dist/src/chains/mainnet/evm/rsk.js +57 -0
  107. package/dist/src/chains/mainnet/evm/rsk.js.map +1 -0
  108. package/dist/src/chains/mainnet/non-evm/near.d.ts +3 -0
  109. package/dist/src/chains/mainnet/non-evm/near.js +54 -0
  110. package/dist/src/chains/mainnet/non-evm/near.js.map +1 -0
  111. package/dist/src/chains/mainnet/non-evm/solana.d.ts +3 -0
  112. package/dist/src/chains/mainnet/non-evm/solana.js +61 -0
  113. package/dist/src/chains/mainnet/non-evm/solana.js.map +1 -0
  114. package/dist/src/chains/mainnet/non-evm/terra.d.ts +3 -0
  115. package/dist/src/chains/mainnet/non-evm/terra.js +70 -0
  116. package/dist/src/chains/mainnet/non-evm/terra.js.map +1 -0
  117. package/dist/src/chains/mainnet/utxo/bitcoin.d.ts +3 -0
  118. package/dist/src/chains/mainnet/utxo/bitcoin.js +66 -0
  119. package/dist/src/chains/mainnet/utxo/bitcoin.js.map +1 -0
  120. package/dist/src/chains/mainnet/utxo/yacoin.d.ts +3 -0
  121. package/dist/src/chains/mainnet/utxo/yacoin.js +66 -0
  122. package/dist/src/chains/mainnet/utxo/yacoin.js.map +1 -0
  123. package/dist/src/chains/testnet/EvmChains.d.ts +2 -0
  124. package/dist/src/chains/testnet/EvmChains.js +24 -0
  125. package/dist/src/chains/testnet/EvmChains.js.map +1 -0
  126. package/dist/src/chains/testnet/NonEvmChains.d.ts +2 -0
  127. package/dist/src/chains/testnet/NonEvmChains.js +14 -0
  128. package/dist/src/chains/testnet/NonEvmChains.js.map +1 -0
  129. package/dist/src/chains/testnet/UtxoChains.d.ts +2 -0
  130. package/dist/src/chains/testnet/UtxoChains.js +12 -0
  131. package/dist/src/chains/testnet/UtxoChains.js.map +1 -0
  132. package/dist/src/chains/testnet/evm/arbitrum.d.ts +2 -0
  133. package/dist/src/chains/testnet/evm/arbitrum.js +20 -0
  134. package/dist/src/chains/testnet/evm/arbitrum.js.map +1 -0
  135. package/dist/src/chains/testnet/evm/avalanche.d.ts +2 -0
  136. package/dist/src/chains/testnet/evm/avalanche.js +23 -0
  137. package/dist/src/chains/testnet/evm/avalanche.js.map +1 -0
  138. package/dist/src/chains/testnet/evm/bsc.d.ts +2 -0
  139. package/dist/src/chains/testnet/evm/bsc.js +20 -0
  140. package/dist/src/chains/testnet/evm/bsc.js.map +1 -0
  141. package/dist/src/chains/testnet/evm/ethereum.d.ts +2 -0
  142. package/dist/src/chains/testnet/evm/ethereum.js +21 -0
  143. package/dist/src/chains/testnet/evm/ethereum.js.map +1 -0
  144. package/dist/src/chains/testnet/evm/fuse.d.ts +2 -0
  145. package/dist/src/chains/testnet/evm/fuse.js +20 -0
  146. package/dist/src/chains/testnet/evm/fuse.js.map +1 -0
  147. package/dist/src/chains/testnet/evm/optimism.d.ts +35 -0
  148. package/dist/src/chains/testnet/evm/optimism.js +30 -0
  149. package/dist/src/chains/testnet/evm/optimism.js.map +1 -0
  150. package/dist/src/chains/testnet/evm/polygon.d.ts +2 -0
  151. package/dist/src/chains/testnet/evm/polygon.js +23 -0
  152. package/dist/src/chains/testnet/evm/polygon.js.map +1 -0
  153. package/dist/src/chains/testnet/evm/rsk.d.ts +2 -0
  154. package/dist/src/chains/testnet/evm/rsk.js +19 -0
  155. package/dist/src/chains/testnet/evm/rsk.js.map +1 -0
  156. package/dist/src/chains/testnet/non-evm/near.d.ts +2 -0
  157. package/dist/src/chains/testnet/non-evm/near.js +19 -0
  158. package/dist/src/chains/testnet/non-evm/near.js.map +1 -0
  159. package/dist/src/chains/testnet/non-evm/solana.d.ts +2 -0
  160. package/dist/src/chains/testnet/non-evm/solana.js +21 -0
  161. package/dist/src/chains/testnet/non-evm/solana.js.map +1 -0
  162. package/dist/src/chains/testnet/non-evm/terra.d.ts +2 -0
  163. package/dist/src/chains/testnet/non-evm/terra.js +20 -0
  164. package/dist/src/chains/testnet/non-evm/terra.js.map +1 -0
  165. package/dist/src/chains/testnet/utxo/bitcoin.d.ts +2 -0
  166. package/dist/src/chains/testnet/utxo/bitcoin.js +30 -0
  167. package/dist/src/chains/testnet/utxo/bitcoin.js.map +1 -0
  168. package/dist/src/chains/testnet/utxo/yacoin.d.ts +3 -0
  169. package/dist/src/chains/testnet/utxo/yacoin.js +66 -0
  170. package/dist/src/chains/testnet/utxo/yacoin.js.map +1 -0
  171. package/dist/src/chains/utils.d.ts +4 -0
  172. package/dist/src/chains/utils.js +52 -0
  173. package/dist/src/chains/utils.js.map +1 -0
  174. package/dist/src/dapps/dapps.json +817 -0
  175. package/dist/src/dapps/index.js +8 -0
  176. package/dist/src/dapps/index.js.map +1 -0
  177. package/dist/src/index.d.ts +9 -8
  178. package/dist/src/index.js +21 -0
  179. package/dist/src/index.js.map +1 -0
  180. package/dist/src/interfaces/IAsset.d.ts +16 -0
  181. package/dist/src/interfaces/IAsset.js +3 -0
  182. package/dist/src/interfaces/IAsset.js.map +1 -0
  183. package/dist/src/interfaces/IChain.d.ts +33 -0
  184. package/dist/src/interfaces/IChain.js +3 -0
  185. package/dist/src/interfaces/IChain.js.map +1 -0
  186. package/dist/src/interfaces/IFees.d.ts +4 -0
  187. package/dist/src/interfaces/IFees.js +3 -0
  188. package/dist/src/interfaces/IFees.js.map +1 -0
  189. package/dist/src/interfaces/IGasLimit.d.ts +11 -0
  190. package/dist/src/interfaces/IGasLimit.js +3 -0
  191. package/dist/src/interfaces/IGasLimit.js.map +1 -0
  192. package/dist/src/interfaces/INetwork.d.ts +23 -0
  193. package/dist/src/interfaces/INetwork.js +3 -0
  194. package/dist/src/interfaces/INetwork.js.map +1 -0
  195. package/dist/src/types.d.ts +31 -28
  196. package/dist/src/types.js +36 -0
  197. package/dist/src/types.js.map +1 -0
  198. package/dist/src/utils.d.ts +6 -0
  199. package/dist/src/utils.js +24 -0
  200. package/dist/src/utils.js.map +1 -0
  201. package/dist/tsconfig.tsbuildinfo +1 -0
  202. package/package.json +20 -71
  203. package/LICENSE.md +0 -21
  204. package/README.md +0 -37
  205. package/dist/index.cjs.js +0 -3
  206. package/dist/src/assets/erc20/index.d.ts +0 -10
  207. package/dist/src/assets/native.d.ts +0 -17
  208. package/dist/src/assets/testnet.d.ts +0 -3
  209. package/dist/src/chains.d.ts +0 -6
  210. package/dist/src/common.d.ts +0 -13
  211. package/src/assets/erc20/avalanche-tokens.json +0 -29
  212. package/src/assets/erc20/ethereum-tokens.json +0 -2221
  213. package/src/assets/erc20/index.ts +0 -62
  214. package/src/assets/erc20/polygon-tokens.json +0 -359
  215. package/src/assets/erc20/rsk-tokens.json +0 -53
  216. package/src/assets/erc20/terra-tokens.json +0 -640
  217. package/src/assets/index.ts +0 -14
  218. package/src/assets/native.ts +0 -143
  219. package/src/assets/testnet.ts +0 -24
  220. package/src/base58-js.d.ts +0 -1
  221. package/src/chains.ts +0 -235
  222. package/src/common.ts +0 -105
  223. package/src/dapps/dapps.json +0 -2597
  224. package/src/dapps/index.ts +0 -10
  225. package/src/index.ts +0 -29
  226. package/src/types.ts +0 -47
  227. package/src/typings/bitcoin-address-validation.d.ts +0 -4
  228. package/src/typings/cashaddrjs.d.ts +0 -1
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const fuse_1 = tslib_1.__importDefault(require("../../mainnet/evm/fuse"));
5
+ const utils_1 = require("../../utils");
6
+ exports.default = (0, utils_1.transformMainnetToTestnetChain)(fuse_1.default, {
7
+ name: 'fuse_testnet',
8
+ coinType: '60',
9
+ networkId: 123,
10
+ chainId: 123,
11
+ isTestnet: true,
12
+ rpcUrls: ['https://rpc.fusespark.io'],
13
+ }, [
14
+ {
15
+ tx: 'https://explorer.fusespark.io/tx/{hash}',
16
+ address: 'https://explorer.fusespark.io/address/{address}',
17
+ token: 'https://explorer.fusespark.io/token/{token}',
18
+ },
19
+ ], 'https://stakely.io/en/faucet/fuse-blockchain');
20
+ //# sourceMappingURL=fuse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fuse.js","sourceRoot":"","sources":["../../../../../src/chains/testnet/evm/fuse.ts"],"names":[],"mappings":";;;AAAA,0EAA0C;AAC1C,uCAA6D;AAE7D,kBAAe,IAAA,sCAA8B,EAC3C,cAAI,EACJ;IACE,IAAI,EAAE,cAAc;IACpB,QAAQ,EAAE,IAAI;IACd,SAAS,EAAE,GAAG;IACd,OAAO,EAAE,GAAG;IACZ,SAAS,EAAE,IAAI;IACf,OAAO,EAAE,CAAC,0BAA0B,CAAC;CACtC,EACD;IACE;QACE,EAAE,EAAE,yCAAyC;QAC7C,OAAO,EAAE,iDAAiD;QAC1D,KAAK,EAAE,6CAA6C;KACrD;CACF,EACD,8CAA8C,CAC/C,CAAC"}
@@ -0,0 +1,35 @@
1
+ declare const _default: {
2
+ gasLimit: {
3
+ send: {
4
+ native: number;
5
+ nonNative: number;
6
+ };
7
+ sendL1: {
8
+ native: number;
9
+ nonNative: number;
10
+ };
11
+ };
12
+ id: import("../../..").ChainId;
13
+ name: string;
14
+ code: string;
15
+ color: string;
16
+ nativeAsset: import("../../..").IAsset[];
17
+ isEVM: boolean;
18
+ hasTokens: boolean;
19
+ nftProviderType?: import("../../../types").NftProviderType | undefined;
20
+ isMultiLayered: boolean;
21
+ averageBlockTime: number;
22
+ safeConfirmations: number;
23
+ txFailureTimeoutMs: number;
24
+ nameService?: import("../../../interfaces/IChain").INameService | undefined;
25
+ network: import("../../../interfaces/INetwork").INetwork;
26
+ faucetUrl?: string | undefined;
27
+ explorerViews: import("../../../types").ExplorerView[];
28
+ multicallSupport: boolean;
29
+ ledgerSupport: boolean;
30
+ fees: import("../../../interfaces/IFees").IFees;
31
+ EIP1559: boolean;
32
+ supportCustomFees: boolean;
33
+ feeMultiplier?: import("../../../types").FeeMultiplier | undefined;
34
+ };
35
+ export default _default;
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const optimism_1 = tslib_1.__importDefault(require("../../mainnet/evm/optimism"));
5
+ const utils_1 = require("../../utils");
6
+ const optimismTestnet = (0, utils_1.transformMainnetToTestnetChain)(optimism_1.default, {
7
+ name: 'optimism_testnet',
8
+ coinType: '60',
9
+ networkId: 420,
10
+ chainId: 420,
11
+ isTestnet: true,
12
+ rpcUrls: ['https://optimism-goerli.infura.io/v3/da99ebc8c0964bb8bb757b6f8cc40f1f'],
13
+ }, [
14
+ {
15
+ tx: 'https://goerli-optimism.etherscan.io/tx/{hash}',
16
+ address: 'https://goerli-optimism.etherscan.io/address/{address}',
17
+ token: 'https://goerli-optimism.etherscan.io/token/{token}',
18
+ },
19
+ ], 'https://optimismfaucet.xyz/');
20
+ exports.default = Object.assign(Object.assign({}, optimismTestnet), { gasLimit: {
21
+ send: {
22
+ native: 21000,
23
+ nonNative: 100000,
24
+ },
25
+ sendL1: {
26
+ native: 7500,
27
+ nonNative: 8250,
28
+ },
29
+ } });
30
+ //# sourceMappingURL=optimism.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"optimism.js","sourceRoot":"","sources":["../../../../../src/chains/testnet/evm/optimism.ts"],"names":[],"mappings":";;;AAAA,kFAAkD;AAClD,uCAA6D;AAE7D,MAAM,eAAe,GAAG,IAAA,sCAA8B,EACpD,kBAAQ,EACR;IACE,IAAI,EAAE,kBAAkB;IACxB,QAAQ,EAAE,IAAI;IACd,SAAS,EAAE,GAAG;IACd,OAAO,EAAE,GAAG;IACZ,SAAS,EAAE,IAAI;IACf,OAAO,EAAE,CAAC,uEAAuE,CAAC;CACnF,EACD;IACE;QACE,EAAE,EAAE,gDAAgD;QACpD,OAAO,EAAE,wDAAwD;QACjE,KAAK,EAAE,oDAAoD;KAC5D;CACF,EACD,6BAA6B,CAC9B,CAAC;AAEF,kDACK,eAAe,KAClB,QAAQ,EAAE;QAER,IAAI,EAAE;YACJ,MAAM,EAAE,KAAM;YACd,SAAS,EAAE,MAAO;SACnB;QAGD,MAAM,EAAE;YACN,MAAM,EAAE,IAAK;YACb,SAAS,EAAE,IAAK;SACjB;KACF,IACD"}
@@ -0,0 +1,2 @@
1
+ declare const _default: import("../../BaseChain").BaseChain;
2
+ export default _default;
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const polygon_1 = tslib_1.__importDefault(require("../../mainnet/evm/polygon"));
5
+ const utils_1 = require("../../utils");
6
+ exports.default = (0, utils_1.transformMainnetToTestnetChain)(polygon_1.default, {
7
+ name: 'polygon_testnet',
8
+ coinType: '60',
9
+ networkId: 80001,
10
+ chainId: 80001,
11
+ isTestnet: true,
12
+ rpcUrls: [
13
+ 'https://polygon-mumbai.infura.io/v3/a2ad6f8c0e57453ca4918331f16de87d',
14
+ 'https://matic-testnet-archive-rpc.bwarelabs.com',
15
+ ],
16
+ }, [
17
+ {
18
+ tx: 'https://mumbai.polygonscan.com/tx/{hash}',
19
+ address: 'https://mumbai.polygonscan.com/address/{address}',
20
+ token: 'https://mumbai.polygonscan.com/token/{token}',
21
+ },
22
+ ], 'https://mumbaifaucet.com/');
23
+ //# sourceMappingURL=polygon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"polygon.js","sourceRoot":"","sources":["../../../../../src/chains/testnet/evm/polygon.ts"],"names":[],"mappings":";;;AAAA,gFAAgD;AAChD,uCAA6D;AAE7D,kBAAe,IAAA,sCAA8B,EAC3C,iBAAO,EACP;IACE,IAAI,EAAE,iBAAiB;IACvB,QAAQ,EAAE,IAAI;IACd,SAAS,EAAE,KAAK;IAChB,OAAO,EAAE,KAAK;IACd,SAAS,EAAE,IAAI;IACf,OAAO,EAAE;QACP,sEAAsE;QACtE,iDAAiD;KAClD;CACF,EACD;IACE;QACE,EAAE,EAAE,0CAA0C;QAC9C,OAAO,EAAE,kDAAkD;QAC3D,KAAK,EAAE,8CAA8C;KACtD;CACF,EACD,2BAA2B,CAC5B,CAAC"}
@@ -0,0 +1,2 @@
1
+ declare const _default: import("../../BaseChain").BaseChain;
2
+ export default _default;
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const rsk_1 = tslib_1.__importDefault(require("../../mainnet/evm/rsk"));
5
+ const utils_1 = require("../../utils");
6
+ exports.default = (0, utils_1.transformMainnetToTestnetChain)(rsk_1.default, {
7
+ name: 'rsk_testnet',
8
+ coinType: '60',
9
+ networkId: 31,
10
+ chainId: 31,
11
+ isTestnet: true,
12
+ rpcUrls: ['https://testnet.sovryn.app/rpc'],
13
+ }, [
14
+ {
15
+ tx: 'https://explorer.testnet.rsk.co/tx/{hash}',
16
+ address: 'https://explorer.testnet.rsk.co/address/{address}',
17
+ },
18
+ ], 'https://faucet.rsk.co/');
19
+ //# sourceMappingURL=rsk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rsk.js","sourceRoot":"","sources":["../../../../../src/chains/testnet/evm/rsk.ts"],"names":[],"mappings":";;;AAAA,wEAAwC;AACxC,uCAA6D;AAE7D,kBAAe,IAAA,sCAA8B,EAC3C,aAAG,EACH;IACE,IAAI,EAAE,aAAa;IACnB,QAAQ,EAAE,IAAI;IACd,SAAS,EAAE,EAAE;IACb,OAAO,EAAE,EAAE;IACX,SAAS,EAAE,IAAI;IACf,OAAO,EAAE,CAAC,gCAAgC,CAAC;CAC5C,EACD;IACE;QACE,EAAE,EAAE,2CAA2C;QAC/C,OAAO,EAAE,mDAAmD;KAC7D;CACF,EACD,wBAAwB,CACzB,CAAC"}
@@ -0,0 +1,2 @@
1
+ declare const _default: import("../../BaseChain").BaseChain;
2
+ export default _default;
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const near_1 = tslib_1.__importDefault(require("../../mainnet/non-evm/near"));
5
+ const utils_1 = require("../../utils");
6
+ exports.default = (0, utils_1.transformMainnetToTestnetChain)(near_1.default, {
7
+ name: 'Near Testnet',
8
+ networkId: 'testnet',
9
+ coinType: '397',
10
+ isTestnet: true,
11
+ rpcUrls: ['https://near-testnet.infura.io/v3/37efa691ffec4c41a60aa4a69865d8f6', 'https://rpc.testnet.near.org'],
12
+ scraperUrls: ['https://near-testnet-api.liq-chainhub.net'],
13
+ }, [
14
+ {
15
+ tx: 'https://explorer.testnet.near.org/transactions/{hash}',
16
+ address: 'https://explorer.testnet.near.org/accounts/{address}',
17
+ },
18
+ ], 'https://wallet.testnet.near.org/');
19
+ //# sourceMappingURL=near.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"near.js","sourceRoot":"","sources":["../../../../../src/chains/testnet/non-evm/near.ts"],"names":[],"mappings":";;;AAAA,8EAA8C;AAC9C,uCAA6D;AAE7D,kBAAe,IAAA,sCAA8B,EAC3C,cAAI,EACJ;IACE,IAAI,EAAE,cAAc;IACpB,SAAS,EAAE,SAAS;IACpB,QAAQ,EAAE,KAAK;IACf,SAAS,EAAE,IAAI;IACf,OAAO,EAAE,CAAC,oEAAoE,EAAE,8BAA8B,CAAC;IAC/G,WAAW,EAAE,CAAC,2CAA2C,CAAC;CAC3D,EACD;IACE;QACE,EAAE,EAAE,uDAAuD;QAC3D,OAAO,EAAE,sDAAsD;KAChE;CACF,EACD,kCAAkC,CACnC,CAAC"}
@@ -0,0 +1,2 @@
1
+ declare const _default: import("../../BaseChain").BaseChain;
2
+ export default _default;
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const solana_1 = tslib_1.__importDefault(require("../../mainnet/non-evm/solana"));
5
+ const utils_1 = require("../../utils");
6
+ exports.default = (0, utils_1.transformMainnetToTestnetChain)(solana_1.default, {
7
+ name: 'Solana Testnet',
8
+ networkId: 'testnet',
9
+ coinType: '501',
10
+ isTestnet: true,
11
+ rpcUrls: [
12
+ 'https://api.testnet.solana.com',
13
+ 'https://solana--devnet.datahub.figment.io/apikey/d7d9844ccf72ad4fef9bc5caaa957a50',
14
+ ],
15
+ }, [
16
+ {
17
+ tx: 'https://explorer.solana.com/tx/{hash}?cluster=testnet',
18
+ address: 'https://explorer.solana.com/address/{address}?cluster=testnet',
19
+ },
20
+ ], 'https://solfaucet.com/');
21
+ //# sourceMappingURL=solana.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"solana.js","sourceRoot":"","sources":["../../../../../src/chains/testnet/non-evm/solana.ts"],"names":[],"mappings":";;;AAAA,kFAAkD;AAClD,uCAA6D;AAE7D,kBAAe,IAAA,sCAA8B,EAC3C,gBAAM,EACN;IACE,IAAI,EAAE,gBAAgB;IACtB,SAAS,EAAE,SAAS;IACpB,QAAQ,EAAE,KAAK;IACf,SAAS,EAAE,IAAI;IACf,OAAO,EAAE;QACP,gCAAgC;QAChC,mFAAmF;KACpF;CACF,EACD;IACE;QACE,EAAE,EAAE,uDAAuD;QAC3D,OAAO,EAAE,+DAA+D;KACzE;CACF,EACD,wBAAwB,CACzB,CAAC"}
@@ -0,0 +1,2 @@
1
+ declare const _default: import("../../BaseChain").BaseChain;
2
+ export default _default;
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const terra_1 = tslib_1.__importDefault(require("../../mainnet/non-evm/terra"));
5
+ const utils_1 = require("../../utils");
6
+ exports.default = (0, utils_1.transformMainnetToTestnetChain)(terra_1.default, {
7
+ name: 'Terra Classic Testnet',
8
+ networkId: 'testnet',
9
+ coinType: '330',
10
+ isTestnet: true,
11
+ chainId: 'bombay-12',
12
+ rpcUrls: ['https://pisco-lcd.terra.dev'],
13
+ scraperUrls: ['https://pisco-fcd.terra.de'],
14
+ }, [
15
+ {
16
+ tx: 'https://finder.terra.money/testnet/tx/{hash}',
17
+ address: 'https://finder.terra.money/testnet/address/{address}',
18
+ },
19
+ ], 'https://faucet.terra.money/');
20
+ //# sourceMappingURL=terra.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terra.js","sourceRoot":"","sources":["../../../../../src/chains/testnet/non-evm/terra.ts"],"names":[],"mappings":";;;AAAA,gFAAgD;AAChD,uCAA6D;AAE7D,kBAAe,IAAA,sCAA8B,EAC3C,eAAK,EACL;IACE,IAAI,EAAE,uBAAuB;IAC7B,SAAS,EAAE,SAAS;IACpB,QAAQ,EAAE,KAAK;IACf,SAAS,EAAE,IAAI;IACf,OAAO,EAAE,WAAW;IACpB,OAAO,EAAE,CAAC,6BAA6B,CAAC;IACxC,WAAW,EAAE,CAAC,4BAA4B,CAAC;CAC5C,EACD;IACE;QACE,EAAE,EAAE,8CAA8C;QAClD,OAAO,EAAE,sDAAsD;KAChE;CACF,EACD,6BAA6B,CAC9B,CAAC"}
@@ -0,0 +1,2 @@
1
+ declare const _default: import("../../BaseChain").BaseChain;
2
+ export default _default;
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const bitcoin_1 = tslib_1.__importDefault(require("../../mainnet/utxo/bitcoin"));
5
+ const utils_1 = require("../../utils");
6
+ exports.default = (0, utils_1.transformMainnetToTestnetChain)(bitcoin_1.default, {
7
+ name: 'bitcoin_testnet',
8
+ coinType: '1',
9
+ isTestnet: true,
10
+ networkId: 'testnet',
11
+ utxo: {
12
+ messagePrefix: '\x18Bitcoin Signed Message:\n',
13
+ bech32: 'tb',
14
+ bip32: {
15
+ public: 0x043587cf,
16
+ private: 0x04358394,
17
+ },
18
+ pubKeyHash: 0x6f,
19
+ scriptHash: 0xc4,
20
+ wif: 0xef,
21
+ },
22
+ rpcUrls: ['https://electrs-testnet-api.liq-chainhub.net/'],
23
+ scraperUrls: ['https://electrs-batch-testnet-api.liq-chainhub.net/'],
24
+ }, [
25
+ {
26
+ tx: 'https://blockstream.info/testnet/tx/{hash}',
27
+ address: 'https://blockstream.info/testnet/address/{address}',
28
+ },
29
+ ], 'https://bitcoinfaucet.uo1.net/');
30
+ //# sourceMappingURL=bitcoin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bitcoin.js","sourceRoot":"","sources":["../../../../../src/chains/testnet/utxo/bitcoin.ts"],"names":[],"mappings":";;;AAAA,iFAAiD;AACjD,uCAA6D;AAE7D,kBAAe,IAAA,sCAA8B,EAC3C,iBAAO,EACP;IACE,IAAI,EAAE,iBAAiB;IACvB,QAAQ,EAAE,GAAG;IACb,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,SAAS;IACpB,IAAI,EAAE;QACJ,aAAa,EAAE,+BAA+B;QAC9C,MAAM,EAAE,IAAI;QACZ,KAAK,EAAE;YACL,MAAM,EAAE,UAAU;YAClB,OAAO,EAAE,UAAU;SACpB;QACD,UAAU,EAAE,IAAI;QAChB,UAAU,EAAE,IAAI;QAChB,GAAG,EAAE,IAAI;KACV;IACD,OAAO,EAAE,CAAC,+CAA+C,CAAC;IAC1D,WAAW,EAAE,CAAC,qDAAqD,CAAC;CACrE,EACD;IACE;QACE,EAAE,EAAE,4CAA4C;QAChD,OAAO,EAAE,oDAAoD;KAC9D;CACF,EACD,gCAAgC,CACjC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { YacoinChain } from '../../UtxoChain';
2
+ declare const _default: YacoinChain;
3
+ export default _default;
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const UtxoChain_1 = require("../../UtxoChain");
4
+ const types_1 = require("../../../types");
5
+ exports.default = new UtxoChain_1.YacoinChain({
6
+ id: types_1.ChainId.Yacoin,
7
+ name: 'Yacoin',
8
+ code: 'YAC',
9
+ color: '#f7931a',
10
+ nativeAsset: [
11
+ {
12
+ name: 'Yacoin',
13
+ chain: types_1.ChainId.Yacoin,
14
+ type: types_1.AssetTypes.native,
15
+ code: 'YAC',
16
+ priceSource: { coinGeckoId: 'yacoin' },
17
+ color: '#f7931a',
18
+ decimals: 6,
19
+ },
20
+ ],
21
+ isEVM: false,
22
+ hasTokens: false,
23
+ isMultiLayered: false,
24
+ averageBlockTime: 600,
25
+ safeConfirmations: 1,
26
+ txFailureTimeoutMs: 10800000,
27
+ network: {
28
+ name: 'yacoin',
29
+ coinType: '0',
30
+ isTestnet: false,
31
+ networkId: 'mainnet',
32
+ utxo: {
33
+ messagePrefix: '\x18Yacoin Signed Message:\n',
34
+ bech32: 'bc',
35
+ bip32: {
36
+ public: 0x0488b21e,
37
+ private: 0x0488ade4,
38
+ },
39
+ pubKeyHash: 0x4d,
40
+ scriptHash: 0x8b,
41
+ wif: 0xcd,
42
+ },
43
+ rpcUrls: ['https://yaswap.yacoin.org'],
44
+ scraperUrls: ['https://yaswap.yacoin.org/api'],
45
+ },
46
+ explorerViews: [
47
+ {
48
+ tx: 'https://yaswap.yacoin.org/tx/{hash}',
49
+ address: 'https://yaswap.yacoin.org/address/{address}',
50
+ },
51
+ ],
52
+ multicallSupport: false,
53
+ ledgerSupport: true,
54
+ EIP1559: false,
55
+ gasLimit: {
56
+ send: {
57
+ native: 290,
58
+ },
59
+ },
60
+ fees: {
61
+ unit: 'sat/b',
62
+ magnitude: 1e6,
63
+ },
64
+ supportCustomFees: true,
65
+ });
66
+ //# sourceMappingURL=yacoin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"yacoin.js","sourceRoot":"","sources":["../../../../../src/chains/testnet/utxo/yacoin.ts"],"names":[],"mappings":";;AAAA,+CAA8C;AAC9C,0CAAqD;AAErD,kBAAe,IAAI,uBAAW,CAAC;IAC7B,EAAE,EAAE,eAAO,CAAC,MAAM;IAClB,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,KAAK;IACX,KAAK,EAAE,SAAS;IAChB,WAAW,EAAE;QACX;YACE,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,eAAO,CAAC,MAAM;YACrB,IAAI,EAAE,kBAAU,CAAC,MAAM;YACvB,IAAI,EAAE,KAAK;YACX,WAAW,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE;YACtC,KAAK,EAAE,SAAS;YAChB,QAAQ,EAAE,CAAC;SACZ;KACF;IAED,KAAK,EAAE,KAAK;IACZ,SAAS,EAAE,KAAK;IAChB,cAAc,EAAE,KAAK;IAErB,gBAAgB,EAAE,GAAG;IACrB,iBAAiB,EAAE,CAAC;IACpB,kBAAkB,EAAE,QAAU;IAC9B,OAAO,EAAE;QACP,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,GAAG;QACb,SAAS,EAAE,KAAK;QAChB,SAAS,EAAE,SAAS;QACpB,IAAI,EAAE;YACJ,aAAa,EAAE,8BAA8B;YAC7C,MAAM,EAAE,IAAI;YACZ,KAAK,EAAE;gBACL,MAAM,EAAE,UAAU;gBAClB,OAAO,EAAE,UAAU;aACpB;YACD,UAAU,EAAE,IAAI;YAChB,UAAU,EAAE,IAAI;YAChB,GAAG,EAAE,IAAI;SACV;QACD,OAAO,EAAE,CAAC,2BAA2B,CAAC;QACtC,WAAW,EAAE,CAAC,+BAA+B,CAAC;KAC/C;IACD,aAAa,EAAE;QACb;YACE,EAAE,EAAE,qCAAqC;YACzC,OAAO,EAAE,6CAA6C;SACvD;KACF;IACD,gBAAgB,EAAE,KAAK;IACvB,aAAa,EAAE,IAAI;IACnB,OAAO,EAAE,KAAK;IACd,QAAQ,EAAE;QACR,IAAI,EAAE;YACJ,MAAM,EAAE,GAAG;SACZ;KACF;IACD,IAAI,EAAE;QACJ,IAAI,EAAE,OAAO;QACb,SAAS,EAAE,GAAG;KACf;IACD,iBAAiB,EAAE,IAAI;CACxB,CAAC,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { INetwork } from '../interfaces/INetwork';
2
+ import { ExplorerView, NftProviderType } from '../types';
3
+ import { BaseChain } from './BaseChain';
4
+ export declare const transformMainnetToTestnetChain: (chain: BaseChain, network: INetwork, explorerViews: ExplorerView[], faucetUrl: string, nftProviderType?: NftProviderType) => BaseChain;
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.transformMainnetToTestnetChain = void 0;
4
+ const lodash_1 = require("lodash");
5
+ const transformMainnetToTestnetChain = (chain, network, explorerViews, faucetUrl, nftProviderType) => {
6
+ var _a;
7
+ const testnetChain = (0, lodash_1.cloneDeep)(chain);
8
+ testnetChain.network = network;
9
+ testnetChain.explorerViews = explorerViews;
10
+ testnetChain.faucetUrl = faucetUrl;
11
+ if (nftProviderType) {
12
+ testnetChain.nftProviderType = nftProviderType;
13
+ }
14
+ if (!testnetChain.network.isTestnet) {
15
+ throw new Error(`isTestnet should be set to true`);
16
+ }
17
+ if (testnetChain.network.chainId && chain.network.chainId && testnetChain.network.chainId == chain.network.chainId) {
18
+ throw new Error(`Testnet cannot have the same chainId as the mainnet`);
19
+ }
20
+ if (testnetChain.network.networkId &&
21
+ chain.network.networkId &&
22
+ testnetChain.network.networkId == chain.network.networkId) {
23
+ throw new Error(`Testnet cannot have the same networkId as the mainnet`);
24
+ }
25
+ testnetChain.explorerViews.forEach((testnetExplorerViews) => {
26
+ chain.explorerViews.forEach((mainnetExplorerViews) => {
27
+ if (testnetExplorerViews.address && testnetExplorerViews.address === mainnetExplorerViews.address) {
28
+ throw new Error(`Testnet cannot have the same explorer view as the mainnet`);
29
+ }
30
+ if (testnetExplorerViews.token && testnetExplorerViews.token === mainnetExplorerViews.token) {
31
+ throw new Error(`Testnet cannot have the same explorer view as the mainnet`);
32
+ }
33
+ if (testnetExplorerViews.tx && testnetExplorerViews.tx === mainnetExplorerViews.tx) {
34
+ throw new Error(`Testnet cannot have the same explorer view as the mainnet`);
35
+ }
36
+ });
37
+ });
38
+ testnetChain.network.rpcUrls.forEach((rpcUrl) => {
39
+ if (chain.network.rpcUrls.includes(rpcUrl)) {
40
+ throw new Error(`Testnet cannot have matching rpc urls with mainnet`);
41
+ }
42
+ });
43
+ (_a = testnetChain.network.scraperUrls) === null || _a === void 0 ? void 0 : _a.forEach((scraperUrl) => {
44
+ var _a;
45
+ if ((_a = chain.network.scraperUrls) === null || _a === void 0 ? void 0 : _a.includes(scraperUrl)) {
46
+ throw new Error(`Testnet cannot have matching scraper urls with mainnet`);
47
+ }
48
+ });
49
+ return testnetChain;
50
+ };
51
+ exports.transformMainnetToTestnetChain = transformMainnetToTestnetChain;
52
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/chains/utils.ts"],"names":[],"mappings":";;;AAAA,mCAAmC;AAK5B,MAAM,8BAA8B,GAAG,CAC5C,KAAgB,EAChB,OAAiB,EACjB,aAA6B,EAC7B,SAAiB,EACjB,eAAiC,EACtB,EAAE;;IACb,MAAM,YAAY,GAAG,IAAA,kBAAS,EAAC,KAAK,CAAC,CAAC;IACtC,YAAY,CAAC,OAAO,GAAG,OAAO,CAAC;IAC/B,YAAY,CAAC,aAAa,GAAG,aAAa,CAAC;IAC3C,YAAY,CAAC,SAAS,GAAG,SAAS,CAAC;IAEnC,IAAI,eAAe,EAAE;QACnB,YAAY,CAAC,eAAe,GAAG,eAAe,CAAC;KAChD;IAED,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,SAAS,EAAE;QACnC,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;KACpD;IAED,IAAI,YAAY,CAAC,OAAO,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,IAAI,YAAY,CAAC,OAAO,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE;QAClH,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;KACxE;IAED,IACE,YAAY,CAAC,OAAO,CAAC,SAAS;QAC9B,KAAK,CAAC,OAAO,CAAC,SAAS;QACvB,YAAY,CAAC,OAAO,CAAC,SAAS,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,EACzD;QACA,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;KAC1E;IAED,YAAY,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,oBAAoB,EAAE,EAAE;QAC1D,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,oBAAoB,EAAE,EAAE;YACnD,IAAI,oBAAoB,CAAC,OAAO,IAAI,oBAAoB,CAAC,OAAO,KAAK,oBAAoB,CAAC,OAAO,EAAE;gBACjG,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC;aAC9E;YAED,IAAI,oBAAoB,CAAC,KAAK,IAAI,oBAAoB,CAAC,KAAK,KAAK,oBAAoB,CAAC,KAAK,EAAE;gBAC3F,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC;aAC9E;YAED,IAAI,oBAAoB,CAAC,EAAE,IAAI,oBAAoB,CAAC,EAAE,KAAK,oBAAoB,CAAC,EAAE,EAAE;gBAClF,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC;aAC9E;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;QAC9C,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;YAC1C,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;SACvE;IACH,CAAC,CAAC,CAAC;IAEH,MAAA,YAAY,CAAC,OAAO,CAAC,WAAW,0CAAE,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE;;QACvD,IAAI,MAAA,KAAK,CAAC,OAAO,CAAC,WAAW,0CAAE,QAAQ,CAAC,UAAU,CAAC,EAAE;YACnD,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;SAC3E;IACH,CAAC,CAAC,CAAC;IAMH,OAAO,YAAyB,CAAC;AACnC,CAAC,CAAC;AAjEW,QAAA,8BAA8B,kCAiEzC"}