@axelar-network/axelarjs-sdk 0.13.4 → 0.13.5-alpha-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.
Files changed (236) hide show
  1. package/package.json +1 -1
  2. package/dist/artifacts/contracts/deposit-service/DepositReceiver.sol/DepositReceiver.json +0 -31
  3. package/dist/artifacts/contracts/deposit-service/ReceiverImplementation.sol/ReceiverImplementation.json +0 -180
  4. package/dist/src/assets/index.d.ts +0 -3
  5. package/dist/src/assets/index.d.ts.map +0 -1
  6. package/dist/src/assets/index.js +0 -45
  7. package/dist/src/assets/index.js.map +0 -1
  8. package/dist/src/assets/test/loadAssets.spec.d.ts +0 -2
  9. package/dist/src/assets/test/loadAssets.spec.d.ts.map +0 -1
  10. package/dist/src/assets/test/loadAssets.spec.js +0 -40
  11. package/dist/src/assets/test/loadAssets.spec.js.map +0 -1
  12. package/dist/src/assets/types/index.d.ts +0 -35
  13. package/dist/src/assets/types/index.d.ts.map +0 -1
  14. package/dist/src/assets/types/index.js +0 -3
  15. package/dist/src/assets/types/index.js.map +0 -1
  16. package/dist/src/chains/index.d.ts +0 -5
  17. package/dist/src/chains/index.d.ts.map +0 -1
  18. package/dist/src/chains/index.js +0 -84
  19. package/dist/src/chains/index.js.map +0 -1
  20. package/dist/src/chains/supported-chains-list.d.ts +0 -80
  21. package/dist/src/chains/supported-chains-list.d.ts.map +0 -1
  22. package/dist/src/chains/supported-chains-list.js +0 -83
  23. package/dist/src/chains/supported-chains-list.js.map +0 -1
  24. package/dist/src/chains/test/loadChains.spec.d.ts +0 -2
  25. package/dist/src/chains/test/loadChains.spec.d.ts.map +0 -1
  26. package/dist/src/chains/test/loadChains.spec.js +0 -40
  27. package/dist/src/chains/test/loadChains.spec.js.map +0 -1
  28. package/dist/src/chains/types/index.d.ts +0 -76
  29. package/dist/src/chains/types/index.d.ts.map +0 -1
  30. package/dist/src/chains/types/index.js +0 -17
  31. package/dist/src/chains/types/index.js.map +0 -1
  32. package/dist/src/constants/index.d.ts +0 -14
  33. package/dist/src/constants/index.d.ts.map +0 -1
  34. package/dist/src/constants/index.js +0 -67
  35. package/dist/src/constants/index.js.map +0 -1
  36. package/dist/src/index.d.ts +0 -9
  37. package/dist/src/index.d.ts.map +0 -1
  38. package/dist/src/index.js +0 -25
  39. package/dist/src/index.js.map +0 -1
  40. package/dist/src/libs/AxelarAssetTransfer.d.ts +0 -103
  41. package/dist/src/libs/AxelarAssetTransfer.d.ts.map +0 -1
  42. package/dist/src/libs/AxelarAssetTransfer.js +0 -411
  43. package/dist/src/libs/AxelarAssetTransfer.js.map +0 -1
  44. package/dist/src/libs/AxelarGateway.d.ts +0 -35
  45. package/dist/src/libs/AxelarGateway.d.ts.map +0 -1
  46. package/dist/src/libs/AxelarGateway.js +0 -145
  47. package/dist/src/libs/AxelarGateway.js.map +0 -1
  48. package/dist/src/libs/AxelarQueryAPI.d.ts +0 -162
  49. package/dist/src/libs/AxelarQueryAPI.d.ts.map +0 -1
  50. package/dist/src/libs/AxelarQueryAPI.js +0 -434
  51. package/dist/src/libs/AxelarQueryAPI.js.map +0 -1
  52. package/dist/src/libs/AxelarQueryClient/index.d.ts +0 -8
  53. package/dist/src/libs/AxelarQueryClient/index.d.ts.map +0 -1
  54. package/dist/src/libs/AxelarQueryClient/index.js +0 -32
  55. package/dist/src/libs/AxelarQueryClient/index.js.map +0 -1
  56. package/dist/src/libs/AxelarQueryClient/types/index.d.ts +0 -13
  57. package/dist/src/libs/AxelarQueryClient/types/index.d.ts.map +0 -1
  58. package/dist/src/libs/AxelarQueryClient/types/index.js +0 -19
  59. package/dist/src/libs/AxelarQueryClient/types/index.js.map +0 -1
  60. package/dist/src/libs/AxelarSigningClient/const/index.d.ts +0 -3
  61. package/dist/src/libs/AxelarSigningClient/const/index.d.ts.map +0 -1
  62. package/dist/src/libs/AxelarSigningClient/const/index.js +0 -13
  63. package/dist/src/libs/AxelarSigningClient/const/index.js.map +0 -1
  64. package/dist/src/libs/AxelarSigningClient/index.d.ts +0 -21
  65. package/dist/src/libs/AxelarSigningClient/index.d.ts.map +0 -1
  66. package/dist/src/libs/AxelarSigningClient/index.js +0 -80
  67. package/dist/src/libs/AxelarSigningClient/index.js.map +0 -1
  68. package/dist/src/libs/AxelarSigningClient/types/AxelarnetTxTypes.d.ts +0 -3
  69. package/dist/src/libs/AxelarSigningClient/types/AxelarnetTxTypes.d.ts.map +0 -1
  70. package/dist/src/libs/AxelarSigningClient/types/AxelarnetTxTypes.js +0 -28
  71. package/dist/src/libs/AxelarSigningClient/types/AxelarnetTxTypes.js.map +0 -1
  72. package/dist/src/libs/AxelarSigningClient/types/EvmTxTypes.d.ts +0 -3
  73. package/dist/src/libs/AxelarSigningClient/types/EvmTxTypes.d.ts.map +0 -1
  74. package/dist/src/libs/AxelarSigningClient/types/EvmTxTypes.js +0 -38
  75. package/dist/src/libs/AxelarSigningClient/types/EvmTxTypes.js.map +0 -1
  76. package/dist/src/libs/GatewayTx.d.ts +0 -11
  77. package/dist/src/libs/GatewayTx.d.ts.map +0 -1
  78. package/dist/src/libs/GatewayTx.js +0 -22
  79. package/dist/src/libs/GatewayTx.js.map +0 -1
  80. package/dist/src/libs/TransactionRecoveryApi/AxelarDepositRecoveryAPI.d.ts +0 -44
  81. package/dist/src/libs/TransactionRecoveryApi/AxelarDepositRecoveryAPI.d.ts.map +0 -1
  82. package/dist/src/libs/TransactionRecoveryApi/AxelarDepositRecoveryAPI.js +0 -85
  83. package/dist/src/libs/TransactionRecoveryApi/AxelarDepositRecoveryAPI.js.map +0 -1
  84. package/dist/src/libs/TransactionRecoveryApi/AxelarGMPRecoveryAPI.d.ts +0 -122
  85. package/dist/src/libs/TransactionRecoveryApi/AxelarGMPRecoveryAPI.d.ts.map +0 -1
  86. package/dist/src/libs/TransactionRecoveryApi/AxelarGMPRecoveryAPI.js +0 -761
  87. package/dist/src/libs/TransactionRecoveryApi/AxelarGMPRecoveryAPI.js.map +0 -1
  88. package/dist/src/libs/TransactionRecoveryApi/AxelarRecoveryApi.d.ts +0 -144
  89. package/dist/src/libs/TransactionRecoveryApi/AxelarRecoveryApi.d.ts.map +0 -1
  90. package/dist/src/libs/TransactionRecoveryApi/AxelarRecoveryApi.js +0 -422
  91. package/dist/src/libs/TransactionRecoveryApi/AxelarRecoveryApi.js.map +0 -1
  92. package/dist/src/libs/TransactionRecoveryApi/AxelarTransferAPI.d.ts +0 -10
  93. package/dist/src/libs/TransactionRecoveryApi/AxelarTransferAPI.d.ts.map +0 -1
  94. package/dist/src/libs/TransactionRecoveryApi/AxelarTransferAPI.js +0 -62
  95. package/dist/src/libs/TransactionRecoveryApi/AxelarTransferAPI.js.map +0 -1
  96. package/dist/src/libs/TransactionRecoveryApi/client/AxelarRpcClient.d.ts +0 -11
  97. package/dist/src/libs/TransactionRecoveryApi/client/AxelarRpcClient.d.ts.map +0 -1
  98. package/dist/src/libs/TransactionRecoveryApi/client/AxelarRpcClient.js +0 -37
  99. package/dist/src/libs/TransactionRecoveryApi/client/AxelarRpcClient.js.map +0 -1
  100. package/dist/src/libs/TransactionRecoveryApi/client/EVMClient/index.d.ts +0 -13
  101. package/dist/src/libs/TransactionRecoveryApi/client/EVMClient/index.d.ts.map +0 -1
  102. package/dist/src/libs/TransactionRecoveryApi/client/EVMClient/index.js +0 -55
  103. package/dist/src/libs/TransactionRecoveryApi/client/EVMClient/index.js.map +0 -1
  104. package/dist/src/libs/TransactionRecoveryApi/client/helpers/cosmos.d.ts +0 -6
  105. package/dist/src/libs/TransactionRecoveryApi/client/helpers/cosmos.d.ts.map +0 -1
  106. package/dist/src/libs/TransactionRecoveryApi/client/helpers/cosmos.js +0 -38
  107. package/dist/src/libs/TransactionRecoveryApi/client/helpers/cosmos.js.map +0 -1
  108. package/dist/src/libs/TransactionRecoveryApi/client/helpers/retryRpc.d.ts +0 -3
  109. package/dist/src/libs/TransactionRecoveryApi/client/helpers/retryRpc.d.ts.map +0 -1
  110. package/dist/src/libs/TransactionRecoveryApi/client/helpers/retryRpc.js +0 -37
  111. package/dist/src/libs/TransactionRecoveryApi/client/helpers/retryRpc.js.map +0 -1
  112. package/dist/src/libs/TransactionRecoveryApi/constants/chain/index.d.ts +0 -4
  113. package/dist/src/libs/TransactionRecoveryApi/constants/chain/index.d.ts.map +0 -1
  114. package/dist/src/libs/TransactionRecoveryApi/constants/chain/index.js +0 -20
  115. package/dist/src/libs/TransactionRecoveryApi/constants/chain/index.js.map +0 -1
  116. package/dist/src/libs/TransactionRecoveryApi/constants/chain/mainnet.d.ts +0 -5
  117. package/dist/src/libs/TransactionRecoveryApi/constants/chain/mainnet.d.ts.map +0 -1
  118. package/dist/src/libs/TransactionRecoveryApi/constants/chain/mainnet.js +0 -84
  119. package/dist/src/libs/TransactionRecoveryApi/constants/chain/mainnet.js.map +0 -1
  120. package/dist/src/libs/TransactionRecoveryApi/constants/chain/testnet.d.ts +0 -5
  121. package/dist/src/libs/TransactionRecoveryApi/constants/chain/testnet.d.ts.map +0 -1
  122. package/dist/src/libs/TransactionRecoveryApi/constants/chain/testnet.js +0 -84
  123. package/dist/src/libs/TransactionRecoveryApi/constants/chain/testnet.js.map +0 -1
  124. package/dist/src/libs/TransactionRecoveryApi/constants/contract.d.ts +0 -19
  125. package/dist/src/libs/TransactionRecoveryApi/constants/contract.d.ts.map +0 -1
  126. package/dist/src/libs/TransactionRecoveryApi/constants/contract.js +0 -23
  127. package/dist/src/libs/TransactionRecoveryApi/constants/contract.js.map +0 -1
  128. package/dist/src/libs/TransactionRecoveryApi/constants/error.d.ts +0 -74
  129. package/dist/src/libs/TransactionRecoveryApi/constants/error.d.ts.map +0 -1
  130. package/dist/src/libs/TransactionRecoveryApi/constants/error.js +0 -99
  131. package/dist/src/libs/TransactionRecoveryApi/constants/error.js.map +0 -1
  132. package/dist/src/libs/TransactionRecoveryApi/constants/s3.d.ts +0 -7
  133. package/dist/src/libs/TransactionRecoveryApi/constants/s3.d.ts.map +0 -1
  134. package/dist/src/libs/TransactionRecoveryApi/constants/s3.js +0 -8
  135. package/dist/src/libs/TransactionRecoveryApi/constants/s3.js.map +0 -1
  136. package/dist/src/libs/TransactionRecoveryApi/helpers/axelarHelper.d.ts +0 -13
  137. package/dist/src/libs/TransactionRecoveryApi/helpers/axelarHelper.d.ts.map +0 -1
  138. package/dist/src/libs/TransactionRecoveryApi/helpers/axelarHelper.js +0 -207
  139. package/dist/src/libs/TransactionRecoveryApi/helpers/axelarHelper.js.map +0 -1
  140. package/dist/src/libs/TransactionRecoveryApi/helpers/contractCallHelper.d.ts +0 -8
  141. package/dist/src/libs/TransactionRecoveryApi/helpers/contractCallHelper.d.ts.map +0 -1
  142. package/dist/src/libs/TransactionRecoveryApi/helpers/contractCallHelper.js +0 -56
  143. package/dist/src/libs/TransactionRecoveryApi/helpers/contractCallHelper.js.map +0 -1
  144. package/dist/src/libs/TransactionRecoveryApi/helpers/contractEventHelper.d.ts +0 -17
  145. package/dist/src/libs/TransactionRecoveryApi/helpers/contractEventHelper.d.ts.map +0 -1
  146. package/dist/src/libs/TransactionRecoveryApi/helpers/contractEventHelper.js +0 -137
  147. package/dist/src/libs/TransactionRecoveryApi/helpers/contractEventHelper.js.map +0 -1
  148. package/dist/src/libs/TransactionRecoveryApi/helpers/getCommandId.d.ts +0 -4
  149. package/dist/src/libs/TransactionRecoveryApi/helpers/getCommandId.d.ts.map +0 -1
  150. package/dist/src/libs/TransactionRecoveryApi/helpers/getCommandId.js +0 -22
  151. package/dist/src/libs/TransactionRecoveryApi/helpers/getCommandId.js.map +0 -1
  152. package/dist/src/libs/TransactionRecoveryApi/helpers/index.d.ts +0 -6
  153. package/dist/src/libs/TransactionRecoveryApi/helpers/index.d.ts.map +0 -1
  154. package/dist/src/libs/TransactionRecoveryApi/helpers/index.js +0 -22
  155. package/dist/src/libs/TransactionRecoveryApi/helpers/index.js.map +0 -1
  156. package/dist/src/libs/TransactionRecoveryApi/helpers/mappers.d.ts +0 -4
  157. package/dist/src/libs/TransactionRecoveryApi/helpers/mappers.d.ts.map +0 -1
  158. package/dist/src/libs/TransactionRecoveryApi/helpers/mappers.js +0 -24
  159. package/dist/src/libs/TransactionRecoveryApi/helpers/mappers.js.map +0 -1
  160. package/dist/src/libs/TransactionRecoveryApi/helpers/providerHelper.d.ts +0 -3
  161. package/dist/src/libs/TransactionRecoveryApi/helpers/providerHelper.d.ts.map +0 -1
  162. package/dist/src/libs/TransactionRecoveryApi/helpers/providerHelper.js +0 -14
  163. package/dist/src/libs/TransactionRecoveryApi/helpers/providerHelper.js.map +0 -1
  164. package/dist/src/libs/TransactionRecoveryApi/index.d.ts +0 -6
  165. package/dist/src/libs/TransactionRecoveryApi/index.d.ts.map +0 -1
  166. package/dist/src/libs/TransactionRecoveryApi/index.js +0 -22
  167. package/dist/src/libs/TransactionRecoveryApi/index.js.map +0 -1
  168. package/dist/src/libs/TransactionRecoveryApi/interface/index.d.ts +0 -31
  169. package/dist/src/libs/TransactionRecoveryApi/interface/index.d.ts.map +0 -1
  170. package/dist/src/libs/TransactionRecoveryApi/interface/index.js +0 -10
  171. package/dist/src/libs/TransactionRecoveryApi/interface/index.js.map +0 -1
  172. package/dist/src/libs/abi/IAxelarExecutable.d.ts +0 -38
  173. package/dist/src/libs/abi/IAxelarExecutable.d.ts.map +0 -1
  174. package/dist/src/libs/abi/IAxelarExecutable.js +0 -100
  175. package/dist/src/libs/abi/IAxelarExecutable.js.map +0 -1
  176. package/dist/src/libs/abi/erc20Abi.json +0 -222
  177. package/dist/src/libs/index.d.ts +0 -8
  178. package/dist/src/libs/index.d.ts.map +0 -1
  179. package/dist/src/libs/index.js +0 -24
  180. package/dist/src/libs/index.js.map +0 -1
  181. package/dist/src/libs/types/index.d.ts +0 -227
  182. package/dist/src/libs/types/index.d.ts.map +0 -1
  183. package/dist/src/libs/types/index.js +0 -98
  184. package/dist/src/libs/types/index.js.map +0 -1
  185. package/dist/src/services/RestService.d.ts +0 -8
  186. package/dist/src/services/RestService.d.ts.map +0 -1
  187. package/dist/src/services/RestService.js +0 -67
  188. package/dist/src/services/RestService.js.map +0 -1
  189. package/dist/src/services/SocketService.d.ts +0 -13
  190. package/dist/src/services/SocketService.d.ts.map +0 -1
  191. package/dist/src/services/SocketService.js +0 -87
  192. package/dist/src/services/SocketService.js.map +0 -1
  193. package/dist/src/services/index.d.ts +0 -3
  194. package/dist/src/services/index.d.ts.map +0 -1
  195. package/dist/src/services/index.js +0 -19
  196. package/dist/src/services/index.js.map +0 -1
  197. package/dist/src/services/test/RestService.spec.d.ts +0 -2
  198. package/dist/src/services/test/RestService.spec.d.ts.map +0 -1
  199. package/dist/src/services/test/RestService.spec.js +0 -77
  200. package/dist/src/services/test/RestService.spec.js.map +0 -1
  201. package/dist/src/services/types/index.d.ts +0 -24
  202. package/dist/src/services/types/index.d.ts.map +0 -1
  203. package/dist/src/services/types/index.js +0 -10
  204. package/dist/src/services/types/index.js.map +0 -1
  205. package/dist/src/utils/index.d.ts +0 -6
  206. package/dist/src/utils/index.d.ts.map +0 -1
  207. package/dist/src/utils/index.js +0 -22
  208. package/dist/src/utils/index.js.map +0 -1
  209. package/dist/src/utils/retry.d.ts +0 -2
  210. package/dist/src/utils/retry.d.ts.map +0 -1
  211. package/dist/src/utils/retry.js +0 -29
  212. package/dist/src/utils/retry.js.map +0 -1
  213. package/dist/src/utils/sleep.d.ts +0 -2
  214. package/dist/src/utils/sleep.d.ts.map +0 -1
  215. package/dist/src/utils/sleep.js +0 -8
  216. package/dist/src/utils/sleep.js.map +0 -1
  217. package/dist/src/utils/test/validateDestinationAddress.spec.d.ts +0 -2
  218. package/dist/src/utils/test/validateDestinationAddress.spec.d.ts.map +0 -1
  219. package/dist/src/utils/test/validateDestinationAddress.spec.js +0 -135
  220. package/dist/src/utils/test/validateDestinationAddress.spec.js.map +0 -1
  221. package/dist/src/utils/validateChain.d.ts +0 -7
  222. package/dist/src/utils/validateChain.d.ts.map +0 -1
  223. package/dist/src/utils/validateChain.js +0 -52
  224. package/dist/src/utils/validateChain.js.map +0 -1
  225. package/dist/src/utils/validateDestinationAddress.d.ts +0 -4
  226. package/dist/src/utils/validateDestinationAddress.d.ts.map +0 -1
  227. package/dist/src/utils/validateDestinationAddress.js +0 -54
  228. package/dist/src/utils/validateDestinationAddress.js.map +0 -1
  229. package/dist/src/utils/wallet.d.ts +0 -9
  230. package/dist/src/utils/wallet.d.ts.map +0 -1
  231. package/dist/src/utils/wallet.js +0 -33
  232. package/dist/src/utils/wallet.js.map +0 -1
  233. package/dist/vitest.config.d.ts +0 -3
  234. package/dist/vitest.config.d.ts.map +0 -1
  235. package/dist/vitest.config.js +0 -12
  236. package/dist/vitest.config.js.map +0 -1
@@ -1,411 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __importDefault = (this && this.__importDefault) || function (mod) {
12
- return (mod && mod.__esModule) ? mod : { "default": mod };
13
- };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.AxelarAssetTransfer = void 0;
16
- const uuid_1 = require("uuid");
17
- const cross_fetch_1 = __importDefault(require("cross-fetch"));
18
- const utils_1 = require("ethers/lib/utils");
19
- const types_1 = require("../services/types");
20
- const services_1 = require("../services");
21
- const utils_2 = require("../utils");
22
- const constants_1 = require("../constants");
23
- const types_2 = require("./types");
24
- const DepositReceiver_json_1 = __importDefault(require("../../artifacts/contracts/deposit-service/DepositReceiver.sol/DepositReceiver.json"));
25
- const ReceiverImplementation_json_1 = __importDefault(require("../../artifacts/contracts/deposit-service/ReceiverImplementation.sol/ReceiverImplementation.json"));
26
- const s3_1 = __importDefault(require("./TransactionRecoveryApi/constants/s3"));
27
- const ethers_1 = require("ethers");
28
- const chains_1 = require("../chains");
29
- const AxelarQueryAPI_1 = require("./AxelarQueryAPI");
30
- const stargate_1 = require("@cosmjs/stargate");
31
- const tx_1 = require("cosmjs-types/ibc/applications/transfer/v1/tx");
32
- const AxelarGateway_1 = require("./AxelarGateway");
33
- const erc20Abi_json_1 = __importDefault(require("./abi/erc20Abi.json"));
34
- const { HashZero } = ethers_1.constants;
35
- class AxelarAssetTransfer {
36
- constructor(config) {
37
- this.evmDenomMap = {};
38
- const configs = (0, constants_1.getConfigs)(config.environment);
39
- this.environment = config.environment;
40
- this.resourceUrl = configs.resourceUrl;
41
- // handle resource url overwrite (for tests)
42
- if (config.overwriteResourceUrl)
43
- this.resourceUrl = config.overwriteResourceUrl;
44
- this.api = new services_1.RestService(this.resourceUrl);
45
- this.depositServiceApi = new services_1.RestService(configs.depositServiceUrl);
46
- const links = (0, constants_1.getConfigs)(config.environment);
47
- this.axelarQueryApi = new AxelarQueryAPI_1.AxelarQueryAPI({
48
- environment: config.environment,
49
- axelarRpcUrl: links.axelarRpcUrl,
50
- axelarLcdUrl: links.axelarLcdUrl,
51
- });
52
- }
53
- getDepositAddressForNativeWrap(fromChain, toChain, destinationAddress, refundAddress) {
54
- return __awaiter(this, void 0, void 0, function* () {
55
- yield (0, utils_2.throwIfInvalidChainIds)([fromChain, toChain], this.environment);
56
- yield this.axelarQueryApi.throwIfInactiveChains([fromChain, toChain]);
57
- const _refundAddress = refundAddress ||
58
- (yield this.axelarQueryApi.getContractAddressFromConfig(fromChain, "default_refund_collector"));
59
- const { address } = yield this.getDepositAddressFromRemote("wrap", fromChain, toChain, destinationAddress, _refundAddress, HashZero);
60
- const expectedAddress = yield this.validateOfflineDepositAddress("wrap", fromChain, toChain, destinationAddress, _refundAddress, HashZero);
61
- if (address !== expectedAddress)
62
- throw new Error("Deposit address mismatch");
63
- return address;
64
- });
65
- }
66
- getDepositAddressForNativeUnwrap(fromChain, toChain, destinationAddress, fromChainModule = "evm", refundAddress) {
67
- return __awaiter(this, void 0, void 0, function* () {
68
- yield (0, utils_2.throwIfInvalidChainIds)([fromChain, toChain], this.environment);
69
- yield this.axelarQueryApi.throwIfInactiveChains([fromChain, toChain]);
70
- const _refundAddress = refundAddress ||
71
- (yield this.axelarQueryApi.getContractAddressFromConfig(fromChainModule === "evm" ? fromChain : toChain, "default_refund_collector"));
72
- const { address: unwrapAddress } = yield this.getDepositAddressFromRemote("unwrap", undefined, toChain, destinationAddress, _refundAddress, HashZero);
73
- const expectedAddress = yield this.validateOfflineDepositAddress("unwrap", fromChain, toChain, destinationAddress, _refundAddress, HashZero);
74
- if (unwrapAddress !== expectedAddress)
75
- throw new Error("Deposit address mismatch");
76
- const denom = yield this.getERC20Denom(toChain);
77
- const finalDepositAddress = yield this.getDepositAddress(fromChain, toChain, unwrapAddress, denom);
78
- return finalDepositAddress;
79
- });
80
- }
81
- getOfflineDepositAddressForERC20Transfer(fromChain, toChain, destinationAddress, fromChainModule = "evm", tokenSymbol, refundAddress) {
82
- return __awaiter(this, void 0, void 0, function* () {
83
- yield (0, utils_2.throwIfInvalidChainIds)([fromChain, toChain], this.environment);
84
- yield this.axelarQueryApi.throwIfInactiveChains([fromChain, toChain]);
85
- const _refundAddress = refundAddress ||
86
- (yield this.axelarQueryApi.getContractAddressFromConfig(fromChainModule === "evm" ? fromChain : toChain, "default_refund_collector"));
87
- const { address } = yield this.getDepositAddressFromRemote("erc20", fromChain, toChain, destinationAddress, _refundAddress, HashZero, tokenSymbol);
88
- return address;
89
- });
90
- }
91
- getDepositAddressFromRemote(type, fromChain, toChain, destinationAddress, refundAddress, hexSalt, tokenSymbol = undefined) {
92
- return __awaiter(this, void 0, void 0, function* () {
93
- const endpoint = `/deposit/${type}`;
94
- if (fromChain) {
95
- yield (0, utils_2.throwIfInvalidChainIds)([fromChain], this.environment);
96
- yield this.axelarQueryApi.throwIfInactiveChains([fromChain]);
97
- }
98
- if (toChain) {
99
- yield (0, utils_2.throwIfInvalidChainIds)([toChain], this.environment);
100
- yield this.axelarQueryApi.throwIfInactiveChains([toChain]);
101
- }
102
- return this.depositServiceApi
103
- .post(endpoint, {
104
- salt: hexSalt,
105
- source_chain: fromChain,
106
- destination_chain: toChain,
107
- destination_address: destinationAddress,
108
- refund_address: refundAddress,
109
- token_symbol: tokenSymbol,
110
- })
111
- .then((res) => ({ address: res.address.toLowerCase() }))
112
- .catch(() => ({ address: "" }));
113
- });
114
- }
115
- validateOfflineDepositAddress(wrapOrUnWrap, fromChain, toChain, destinationAddress, refundAddress, hexSalt) {
116
- return __awaiter(this, void 0, void 0, function* () {
117
- yield (0, utils_2.throwIfInvalidChainIds)([fromChain, toChain], this.environment);
118
- yield this.axelarQueryApi.throwIfInactiveChains([fromChain, toChain]);
119
- const receiverInterface = new utils_1.Interface(ReceiverImplementation_json_1.default.abi);
120
- const functionData = wrapOrUnWrap === "wrap"
121
- ? receiverInterface.encodeFunctionData("receiveAndSendNative", [
122
- refundAddress,
123
- toChain.toLowerCase(),
124
- destinationAddress,
125
- ])
126
- : receiverInterface.encodeFunctionData("receiveAndUnwrapNative", [
127
- refundAddress,
128
- destinationAddress,
129
- ]);
130
- const address = (0, utils_1.getCreate2Address)(yield this.axelarQueryApi.getContractAddressFromConfig(wrapOrUnWrap === "wrap" ? fromChain : toChain, "deposit_service"), hexSalt, (0, utils_1.keccak256)((0, utils_1.solidityPack)(["bytes", "bytes"], [
131
- DepositReceiver_json_1.default.bytecode,
132
- utils_1.defaultAbiCoder.encode(["bytes", "address"], [functionData, refundAddress]),
133
- ])));
134
- return address.toLowerCase();
135
- });
136
- }
137
- /**
138
- * @param {Object} requestParams
139
- * @param {string} requestParams.fromChain - Source chain identifier eg: avalanche, moonbeam ethereum-2, terra-2 ...
140
- * @param {string} requestParams.toChain - Destination chain identifier eg: avalanche, moonbeam ethereum-2, terra-2 ...
141
- * @param {string} requestParams.destinationAddress - Address where the asset should be transferred to on the destination chain
142
- * @param {Object} requestParams.options
143
- */
144
- sendToken(requestParams) {
145
- return __awaiter(this, void 0, void 0, function* () {
146
- const { fromChain, toChain, asset } = requestParams;
147
- yield (0, utils_2.throwIfInvalidChainIds)([fromChain, toChain], this.environment);
148
- const chainList = yield this.getChains();
149
- const srcChainInfo = chainList.find((ch) => ch.id === fromChain.toLowerCase());
150
- if (!(asset === null || asset === void 0 ? void 0 : asset.denom) && !(asset === null || asset === void 0 ? void 0 : asset.symbol))
151
- throw new Error("need to specify an asset");
152
- if (!srcChainInfo)
153
- throw new Error("cannot find chain" + fromChain);
154
- return srcChainInfo.module === "evm"
155
- ? this.sendTokenFromEvmChain(requestParams)
156
- : this.sendTokenFromCosmosChain(requestParams);
157
- });
158
- }
159
- sendTokenFromEvmChain(requestParams) {
160
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
161
- return __awaiter(this, void 0, void 0, function* () {
162
- if (!((_b = (_a = requestParams === null || requestParams === void 0 ? void 0 : requestParams.options) === null || _a === void 0 ? void 0 : _a.evmOptions) === null || _b === void 0 ? void 0 : _b.provider))
163
- throw `need a provider`;
164
- if (!((_d = (_c = requestParams === null || requestParams === void 0 ? void 0 : requestParams.options) === null || _c === void 0 ? void 0 : _c.evmOptions) === null || _d === void 0 ? void 0 : _d.signer))
165
- throw `need a signer`;
166
- if (!((_e = requestParams.asset) === null || _e === void 0 ? void 0 : _e.denom) && !((_f = requestParams.asset) === null || _f === void 0 ? void 0 : _f.symbol))
167
- throw new Error("need to specify an asset");
168
- const symbol = requestParams.asset.symbol ||
169
- (yield this.axelarQueryApi.getSymbolFromDenom(requestParams.asset.denom, requestParams.fromChain.toLowerCase()));
170
- const gateway = yield AxelarGateway_1.AxelarGateway.create(this.environment, requestParams.fromChain, (_h = (_g = requestParams.options) === null || _g === void 0 ? void 0 : _g.evmOptions) === null || _h === void 0 ? void 0 : _h.provider);
171
- if ((_k = (_j = requestParams === null || requestParams === void 0 ? void 0 : requestParams.options) === null || _j === void 0 ? void 0 : _j.evmOptions) === null || _k === void 0 ? void 0 : _k.approveSendForMe) {
172
- const tokenContract = new ethers_1.Contract(yield gateway.getTokenAddress(symbol), erc20Abi_json_1.default, requestParams.options.evmOptions.signer.connect(requestParams.options.evmOptions.provider));
173
- const approveTx = yield tokenContract.approve(gateway.getGatewayAddress, requestParams.amountInAtomicUnits);
174
- yield approveTx.wait();
175
- }
176
- const sendTokenArgs = {
177
- destinationChain: requestParams.toChain,
178
- destinationAddress: requestParams.destinationAddress,
179
- symbol,
180
- amount: requestParams.amountInAtomicUnits,
181
- };
182
- const sentTokenTx = yield gateway.createSendTokenTx(sendTokenArgs);
183
- return sentTokenTx.send(requestParams.options.evmOptions.signer, requestParams.options.evmOptions.txOptions);
184
- });
185
- }
186
- getChains() {
187
- return __awaiter(this, void 0, void 0, function* () {
188
- if (!this.chains) {
189
- this.chains = yield (0, chains_1.loadChains)({ environment: this.environment });
190
- }
191
- return this.chains;
192
- });
193
- }
194
- sendTokenFromCosmosChain(requestParams) {
195
- var _a;
196
- return __awaiter(this, void 0, void 0, function* () {
197
- if (!((_a = requestParams.options) === null || _a === void 0 ? void 0 : _a.cosmosOptions))
198
- throw `need a cosmos signer`;
199
- const { options: { cosmosOptions: { cosmosDirectSigner, rpcUrl, fee }, }, } = requestParams;
200
- const signingClient = yield stargate_1.SigningStargateClient.connectWithSigner(rpcUrl, cosmosDirectSigner);
201
- const { address: senderAddress } = (yield cosmosDirectSigner.getAccounts())[0];
202
- const payload = yield this.populateUnsignedTx()
203
- .sendToken(requestParams)
204
- .then((x) => x.getTx());
205
- return signingClient.signAndBroadcast(senderAddress, payload, fee);
206
- });
207
- }
208
- populateUnsignedTx() {
209
- let tx;
210
- const txBuilder = {
211
- sendToken: (params) => __awaiter(this, void 0, void 0, function* () {
212
- tx = yield this.generateUnsignedSendTokenTx(params);
213
- return txBuilder;
214
- }),
215
- getTx() {
216
- return tx;
217
- },
218
- };
219
- return txBuilder;
220
- }
221
- generateUnsignedSendTokenTx(requestParams) {
222
- var _a;
223
- return __awaiter(this, void 0, void 0, function* () {
224
- if (!((_a = requestParams.options) === null || _a === void 0 ? void 0 : _a.cosmosOptions))
225
- throw `need a cosmos signer`;
226
- const { fromChain, toChain: destination_chain, destinationAddress: destination_address, asset, amountInAtomicUnits, options: { cosmosOptions: { cosmosDirectSigner, timeoutHeight, timeoutTimestamp }, }, } = requestParams;
227
- if (fromChain === chains_1.CHAINS[this.environment.toUpperCase()].AXELAR)
228
- throw `sending cross-chain using sendToken directly from Axelar network is currently not supported`;
229
- const chainList = yield this.getChains();
230
- const chain = chainList.find((ch) => ch.id === fromChain.toLowerCase());
231
- if (!chain)
232
- throw new Error("cannot find chain" + fromChain);
233
- const memo = JSON.stringify({
234
- destination_chain,
235
- destination_address,
236
- payload: null,
237
- type: 3, // corresponds to the `sendToken` command on Axelar
238
- });
239
- const { address: senderAddress } = (yield cosmosDirectSigner.getAccounts())[0];
240
- const AXELAR_GMP_ACCOUNT_ADDRESS = "axelar1dv4u5k73pzqrxlzujxg3qp8kvc3pje7jtdvu72npnt5zhq05ejcsn5qme5";
241
- return [
242
- {
243
- typeUrl: "/ibc.applications.transfer.v1.MsgTransfer",
244
- value: tx_1.MsgTransfer.fromPartial({
245
- sender: senderAddress,
246
- receiver: AXELAR_GMP_ACCOUNT_ADDRESS,
247
- token: {
248
- denom: asset.denom,
249
- amount: amountInAtomicUnits,
250
- },
251
- sourceChannel: chain.channelIdToAxelar,
252
- sourcePort: "transfer",
253
- timeoutHeight,
254
- timeoutTimestamp: timeoutTimestamp !== null && timeoutTimestamp !== void 0 ? timeoutTimestamp : (Date.now() + 90) * 1e9,
255
- memo,
256
- }),
257
- },
258
- ];
259
- });
260
- }
261
- /**
262
- * @param {Object} requestParams
263
- * @param {string} requestParams.fromChain - Source chain identifier eg: avalanche, moonbeam ethereum-2, terra-2 ...
264
- * @param {string} requestParams.toChain - Destination chain identifier eg: avalanche, moonbeam ethereum-2, terra-2 ...
265
- * @param {string} requestParams.destinationAddress - Address where the asset should be transferred to on the destination chain
266
- * @param {string} requestParams.asset - Asset denomination eg: uausdc, uaxl ... If the asset specific is native cxy (e.g. ETH, AVAX, etc), the ERC20 version of the asset will appear on the dest chain
267
- * @param {Object} requestParams.options
268
- * @param {string} requestParams.options._traceId
269
- * @param {boolean} requestParams.options.shouldUnwrapIntoNative - when sending wrapped native asset back to its home chain (e.g. WETH back to Ethereum), specify "true" to receive native ETH; otherwise will received ERC20 version
270
- * @param {string} requestParams.options.refundAddress - recipient where funds can be refunded if wrong ERC20 asset is deposited; ONLY AVAILABLE FOR WRAP/UNWRAP SERVICE
271
- */
272
- getDepositAddress(requestParamsOrFromChain, _toChain, _destinationAddress, _asset, _options) {
273
- return __awaiter(this, void 0, void 0, function* () {
274
- let fromChain, toChain, destinationAddress, asset, options;
275
- if (typeof requestParamsOrFromChain === "string") {
276
- fromChain = requestParamsOrFromChain;
277
- toChain = _toChain;
278
- destinationAddress = _destinationAddress;
279
- asset = _asset;
280
- options = _options;
281
- }
282
- else {
283
- ({ fromChain, toChain, destinationAddress, asset, options } =
284
- requestParamsOrFromChain);
285
- }
286
- // use trace ID sent in by invoking user, or otherwise generate a new one
287
- const traceId = (options === null || options === void 0 ? void 0 : options._traceId) || (0, uuid_1.v4)();
288
- // validate chain identifiers
289
- yield (0, utils_2.throwIfInvalidChainIds)([fromChain, toChain], this.environment);
290
- // verify destination address format
291
- const isDestinationAddressValid = yield (0, utils_2.validateDestinationAddressByChainName)(toChain, destinationAddress, this.environment);
292
- if (!isDestinationAddressValid)
293
- throw new Error(`Invalid destination address for chain ${toChain}`);
294
- const chainList = yield (0, chains_1.loadChains)({ environment: this.environment });
295
- const srcChainInfo = chainList.find((chainInfo) => chainInfo.id === fromChain.toLowerCase());
296
- if (!srcChainInfo)
297
- throw new Error("cannot find chain" + fromChain);
298
- const destChainInfo = chainList.find((chainInfo) => chainInfo.id === toChain.toLowerCase());
299
- if (!destChainInfo)
300
- throw new Error("cannot find chain" + toChain);
301
- /**if user has selected native cxy, e.g. ETH, AVAX, etc, assume it is to be wrapped into ERC20 on dest chain */
302
- if ((0, types_2.isNativeToken)(srcChainInfo.chainName.toLowerCase(), asset)) {
303
- return this.getDepositAddressForNativeWrap(fromChain, toChain, destinationAddress, options === null || options === void 0 ? void 0 : options.refundAddress);
304
- }
305
- /**if user has selected native cxy wrapped asset, e.g. WETH, WAVAX, and selected to unwrap it */
306
- if (destChainInfo.nativeAsset.includes(asset) && (options === null || options === void 0 ? void 0 : options.shouldUnwrapIntoNative)) {
307
- return this.getDepositAddressForNativeUnwrap(fromChain, toChain, destinationAddress, srcChainInfo.module, options.refundAddress);
308
- }
309
- if (srcChainInfo.module === "evm" && (options === null || options === void 0 ? void 0 : options.erc20DepositAddressType) === "offline") {
310
- return yield this.getOfflineDepositAddressForERC20Transfer(fromChain, toChain, destinationAddress, "evm", (yield this.axelarQueryApi.getSymbolFromDenom(asset, fromChain.toLowerCase())), options === null || options === void 0 ? void 0 : options.refundAddress);
311
- }
312
- // auth/rate limiting
313
- const wallet = (0, utils_2.createWallet)();
314
- // sign validation message
315
- const { validationMsg } = yield this.getOneTimeCode(wallet.address, traceId);
316
- const signature = yield wallet.signMessage(validationMsg);
317
- // get room id to listen for deposit address (to be extracted from link event)
318
- const roomId = yield this.getInitRoomId(fromChain, toChain, destinationAddress, asset, wallet.address, signature, traceId);
319
- // extract deposit address from link event
320
- const newRoomId = yield this.getLinkEvent(roomId, fromChain, toChain, destinationAddress);
321
- const depositAddress = this.extractDepositAddress(newRoomId);
322
- return depositAddress;
323
- });
324
- }
325
- getOneTimeCode(signerAddress, traceId) {
326
- return __awaiter(this, void 0, void 0, function* () {
327
- const otc = yield this.api
328
- .get(`${types_1.CLIENT_API_GET_OTC}?publicAddress=${signerAddress}`, traceId)
329
- .then((response) => response)
330
- .catch((error) => {
331
- throw error;
332
- });
333
- return otc;
334
- });
335
- }
336
- getInitRoomId(fromChain, toChain, destinationAddress, asset, publicAddress, signature, traceId) {
337
- var _a;
338
- return __awaiter(this, void 0, void 0, function* () {
339
- yield (0, utils_2.throwIfInvalidChainIds)([fromChain, toChain], this.environment);
340
- yield this.axelarQueryApi.throwIfInactiveChains([fromChain, toChain]);
341
- const payload = {
342
- fromChain,
343
- toChain,
344
- destinationAddress,
345
- asset,
346
- publicAddress,
347
- signature,
348
- };
349
- const response = yield this.api
350
- .post(types_1.CLIENT_API_POST_TRANSFER_ASSET, payload, traceId)
351
- .then((response) => response)
352
- .catch((error) => {
353
- throw error;
354
- });
355
- const roomId = (_a = response === null || response === void 0 ? void 0 : response.data) === null || _a === void 0 ? void 0 : _a.roomId;
356
- return roomId;
357
- });
358
- }
359
- getLinkEvent(roomId, sourceChain, destinationChain, destinationAddress) {
360
- return __awaiter(this, void 0, void 0, function* () {
361
- yield (0, utils_2.throwIfInvalidChainIds)([sourceChain, destinationChain], this.environment);
362
- yield this.axelarQueryApi.throwIfInactiveChains([sourceChain, destinationChain]);
363
- const { newRoomId } = yield this.getSocketService()
364
- .joinRoomAndWaitForEvent(roomId, sourceChain, destinationChain, destinationAddress)
365
- .catch((error) => {
366
- throw error;
367
- });
368
- return newRoomId;
369
- });
370
- }
371
- getSocketService() {
372
- return new services_1.SocketService(this.resourceUrl, this.environment);
373
- }
374
- extractDepositAddress(roomId) {
375
- var _a;
376
- return (_a = JSON.parse(roomId)) === null || _a === void 0 ? void 0 : _a.depositAddress;
377
- }
378
- getERC20Denom(chainId) {
379
- var _a, _b;
380
- return __awaiter(this, void 0, void 0, function* () {
381
- const chainList = yield (0, chains_1.loadChains)({ environment: this.environment });
382
- const chainName = (_a = chainList.find((chainInfo) => chainInfo.id === (chainId === null || chainId === void 0 ? void 0 : chainId.toLowerCase()))) === null || _a === void 0 ? void 0 : _a.chainName;
383
- if (!chainName)
384
- throw new Error(`Chain id ${chainId} does not fit any supported chain`);
385
- if (!this.evmDenomMap[chainName.toLowerCase()]) {
386
- const staticInfo = yield this.getStaticInfo();
387
- const denom = (_b = staticInfo.chains[chainName.toLowerCase()]) === null || _b === void 0 ? void 0 : _b.nativeAsset[0];
388
- if (denom) {
389
- this.evmDenomMap[chainName.toLowerCase()] = denom;
390
- }
391
- else {
392
- throw new Error(`Asset denom for ${chainId} not found`);
393
- }
394
- return denom;
395
- }
396
- return this.evmDenomMap[chainName.toLowerCase()];
397
- });
398
- }
399
- getStaticInfo() {
400
- return __awaiter(this, void 0, void 0, function* () {
401
- if (!this.staticInfo) {
402
- this.staticInfo = yield (0, cross_fetch_1.default)(s3_1.default[this.environment])
403
- .then((res) => res.json())
404
- .catch(() => undefined);
405
- }
406
- return this.staticInfo;
407
- });
408
- }
409
- }
410
- exports.AxelarAssetTransfer = AxelarAssetTransfer;
411
- //# sourceMappingURL=AxelarAssetTransfer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AxelarAssetTransfer.js","sourceRoot":"","sources":["../../../src/libs/AxelarAssetTransfer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,+BAAoC;AACpC,8DAAgC;AAChC,4CAM0B;AAE1B,6CAA4F;AAC5F,0CAAyD;AACzD,oCAIkB;AAClB,4CAA8D;AAC9D,mCASiB;AACjB,8IAAiH;AACjH,mKAAsI;AACtI,+EAAuD;AAEvD,mCAA6D;AAE7D,sCAA+C;AAC/C,qDAAkD;AAElD,+CAAiE;AACjE,qEAA2E;AAC3E,mDAAgD;AAChD,wEAA2C;AAE3C,MAAM,EAAE,QAAQ,EAAE,GAAG,kBAAS,CAAC;AAgD/B,MAAa,mBAAmB;IAW9B,YAAY,MAAiC;QAJrC,gBAAW,GAA2B,EAAE,CAAC;QAK/C,MAAM,OAAO,GAAG,IAAA,sBAAU,EAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAE/C,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAA0B,CAAC;QACrD,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;QAEvC,4CAA4C;QAC5C,IAAI,MAAM,CAAC,oBAAoB;YAAE,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,oBAAoB,CAAC;QAEhF,IAAI,CAAC,GAAG,GAAG,IAAI,sBAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC7C,IAAI,CAAC,iBAAiB,GAAG,IAAI,sBAAW,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;QAEpE,MAAM,KAAK,GAAuB,IAAA,sBAAU,EAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QACjE,IAAI,CAAC,cAAc,GAAG,IAAI,+BAAc,CAAC;YACvC,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,YAAY,EAAE,KAAK,CAAC,YAAY;YAChC,YAAY,EAAE,KAAK,CAAC,YAAY;SACjC,CAAC,CAAC;IACL,CAAC;IAEK,8BAA8B,CAClC,SAAiB,EACjB,OAAe,EACf,kBAA0B,EAC1B,aAAsB;;YAEtB,MAAM,IAAA,8BAAsB,EAAC,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;YACrE,MAAM,IAAI,CAAC,cAAc,CAAC,qBAAqB,CAAC,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;YAEtE,MAAM,cAAc,GAClB,aAAa;gBACb,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,4BAA4B,CACrD,SAAS,EACT,0BAA0B,CAC3B,CAAC,CAAC;YAEL,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,2BAA2B,CACxD,MAAM,EACN,SAAS,EACT,OAAO,EACP,kBAAkB,EAClB,cAAc,EACd,QAAQ,CACT,CAAC;YAEF,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,6BAA6B,CAC9D,MAAM,EACN,SAAS,EACT,OAAO,EACP,kBAAkB,EAClB,cAAc,EACd,QAAQ,CACT,CAAC;YAEF,IAAI,OAAO,KAAK,eAAe;gBAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAE7E,OAAO,OAAO,CAAC;QACjB,CAAC;KAAA;IAEK,gCAAgC,CACpC,SAAiB,EACjB,OAAe,EACf,kBAA0B,EAC1B,kBAAuC,KAAK,EAC5C,aAAsB;;YAEtB,MAAM,IAAA,8BAAsB,EAAC,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;YACrE,MAAM,IAAI,CAAC,cAAc,CAAC,qBAAqB,CAAC,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;YAEtE,MAAM,cAAc,GAClB,aAAa;gBACb,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,4BAA4B,CACrD,eAAe,KAAK,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,EAC/C,0BAA0B,CAC3B,CAAC,CAAC;YAEL,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,GAAG,MAAM,IAAI,CAAC,2BAA2B,CACvE,QAAQ,EACR,SAAS,EACT,OAAO,EACP,kBAAkB,EAClB,cAAc,EACd,QAAQ,CACT,CAAC;YAEF,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,6BAA6B,CAC9D,QAAQ,EACR,SAAS,EACT,OAAO,EACP,kBAAkB,EAClB,cAAc,EACd,QAAQ,CACT,CAAC;YAEF,IAAI,aAAa,KAAK,eAAe;gBAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAEnF,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;YAChD,MAAM,mBAAmB,GAAG,MAAM,IAAI,CAAC,iBAAiB,CACtD,SAAS,EACT,OAAO,EACP,aAAa,EACb,KAAK,CACN,CAAC;YAEF,OAAO,mBAAmB,CAAC;QAC7B,CAAC;KAAA;IAEY,wCAAwC,CACnD,SAAiB,EACjB,OAAe,EACf,kBAA0B,EAC1B,kBAAuC,KAAK,EAC5C,WAAmB,EACnB,aAAsB;;YAEtB,MAAM,IAAA,8BAAsB,EAAC,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;YACrE,MAAM,IAAI,CAAC,cAAc,CAAC,qBAAqB,CAAC,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;YAEtE,MAAM,cAAc,GAClB,aAAa;gBACb,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,4BAA4B,CACrD,eAAe,KAAK,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,EAC/C,0BAA0B,CAC3B,CAAC,CAAC;YACL,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,2BAA2B,CACxD,OAAO,EACP,SAAS,EACT,OAAO,EACP,kBAAkB,EAClB,cAAc,EACd,QAAQ,EACR,WAAW,CACZ,CAAC;YAEF,OAAO,OAAO,CAAC;QACjB,CAAC;KAAA;IAEK,2BAA2B,CAC/B,IAAiC,EACjC,SAA6B,EAC7B,OAA2B,EAC3B,kBAA0B,EAC1B,aAAqB,EACrB,OAAe,EACf,cAAkC,SAAS;;YAE3C,MAAM,QAAQ,GAAG,YAAY,IAAI,EAAE,CAAC;YAEpC,IAAI,SAAS,EAAE;gBACb,MAAM,IAAA,8BAAsB,EAAC,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;gBAC5D,MAAM,IAAI,CAAC,cAAc,CAAC,qBAAqB,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;aAC9D;YAED,IAAI,OAAO,EAAE;gBACX,MAAM,IAAA,8BAAsB,EAAC,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;gBAC1D,MAAM,IAAI,CAAC,cAAc,CAAC,qBAAqB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;aAC5D;YAED,OAAO,IAAI,CAAC,iBAAiB;iBAC1B,IAAI,CAAC,QAAQ,EAAE;gBACd,IAAI,EAAE,OAAO;gBACb,YAAY,EAAE,SAAS;gBACvB,iBAAiB,EAAE,OAAO;gBAC1B,mBAAmB,EAAE,kBAAkB;gBACvC,cAAc,EAAE,aAAa;gBAC7B,YAAY,EAAE,WAAW;aAC1B,CAAC;iBACD,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;iBACvD,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QACpC,CAAC;KAAA;IAEK,6BAA6B,CACjC,YAA+B,EAC/B,SAAiB,EACjB,OAAe,EACf,kBAA0B,EAC1B,aAAqB,EACrB,OAAe;;YAEf,MAAM,IAAA,8BAAsB,EAAC,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;YACrE,MAAM,IAAI,CAAC,cAAc,CAAC,qBAAqB,CAAC,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;YAEtE,MAAM,iBAAiB,GAAG,IAAI,iBAAS,CAAC,qCAAsB,CAAC,GAAG,CAAC,CAAC;YACpE,MAAM,YAAY,GAChB,YAAY,KAAK,MAAM;gBACrB,CAAC,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,sBAAsB,EAAE;oBAC3D,aAAa;oBACb,OAAO,CAAC,WAAW,EAAE;oBACrB,kBAAkB;iBACnB,CAAC;gBACJ,CAAC,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,wBAAwB,EAAE;oBAC7D,aAAa;oBACb,kBAAkB;iBACnB,CAAC,CAAC;YAET,MAAM,OAAO,GAAG,IAAA,yBAAiB,EAC/B,MAAM,IAAI,CAAC,cAAc,CAAC,4BAA4B,CACpD,YAAY,KAAK,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,EAC7C,iBAAiB,CAClB,EACD,OAAO,EACP,IAAA,iBAAS,EACP,IAAA,oBAAY,EACV,CAAC,OAAO,EAAE,OAAO,CAAC,EAClB;gBACE,8BAAe,CAAC,QAAQ;gBACxB,uBAAe,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;aAC5E,CACF,CACF,CACF,CAAC;YACF,OAAO,OAAO,CAAC,WAAW,EAAE,CAAC;QAC/B,CAAC;KAAA;IAED;;;;;;OAMG;IACU,SAAS,CAAC,aAA8B;;YACnD,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,aAAa,CAAC;YAEpD,MAAM,IAAA,8BAAsB,EAAC,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;YAErE,MAAM,SAAS,GAAgB,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;YACtD,MAAM,YAAY,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC;YAC/E,IAAI,CAAC,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK,CAAA,IAAI,CAAC,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,MAAM,CAAA;gBAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;YACjF,IAAI,CAAC,YAAY;gBAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,GAAG,SAAS,CAAC,CAAC;YAEpE,OAAO,YAAY,CAAC,MAAM,KAAK,KAAK;gBAClC,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,aAAa,CAAC;gBAC3C,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,aAAa,CAAC,CAAC;QACnD,CAAC;KAAA;IAEY,qBAAqB,CAAC,aAA8B;;;YAC/D,IAAI,CAAC,CAAA,MAAA,MAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,OAAO,0CAAE,UAAU,0CAAE,QAAQ,CAAA;gBAAE,MAAM,iBAAiB,CAAC;YAC3E,IAAI,CAAC,CAAA,MAAA,MAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,OAAO,0CAAE,UAAU,0CAAE,MAAM,CAAA;gBAAE,MAAM,eAAe,CAAC;YACvE,IAAI,CAAC,CAAA,MAAA,aAAa,CAAC,KAAK,0CAAE,KAAK,CAAA,IAAI,CAAC,CAAA,MAAA,aAAa,CAAC,KAAK,0CAAE,MAAM,CAAA;gBAC7D,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAE9C,MAAM,MAAM,GACV,aAAa,CAAC,KAAK,CAAC,MAAM;gBACzB,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAC5C,aAAa,CAAC,KAAK,CAAC,KAAe,EACnC,aAAa,CAAC,SAAS,CAAC,WAAW,EAAE,CACtC,CAAY,CAAC;YAEhB,MAAM,OAAO,GAAG,MAAM,6BAAa,CAAC,MAAM,CACxC,IAAI,CAAC,WAAW,EAChB,aAAa,CAAC,SAAqB,EACnC,MAAA,MAAA,aAAa,CAAC,OAAO,0CAAE,UAAU,0CAAE,QAAQ,CAC5C,CAAC;YAEF,IAAI,MAAA,MAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,OAAO,0CAAE,UAAU,0CAAE,gBAAgB,EAAE;gBACxD,MAAM,aAAa,GAAG,IAAI,iBAAQ,CAChC,MAAM,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,EACrC,uBAAQ,EACR,aAAa,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,CAC3F,CAAC;gBACF,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,OAAO,CAC3C,OAAO,CAAC,iBAAiB,EACzB,aAAa,CAAC,mBAAmB,CAClC,CAAC;gBACF,MAAM,SAAS,CAAC,IAAI,EAAE,CAAC;aACxB;YAED,MAAM,aAAa,GAAkB;gBACnC,gBAAgB,EAAE,aAAa,CAAC,OAAiC;gBACjE,kBAAkB,EAAE,aAAa,CAAC,kBAAkB;gBACpD,MAAM;gBACN,MAAM,EAAE,aAAa,CAAC,mBAA6B;aACpD,CAAC;YACF,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;YAEnE,OAAO,WAAW,CAAC,IAAI,CACrB,aAAa,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,EACvC,aAAa,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,CAC3C,CAAC;;KACH;IAEa,SAAS;;YACrB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;gBAChB,IAAI,CAAC,MAAM,GAAG,MAAM,IAAA,mBAAU,EAAC,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;aACnE;YACD,OAAO,IAAI,CAAC,MAAM,CAAC;QACrB,CAAC;KAAA;IAEY,wBAAwB,CAAC,aAA8B;;;YAClE,IAAI,CAAC,CAAA,MAAA,aAAa,CAAC,OAAO,0CAAE,aAAa,CAAA;gBAAE,MAAM,sBAAsB,CAAC;YACxE,MAAM,EACJ,OAAO,EAAE,EACP,aAAa,EAAE,EAAE,kBAAkB,EAAE,MAAM,EAAE,GAAG,EAAE,GACnD,GACF,GAAG,aAAa,CAAC;YAClB,MAAM,aAAa,GAAG,MAAM,gCAAqB,CAAC,iBAAiB,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;YAChG,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,GAAG,CAAC,MAAM,kBAAkB,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/E,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,kBAAkB,EAAE;iBAC5C,SAAS,CAAC,aAAa,CAAC;iBACxB,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;YAC1B,OAAO,aAAa,CAAC,gBAAgB,CAAC,aAAa,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;;KACpE;IAEM,kBAAkB;QACvB,IAAI,EAAkB,CAAC;QAEvB,MAAM,SAAS,GAAG;YAChB,SAAS,EAAE,CAAO,MAAuB,EAAE,EAAE;gBAC3C,EAAE,GAAG,MAAM,IAAI,CAAC,2BAA2B,CAAC,MAAM,CAAC,CAAC;gBACpD,OAAO,SAAS,CAAC;YACnB,CAAC,CAAA;YACD,KAAK;gBACH,OAAO,EAAE,CAAC;YACZ,CAAC;SACF,CAAC;QAEF,OAAO,SAAS,CAAC;IACnB,CAAC;IAEa,2BAA2B,CACvC,aAA8B;;;YAE9B,IAAI,CAAC,CAAA,MAAA,aAAa,CAAC,OAAO,0CAAE,aAAa,CAAA;gBAAE,MAAM,sBAAsB,CAAC;YACxE,MAAM,EACJ,SAAS,EACT,OAAO,EAAE,iBAAiB,EAC1B,kBAAkB,EAAE,mBAAmB,EACvC,KAAK,EACL,mBAAmB,EACnB,OAAO,EAAE,EACP,aAAa,EAAE,EAAE,kBAAkB,EAAE,aAAa,EAAE,gBAAgB,EAAE,GACvE,GACF,GAAG,aAAa,CAAC;YAClB,IAAI,SAAS,KAAK,eAAM,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,EAA2B,CAAC,CAAC,MAAM;gBACtF,MAAM,6FAA6F,CAAC;YACtG,MAAM,SAAS,GAAgB,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;YACtD,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC;YACxE,IAAI,CAAC,KAAK;gBAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,GAAG,SAAS,CAAC,CAAC;YAE7D,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC;gBAC1B,iBAAiB;gBACjB,mBAAmB;gBACnB,OAAO,EAAE,IAAI;gBACb,IAAI,EAAE,CAAC,EAAE,mDAAmD;aAC7D,CAAC,CAAC;YAEH,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,GAAG,CAAC,MAAM,kBAAkB,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YAE/E,MAAM,0BAA0B,GAC9B,mEAAmE,CAAC;YAEtE,OAAO;gBACL;oBACE,OAAO,EAAE,2CAA2C;oBACpD,KAAK,EAAE,gBAAW,CAAC,WAAW,CAAC;wBAC7B,MAAM,EAAE,aAAa;wBACrB,QAAQ,EAAE,0BAA0B;wBACpC,KAAK,EAAE;4BACL,KAAK,EAAE,KAAK,CAAC,KAAK;4BAClB,MAAM,EAAE,mBAAmB;yBAC5B;wBACD,aAAa,EAAE,KAAK,CAAC,iBAAiB;wBACtC,UAAU,EAAE,UAAU;wBACtB,aAAa;wBACb,gBAAgB,EAAE,gBAAgB,aAAhB,gBAAgB,cAAhB,gBAAgB,GAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,GAAG;wBAC7D,IAAI;qBACL,CAAC;iBACH;aACF,CAAC;;KACH;IAED;;;;;;;;;;OAUG;IACU,iBAAiB,CAC5B,wBAA0D,EAC1D,QAAiB,EACjB,mBAA4B,EAC5B,MAAe,EACf,QAAmC;;YAEnC,IAAI,SAAiB,EAAE,OAAe,EAAE,kBAA0B,EAAE,KAAa,EAAE,OAAY,CAAC;YAEhG,IAAI,OAAO,wBAAwB,KAAK,QAAQ,EAAE;gBAChD,SAAS,GAAG,wBAAwB,CAAC;gBACrC,OAAO,GAAG,QAAkB,CAAC;gBAC7B,kBAAkB,GAAG,mBAA6B,CAAC;gBACnD,KAAK,GAAG,MAAgB,CAAC;gBACzB,OAAO,GAAG,QAAQ,CAAC;aACpB;iBAAM;gBACL,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,kBAAkB,EAAE,KAAK,EAAE,OAAO,EAAE;oBACzD,wBAAmD,CAAC,CAAC;aACxD;YAED,yEAAyE;YACzE,MAAM,OAAO,GAAG,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,KAAI,IAAA,SAAM,GAAE,CAAC;YAE9C,6BAA6B;YAC7B,MAAM,IAAA,8BAAsB,EAAC,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;YAErE,oCAAoC;YACpC,MAAM,yBAAyB,GAAG,MAAM,IAAA,6CAAqC,EAC3E,OAAO,EACP,kBAAkB,EAClB,IAAI,CAAC,WAAW,CACjB,CAAC;YACF,IAAI,CAAC,yBAAyB;gBAC5B,MAAM,IAAI,KAAK,CAAC,yCAAyC,OAAO,EAAE,CAAC,CAAC;YAEtE,MAAM,SAAS,GAAgB,MAAM,IAAA,mBAAU,EAAC,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;YAEnF,MAAM,YAAY,GAAG,SAAS,CAAC,IAAI,CACjC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,SAAS,CAAC,WAAW,EAAE,CAC3C,CAAC;YACf,IAAI,CAAC,YAAY;gBAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,GAAG,SAAS,CAAC,CAAC;YACpE,MAAM,aAAa,GAAG,SAAS,CAAC,IAAI,CAClC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,OAAO,CAAC,WAAW,EAAE,CACzC,CAAC;YACf,IAAI,CAAC,aAAa;gBAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,GAAG,OAAO,CAAC,CAAC;YAEnE,+GAA+G;YAC/G,IAAI,IAAA,qBAAa,EAAC,YAAY,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE,KAAiB,CAAC,EAAE;gBAC1E,OAAO,IAAI,CAAC,8BAA8B,CACxC,SAAS,EACT,OAAO,EACP,kBAAkB,EAClB,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,aAAa,CACvB,CAAC;aACH;YACD,gGAAgG;YAChG,IAAI,aAAa,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAe,CAAC,KAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,sBAAsB,CAAA,EAAE;gBAC1F,OAAO,IAAI,CAAC,gCAAgC,CAC1C,SAAS,EACT,OAAO,EACP,kBAAkB,EAClB,YAAY,CAAC,MAAM,EACnB,OAAO,CAAC,aAAa,CACtB,CAAC;aACH;YAED,IAAI,YAAY,CAAC,MAAM,KAAK,KAAK,IAAI,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,uBAAuB,MAAK,SAAS,EAAE;gBACnF,OAAO,MAAM,IAAI,CAAC,wCAAwC,CACxD,SAAS,EACT,OAAO,EACP,kBAAkB,EAClB,KAAK,EACL,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC,KAAK,EAAE,SAAS,CAAC,WAAW,EAAE,CAAC,CAAW,EACxF,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,aAAa,CACvB,CAAC;aACH;YAED,qBAAqB;YACrB,MAAM,MAAM,GAAG,IAAA,oBAAY,GAAE,CAAC;YAE9B,0BAA0B;YAC1B,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC7E,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;YAE1D,8EAA8E;YAC9E,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CACrC,SAAS,EACT,OAAO,EACP,kBAAkB,EAClB,KAAK,EACL,MAAM,CAAC,OAAO,EACd,SAAS,EACT,OAAO,CACR,CAAC;YAEF,0CAA0C;YAC1C,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,kBAAkB,CAAC,CAAC;YAC1F,MAAM,cAAc,GAAG,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC;YAE7D,OAAO,cAAc,CAAC;QACxB,CAAC;KAAA;IAEK,cAAc,CAAC,aAAqB,EAAE,OAAe;;YACzD,MAAM,GAAG,GAAQ,MAAM,IAAI,CAAC,GAAG;iBAC5B,GAAG,CAAC,GAAG,0BAAkB,kBAAkB,aAAa,EAAE,EAAE,OAAO,CAAC;iBACpE,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC;iBAC5B,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;gBACf,MAAM,KAAK,CAAC;YACd,CAAC,CAAC,CAAC;YAEL,OAAO,GAAG,CAAC;QACb,CAAC;KAAA;IAEK,aAAa,CACjB,SAAiB,EACjB,OAAe,EACf,kBAA0B,EAC1B,KAAa,EACb,aAAqB,EACrB,SAAiB,EACjB,OAAe;;;YAIf,MAAM,IAAA,8BAAsB,EAAC,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;YACrE,MAAM,IAAI,CAAC,cAAc,CAAC,qBAAqB,CAAC,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;YAEtE,MAAM,OAAO,GAAG;gBACd,SAAS;gBACT,OAAO;gBACP,kBAAkB;gBAClB,KAAK;gBACL,aAAa;gBACb,SAAS;aACV,CAAC;YAEF,MAAM,QAAQ,GAAmB,MAAM,IAAI,CAAC,GAAG;iBAC5C,IAAI,CAAC,sCAA8B,EAAE,OAAO,EAAE,OAAO,CAAC;iBACtD,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC;iBAC5B,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;gBACf,MAAM,KAAK,CAAC;YACd,CAAC,CAAC,CAAC;YAEL,MAAM,MAAM,GAAG,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,MAAM,CAAC;YACtC,OAAO,MAAM,CAAC;;KACf;IAEK,YAAY,CAChB,MAAc,EACd,WAAmB,EACnB,gBAAwB,EACxB,kBAA0B;;YAE1B,MAAM,IAAA,8BAAsB,EAAC,CAAC,WAAW,EAAE,gBAAgB,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;YAChF,MAAM,IAAI,CAAC,cAAc,CAAC,qBAAqB,CAAC,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC,CAAC;YACjF,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,IAAI,CAAC,gBAAgB,EAAE;iBAChD,uBAAuB,CAAC,MAAM,EAAE,WAAW,EAAE,gBAAgB,EAAE,kBAAkB,CAAC;iBAClF,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;gBACf,MAAM,KAAK,CAAC;YACd,CAAC,CAAC,CAAC;YAEL,OAAO,SAAS,CAAC;QACnB,CAAC;KAAA;IAED,gBAAgB;QACd,OAAO,IAAI,wBAAa,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IAC/D,CAAC;IAED,qBAAqB,CAAC,MAAc;;QAClC,OAAO,MAAA,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,0CAAE,cAAc,CAAC;IAC5C,CAAC;IAEK,aAAa,CAAC,OAAe;;;YACjC,MAAM,SAAS,GAAgB,MAAM,IAAA,mBAAU,EAAC,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;YACnF,MAAM,SAAS,GAAG,MAAA,SAAS,CAAC,IAAI,CAC9B,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,MAAK,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,WAAW,EAAE,CAAA,CACvD,0CAAE,SAAS,CAAC;YACb,IAAI,CAAC,SAAS;gBAAE,MAAM,IAAI,KAAK,CAAC,YAAY,OAAO,mCAAmC,CAAC,CAAC;YAExF,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,EAAE;gBAC9C,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;gBAC9C,MAAM,KAAK,GAAG,MAAA,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,0CAAE,WAAW,CAAC,CAAC,CAAC,CAAC;gBACzE,IAAI,KAAK,EAAE;oBACT,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,GAAG,KAAK,CAAC;iBACnD;qBAAM;oBACL,MAAM,IAAI,KAAK,CAAC,mBAAmB,OAAO,YAAY,CAAC,CAAC;iBACzD;gBACD,OAAO,KAAK,CAAC;aACd;YACD,OAAO,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC;;KAClD;IAEK,aAAa;;YACjB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;gBACpB,IAAI,CAAC,UAAU,GAAG,MAAM,IAAA,qBAAK,EAAC,YAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;qBAChD,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;qBACzB,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;aAC3B;YACD,OAAO,IAAI,CAAC,UAAU,CAAC;QACzB,CAAC;KAAA;CACF;AAllBD,kDAklBC"}
@@ -1,35 +0,0 @@
1
- import { ethers } from "ethers";
2
- import { ApproveTxArgs, CallContractTxArgs, CallContractWithTokenTxArgs, Environment, EvmChain, SendTokenArgs } from "./types";
3
- import { GatewayTx } from "./GatewayTx";
4
- export declare const AXELAR_GATEWAY: Record<Environment, Partial<Record<EvmChain, string>>>;
5
- export declare class AxelarGateway {
6
- private contract;
7
- private provider;
8
- private gatewayAddress;
9
- /**
10
- * @param contractAddress axelar gateway's contract address.
11
- * @param provider evm provider to read value from the contract.
12
- */
13
- constructor(gatewayAddress: string, provider: ethers.providers.Provider);
14
- /**
15
- * A convinient method to create AxelarGateway instance from our gateway contract that currently deployed on mainnet and testnet.
16
- *
17
- * @param env This value will be used in pair with `chain` in order to find corresponding `AxelarGateway` contract address.
18
- * @param chain This value will be used in pair with `env` in order to find corresponding `AxelarGateway` contract address.
19
- * @param provider evm provider to read value from the contract.
20
- * @returns AxelarGateway instance
21
- */
22
- static create(env: Environment, chain: EvmChain, provider: ethers.providers.Provider): Promise<AxelarGateway>;
23
- createCallContractTx(args: CallContractTxArgs): Promise<GatewayTx>;
24
- get getGatewayAddress(): string;
25
- createCallContractWithTokenTx(args: CallContractWithTokenTxArgs): Promise<GatewayTx>;
26
- createSendTokenTx(args: SendTokenArgs): Promise<GatewayTx>;
27
- createApproveTx(args: ApproveTxArgs): Promise<GatewayTx>;
28
- getAllowance(tokenAddress: string, signerAddress: string): Promise<number>;
29
- isTokenFrozen(symbol: string): Promise<boolean>;
30
- isCommandExecuted(commandId: string): Promise<boolean>;
31
- getTokenAddress(symbol: string): Promise<string>;
32
- getERC20TokenContract(tokenSymbol: string): Promise<ethers.Contract>;
33
- getContract(): ethers.Contract;
34
- }
35
- //# sourceMappingURL=AxelarGateway.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AxelarGateway.d.ts","sourceRoot":"","sources":["../../../src/libs/AxelarGateway.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,2BAA2B,EAC3B,WAAW,EACX,QAAQ,EACR,aAAa,EACd,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGxC,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CA+BjF,CAAC;AAEF,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAkB;IAClC,OAAO,CAAC,QAAQ,CAA4B;IAC5C,OAAO,CAAC,cAAc,CAAS;IAE/B;;;OAGG;gBACS,cAAc,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ;IAmBvE;;;;;;;OAOG;WACU,MAAM,CACjB,GAAG,EAAE,WAAW,EAChB,KAAK,EAAE,QAAQ,EACf,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ,GAClC,OAAO,CAAC,aAAa,CAAC;IAWnB,oBAAoB,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,SAAS,CAAC;IAUxE,IAAI,iBAAiB,WAEpB;IAEK,6BAA6B,CAAC,IAAI,EAAE,2BAA2B,GAAG,OAAO,CAAC,SAAS,CAAC;IAYpF,iBAAiB,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,SAAS,CAAC;IAW1D,eAAe,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,SAAS,CAAC;IAW9D,YAAY,CAAC,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAK1E,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAI/C,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAItD,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAI1C,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC;IAI1E,WAAW,IAAI,MAAM,CAAC,QAAQ;CAG/B"}
@@ -1,145 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __importDefault = (this && this.__importDefault) || function (mod) {
12
- return (mod && mod.__esModule) ? mod : { "default": mod };
13
- };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.AxelarGateway = exports.AXELAR_GATEWAY = void 0;
16
- const ethers_1 = require("ethers");
17
- const types_1 = require("./types");
18
- const erc20Abi_json_1 = __importDefault(require("./abi/erc20Abi.json"));
19
- const GatewayTx_1 = require("./GatewayTx");
20
- const AxelarQueryClient_1 = require("./AxelarQueryClient");
21
- exports.AXELAR_GATEWAY = {
22
- [types_1.Environment.MAINNET]: {
23
- [types_1.EvmChain.ETHEREUM]: "0x4F4495243837681061C4743b74B3eEdf548D56A5",
24
- [types_1.EvmChain.AVALANCHE]: "0x5029C0EFf6C34351a0CEc334542cDb22c7928f78",
25
- [types_1.EvmChain.FANTOM]: "0x304acf330bbE08d1e512eefaa92F6a57871fD895",
26
- [types_1.EvmChain.POLYGON]: "0x6f015F16De9fC8791b234eF68D486d2bF203FBA8",
27
- [types_1.EvmChain.MOONBEAM]: "0x4F4495243837681061C4743b74B3eEdf548D56A5",
28
- [types_1.EvmChain.ARBITRUM]: "0xe432150cce91c13a887f7D836923d5597adD8E31",
29
- [types_1.EvmChain.AURORA]: "0x304acf330bbE08d1e512eefaa92F6a57871fD895",
30
- [types_1.EvmChain.CELO]: "0xe432150cce91c13a887f7D836923d5597adD8E31",
31
- [types_1.EvmChain.KAVA]: "0xe432150cce91c13a887f7D836923d5597adD8E31",
32
- [types_1.EvmChain.OPTIMISM]: "0xe432150cce91c13a887f7D836923d5597adD8E31",
33
- },
34
- [types_1.Environment.TESTNET]: {
35
- [types_1.EvmChain.ETHEREUM]: "0xBC6fcce7c5487d43830a219CA6E7B83238B41e71",
36
- [types_1.EvmChain.AVALANCHE]: "0xC249632c2D40b9001FE907806902f63038B737Ab",
37
- [types_1.EvmChain.FANTOM]: "0x97837985Ec0494E7b9C71f5D3f9250188477ae14",
38
- [types_1.EvmChain.POLYGON]: "0xBF62ef1486468a6bd26Dd669C06db43dEd5B849B",
39
- [types_1.EvmChain.MOONBEAM]: "0x5769D84DD62a6fD969856c75c7D321b84d455929",
40
- [types_1.EvmChain.ARBITRUM]: "0xe432150cce91c13a887f7D836923d5597adD8E31",
41
- [types_1.EvmChain.AURORA]: "0x304acf330bbE08d1e512eefaa92F6a57871fD895",
42
- [types_1.EvmChain.CELO]: "0xe432150cce91c13a887f7D836923d5597adD8E31",
43
- [types_1.EvmChain.KAVA]: "0xC8D18F85cB0Cee5C95eC29c69DeaF6cea972349c",
44
- [types_1.EvmChain.OPTIMISM]: "0xe432150cce91c13a887f7D836923d5597adD8E31",
45
- [types_1.EvmChain.LINEA]: "0xe432150cce91c13a887f7D836923d5597adD8E31",
46
- },
47
- [types_1.Environment.DEVNET]: {
48
- [types_1.EvmChain.ETHEREUM]: "0x7358799e0c8250f0B7D1164824F6Dd5bA31C9Cd6",
49
- [types_1.EvmChain.AVALANCHE]: "0x4ffb57Aea2295d663B03810a5802ef2Bc322370D",
50
- [types_1.EvmChain.MOONBEAM]: "0x1b23BE90a16efe8fD3008E742dDd9531dC5845b0",
51
- },
52
- };
53
- class AxelarGateway {
54
- /**
55
- * @param contractAddress axelar gateway's contract address.
56
- * @param provider evm provider to read value from the contract.
57
- */
58
- constructor(gatewayAddress, provider) {
59
- this.provider = provider;
60
- this.gatewayAddress = gatewayAddress;
61
- this.contract = new ethers_1.ethers.Contract(gatewayAddress, [
62
- "event ContractCallWithToken(address indexed _from, string _sourceChain, string _destinationChain, bytes32 _txHash, bytes _data, string _token, uint256 _amount)",
63
- "event ContractCall(address indexed sender,string destinationChain,string destinationContractAddress,bytes32 indexed payloadHash,bytes payload)",
64
- "function callContract(string calldata destinationChain, string calldata contractAddress, bytes calldata payload) external",
65
- "function callContractWithToken(string calldata destinationChain, string calldata contractAddress, bytes calldata payload, string calldata symbol, uint256 amount) external",
66
- "function sendToken(string calldata destinationChain, string calldata destinationAddress, string calldata symbol, uint256 amount) external",
67
- "function tokenFrozen(string calldata symbol) external view returns (bool)",
68
- "function isCommandExecuted(bytes32 commandId) view returns (bool)",
69
- "function tokenAddresses(string calldata symbol) view returns (address)",
70
- ], provider);
71
- }
72
- /**
73
- * A convinient method to create AxelarGateway instance from our gateway contract that currently deployed on mainnet and testnet.
74
- *
75
- * @param env This value will be used in pair with `chain` in order to find corresponding `AxelarGateway` contract address.
76
- * @param chain This value will be used in pair with `env` in order to find corresponding `AxelarGateway` contract address.
77
- * @param provider evm provider to read value from the contract.
78
- * @returns AxelarGateway instance
79
- */
80
- static create(env, chain, provider) {
81
- var _a;
82
- return __awaiter(this, void 0, void 0, function* () {
83
- let gatewayAddr = exports.AXELAR_GATEWAY[env][chain];
84
- if (!gatewayAddr) {
85
- const api = yield AxelarQueryClient_1.AxelarQueryClient.initOrGetAxelarQueryClient({
86
- environment: env,
87
- });
88
- gatewayAddr = (_a = (yield api.evm.GatewayAddress({ chain }))) === null || _a === void 0 ? void 0 : _a.address;
89
- }
90
- return new AxelarGateway(gatewayAddr, provider);
91
- });
92
- }
93
- createCallContractTx(args) {
94
- return __awaiter(this, void 0, void 0, function* () {
95
- const unsignedTx = yield this.contract.populateTransaction.callContract(args.destinationChain, args.destinationContractAddress, args.payload);
96
- return new GatewayTx_1.GatewayTx(unsignedTx, this.provider);
97
- });
98
- }
99
- get getGatewayAddress() {
100
- return this.gatewayAddress;
101
- }
102
- createCallContractWithTokenTx(args) {
103
- return __awaiter(this, void 0, void 0, function* () {
104
- const unsignedTx = yield this.contract.populateTransaction.callContractWithToken(args.destinationChain, args.destinationContractAddress, args.payload, args.symbol, args.amount);
105
- return new GatewayTx_1.GatewayTx(unsignedTx, this.provider);
106
- });
107
- }
108
- createSendTokenTx(args) {
109
- return __awaiter(this, void 0, void 0, function* () {
110
- const unsignedTx = yield this.contract.populateTransaction.sendToken(args.destinationChain, args.destinationAddress, args.symbol, args.amount);
111
- return new GatewayTx_1.GatewayTx(unsignedTx, this.provider);
112
- });
113
- }
114
- createApproveTx(args) {
115
- return __awaiter(this, void 0, void 0, function* () {
116
- const tokenAddress = args.tokenAddress;
117
- const erc20Contract = new ethers_1.ethers.Contract(tokenAddress, erc20Abi_json_1.default, this.provider);
118
- const unsignedTx = yield erc20Contract.populateTransaction.approve(this.contract.address, args.amount || ethers_1.ethers.constants.MaxUint256);
119
- return new GatewayTx_1.GatewayTx(unsignedTx, this.provider);
120
- });
121
- }
122
- getAllowance(tokenAddress, signerAddress) {
123
- const erc20Contract = new ethers_1.ethers.Contract(tokenAddress, erc20Abi_json_1.default, this.provider);
124
- return erc20Contract.allowance(signerAddress, this.contract.address);
125
- }
126
- isTokenFrozen(symbol) {
127
- return this.contract.tokenFrozen(symbol);
128
- }
129
- isCommandExecuted(commandId) {
130
- return this.contract.isCommandExecuted(commandId);
131
- }
132
- getTokenAddress(symbol) {
133
- return this.contract.tokenAddresses(symbol);
134
- }
135
- getERC20TokenContract(tokenSymbol) {
136
- return __awaiter(this, void 0, void 0, function* () {
137
- return new ethers_1.ethers.Contract(yield this.getTokenAddress(tokenSymbol), erc20Abi_json_1.default, this.provider);
138
- });
139
- }
140
- getContract() {
141
- return this.contract;
142
- }
143
- }
144
- exports.AxelarGateway = AxelarGateway;
145
- //# sourceMappingURL=AxelarGateway.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AxelarGateway.js","sourceRoot":"","sources":["../../../src/libs/AxelarGateway.ts"],"names":[],"mappings":"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"}