@axelar-network/axelarjs-sdk 0.6.0-alpha.1 → 0.6.0-alpha.2

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 (177) hide show
  1. package/dist/src/assets/index.js +10 -10
  2. package/dist/src/assets/index.js.map +1 -1
  3. package/dist/src/assets/mainnet.assets.d.ts +1042 -46
  4. package/dist/src/assets/mainnet.assets.d.ts.map +1 -1
  5. package/dist/src/assets/mainnet.assets.js +1261 -265
  6. package/dist/src/assets/mainnet.assets.js.map +1 -1
  7. package/dist/src/assets/test/loadAssets.spec.js +24 -24
  8. package/dist/src/assets/test/loadAssets.spec.js.map +1 -1
  9. package/dist/src/assets/types/index.d.ts +2 -0
  10. package/dist/src/assets/types/index.d.ts.map +1 -1
  11. package/dist/src/chains/Avalanche/index.js +6 -24
  12. package/dist/src/chains/Avalanche/index.js.map +1 -1
  13. package/dist/src/chains/Axelar/index.js +6 -8
  14. package/dist/src/chains/Axelar/index.js.map +1 -1
  15. package/dist/src/chains/Cosmoshub/index.js +8 -26
  16. package/dist/src/chains/Cosmoshub/index.js.map +1 -1
  17. package/dist/src/chains/Crescent/index.js +8 -26
  18. package/dist/src/chains/Crescent/index.js.map +1 -1
  19. package/dist/src/chains/EMoney/index.js +8 -26
  20. package/dist/src/chains/EMoney/index.js.map +1 -1
  21. package/dist/src/chains/Ethereum/index.js +5 -6
  22. package/dist/src/chains/Ethereum/index.js.map +1 -1
  23. package/dist/src/chains/Fantom/index.js +6 -24
  24. package/dist/src/chains/Fantom/index.js.map +1 -1
  25. package/dist/src/chains/Injective/index.d.ts +8 -0
  26. package/dist/src/chains/Injective/index.d.ts.map +1 -0
  27. package/dist/src/chains/Injective/index.js +39 -0
  28. package/dist/src/chains/Injective/index.js.map +1 -0
  29. package/dist/src/chains/Juno/index.js +8 -26
  30. package/dist/src/chains/Juno/index.js.map +1 -1
  31. package/dist/src/chains/Moonbeam/index.js +6 -24
  32. package/dist/src/chains/Moonbeam/index.js.map +1 -1
  33. package/dist/src/chains/Osmosis/index.js +9 -27
  34. package/dist/src/chains/Osmosis/index.js.map +1 -1
  35. package/dist/src/chains/Polygon/index.js +6 -24
  36. package/dist/src/chains/Polygon/index.js.map +1 -1
  37. package/dist/src/chains/Terra/index.js +11 -29
  38. package/dist/src/chains/Terra/index.js.map +1 -1
  39. package/dist/src/chains/index.d.ts.map +1 -1
  40. package/dist/src/chains/index.js +25 -27
  41. package/dist/src/chains/index.js.map +1 -1
  42. package/dist/src/chains/test/loadChains.spec.js +22 -22
  43. package/dist/src/chains/test/loadChains.spec.js.map +1 -1
  44. package/dist/src/constants/index.d.ts +1 -0
  45. package/dist/src/constants/index.d.ts.map +1 -1
  46. package/dist/src/constants/index.js +19 -15
  47. package/dist/src/constants/index.js.map +1 -1
  48. package/dist/src/libs/AxelarAssetTransfer.js +66 -124
  49. package/dist/src/libs/AxelarAssetTransfer.js.map +1 -1
  50. package/dist/src/libs/AxelarGateway.js +68 -135
  51. package/dist/src/libs/AxelarGateway.js.map +1 -1
  52. package/dist/src/libs/AxelarQueryAPI.js +61 -112
  53. package/dist/src/libs/AxelarQueryAPI.js.map +1 -1
  54. package/dist/src/libs/AxelarSigningClient/const/index.d.ts +3 -0
  55. package/dist/src/libs/AxelarSigningClient/const/index.d.ts.map +1 -0
  56. package/dist/src/libs/AxelarSigningClient/const/index.js +13 -0
  57. package/dist/src/libs/AxelarSigningClient/const/index.js.map +1 -0
  58. package/dist/src/libs/AxelarSigningClient/index.d.ts +21 -0
  59. package/dist/src/libs/AxelarSigningClient/index.d.ts.map +1 -0
  60. package/dist/src/libs/AxelarSigningClient/index.js +76 -0
  61. package/dist/src/libs/AxelarSigningClient/index.js.map +1 -0
  62. package/dist/src/libs/AxelarSigningClient/types/AxelarnetTxTypes.d.ts +3 -0
  63. package/dist/src/libs/AxelarSigningClient/types/AxelarnetTxTypes.d.ts.map +1 -0
  64. package/dist/src/libs/AxelarSigningClient/types/AxelarnetTxTypes.js +26 -0
  65. package/dist/src/libs/AxelarSigningClient/types/AxelarnetTxTypes.js.map +1 -0
  66. package/dist/src/libs/AxelarSigningClient/types/EvmTxTypes.d.ts +3 -0
  67. package/dist/src/libs/AxelarSigningClient/types/EvmTxTypes.d.ts.map +1 -0
  68. package/dist/src/libs/AxelarSigningClient/types/EvmTxTypes.js +38 -0
  69. package/dist/src/libs/AxelarSigningClient/types/EvmTxTypes.js.map +1 -0
  70. package/dist/src/libs/GatewayTx.js +8 -20
  71. package/dist/src/libs/GatewayTx.js.map +1 -1
  72. package/dist/src/libs/TransactionRecoveryApi/AxelarDepositRecoveryAPI.d.ts +44 -0
  73. package/dist/src/libs/TransactionRecoveryApi/AxelarDepositRecoveryAPI.d.ts.map +1 -0
  74. package/dist/src/libs/TransactionRecoveryApi/AxelarDepositRecoveryAPI.js +86 -0
  75. package/dist/src/libs/TransactionRecoveryApi/AxelarDepositRecoveryAPI.js.map +1 -0
  76. package/dist/src/libs/TransactionRecoveryApi/AxelarGMPRecoveryAPI.d.ts +10 -0
  77. package/dist/src/libs/TransactionRecoveryApi/AxelarGMPRecoveryAPI.d.ts.map +1 -0
  78. package/dist/src/libs/TransactionRecoveryApi/AxelarGMPRecoveryAPI.js +35 -0
  79. package/dist/src/libs/TransactionRecoveryApi/AxelarGMPRecoveryAPI.js.map +1 -0
  80. package/dist/src/libs/TransactionRecoveryApi/AxelarRecoveryApi.d.ts +19 -0
  81. package/dist/src/libs/TransactionRecoveryApi/AxelarRecoveryApi.d.ts.map +1 -0
  82. package/dist/src/libs/TransactionRecoveryApi/AxelarRecoveryApi.js +80 -0
  83. package/dist/src/libs/TransactionRecoveryApi/AxelarRecoveryApi.js.map +1 -0
  84. package/dist/src/libs/TransactionRecoveryApi/client/AxelarRpcClient.d.ts +11 -0
  85. package/dist/src/libs/TransactionRecoveryApi/client/AxelarRpcClient.d.ts.map +1 -0
  86. package/dist/src/libs/TransactionRecoveryApi/client/AxelarRpcClient.js +37 -0
  87. package/dist/src/libs/TransactionRecoveryApi/client/AxelarRpcClient.js.map +1 -0
  88. package/dist/src/libs/TransactionRecoveryApi/client/helpers/cosmos.d.ts +6 -0
  89. package/dist/src/libs/TransactionRecoveryApi/client/helpers/cosmos.d.ts.map +1 -0
  90. package/dist/src/libs/TransactionRecoveryApi/client/helpers/cosmos.js +36 -0
  91. package/dist/src/libs/TransactionRecoveryApi/client/helpers/cosmos.js.map +1 -0
  92. package/dist/src/libs/TransactionRecoveryApi/client/helpers/retryRpc.d.ts +3 -0
  93. package/dist/src/libs/TransactionRecoveryApi/client/helpers/retryRpc.d.ts.map +1 -0
  94. package/dist/src/libs/TransactionRecoveryApi/client/helpers/retryRpc.js +37 -0
  95. package/dist/src/libs/TransactionRecoveryApi/client/helpers/retryRpc.js.map +1 -0
  96. package/dist/src/libs/TransactionRecoveryApi/helpers/getAmountFromAmountSymbol.d.ts +2 -0
  97. package/dist/src/libs/TransactionRecoveryApi/helpers/getAmountFromAmountSymbol.d.ts.map +1 -0
  98. package/dist/src/libs/TransactionRecoveryApi/helpers/getAmountFromAmountSymbol.js +13 -0
  99. package/dist/src/libs/TransactionRecoveryApi/helpers/getAmountFromAmountSymbol.js.map +1 -0
  100. package/dist/src/libs/TransactionRecoveryApi/helpers/getConfirmedTx.d.ts +6 -0
  101. package/dist/src/libs/TransactionRecoveryApi/helpers/getConfirmedTx.d.ts.map +1 -0
  102. package/dist/src/libs/TransactionRecoveryApi/helpers/getConfirmedTx.js +63 -0
  103. package/dist/src/libs/TransactionRecoveryApi/helpers/getConfirmedTx.js.map +1 -0
  104. package/dist/src/libs/TransactionRecoveryApi/helpers/getSymbolFromAmountSymbol.d.ts +2 -0
  105. package/dist/src/libs/TransactionRecoveryApi/helpers/getSymbolFromAmountSymbol.d.ts.map +1 -0
  106. package/dist/src/libs/TransactionRecoveryApi/helpers/getSymbolFromAmountSymbol.js +13 -0
  107. package/dist/src/libs/TransactionRecoveryApi/helpers/getSymbolFromAmountSymbol.js.map +1 -0
  108. package/dist/src/libs/TransactionRecoveryApi/helpers/index.d.ts +1 -0
  109. package/dist/src/libs/TransactionRecoveryApi/helpers/index.d.ts.map +1 -0
  110. package/dist/src/libs/TransactionRecoveryApi/helpers/index.js +2 -0
  111. package/dist/src/libs/TransactionRecoveryApi/helpers/index.js.map +1 -0
  112. package/dist/src/libs/TransactionRecoveryApi/helpers/parseConfirmDepositEvent.d.ts +5 -0
  113. package/dist/src/libs/TransactionRecoveryApi/helpers/parseConfirmDepositEvent.d.ts.map +1 -0
  114. package/dist/src/libs/TransactionRecoveryApi/helpers/parseConfirmDepositEvent.js +126 -0
  115. package/dist/src/libs/TransactionRecoveryApi/helpers/parseConfirmDepositEvent.js.map +1 -0
  116. package/dist/src/libs/TransactionRecoveryApi/index.d.ts +3 -0
  117. package/dist/src/libs/TransactionRecoveryApi/index.d.ts.map +1 -0
  118. package/dist/src/libs/TransactionRecoveryApi/index.js +15 -0
  119. package/dist/src/libs/TransactionRecoveryApi/index.js.map +1 -0
  120. package/dist/src/libs/TransactionRecoveryApi/interface/index.d.ts +31 -0
  121. package/dist/src/libs/TransactionRecoveryApi/interface/index.d.ts.map +1 -0
  122. package/dist/src/libs/TransactionRecoveryApi/interface/index.js +10 -0
  123. package/dist/src/libs/TransactionRecoveryApi/interface/index.js.map +1 -0
  124. package/dist/src/libs/index.d.ts +3 -0
  125. package/dist/src/libs/index.d.ts.map +1 -1
  126. package/dist/src/libs/index.js +3 -0
  127. package/dist/src/libs/index.js.map +1 -1
  128. package/dist/src/libs/test/AxelarAssetTransfer.spec.js +140 -225
  129. package/dist/src/libs/test/AxelarAssetTransfer.spec.js.map +1 -1
  130. package/dist/src/libs/test/AxelarQueryAPI.spec.js +51 -121
  131. package/dist/src/libs/test/AxelarQueryAPI.spec.js.map +1 -1
  132. package/dist/src/libs/test/AxelarSigningClient.spec.d.ts +2 -0
  133. package/dist/src/libs/test/AxelarSigningClient.spec.d.ts.map +1 -0
  134. package/dist/src/libs/test/AxelarSigningClient.spec.js +147 -0
  135. package/dist/src/libs/test/AxelarSigningClient.spec.js.map +1 -0
  136. package/dist/src/libs/test/TransactionRecoveryAPI/AxelarDepositRecoveryAPI.spec.d.ts +2 -0
  137. package/dist/src/libs/test/TransactionRecoveryAPI/AxelarDepositRecoveryAPI.spec.d.ts.map +1 -0
  138. package/dist/src/libs/test/TransactionRecoveryAPI/AxelarDepositRecoveryAPI.spec.js +48 -0
  139. package/dist/src/libs/test/TransactionRecoveryAPI/AxelarDepositRecoveryAPI.spec.js.map +1 -0
  140. package/dist/src/libs/test/TransactionRecoveryAPI/AxelarGMPRecoveryAPI.spec.d.ts +2 -0
  141. package/dist/src/libs/test/TransactionRecoveryAPI/AxelarGMPRecoveryAPI.spec.d.ts.map +1 -0
  142. package/dist/src/libs/test/TransactionRecoveryAPI/AxelarGMPRecoveryAPI.spec.js +31 -0
  143. package/dist/src/libs/test/TransactionRecoveryAPI/AxelarGMPRecoveryAPI.spec.js.map +1 -0
  144. package/dist/src/libs/test/TransactionRecoveryAPI/AxelarRecoveryAPI.spec.d.ts +2 -0
  145. package/dist/src/libs/test/TransactionRecoveryAPI/AxelarRecoveryAPI.spec.d.ts.map +1 -0
  146. package/dist/src/libs/test/TransactionRecoveryAPI/AxelarRecoveryAPI.spec.js +41 -0
  147. package/dist/src/libs/test/TransactionRecoveryAPI/AxelarRecoveryAPI.spec.js.map +1 -0
  148. package/dist/src/libs/test/axelarGateway.test.js +134 -284
  149. package/dist/src/libs/test/axelarGateway.test.js.map +1 -1
  150. package/dist/src/libs/test/stubs/index.js +14 -20
  151. package/dist/src/libs/test/stubs/index.js.map +1 -1
  152. package/dist/src/libs/types/index.d.ts +16 -0
  153. package/dist/src/libs/types/index.d.ts.map +1 -1
  154. package/dist/src/libs/types/index.js.map +1 -1
  155. package/dist/src/services/RestService.js +28 -66
  156. package/dist/src/services/RestService.js.map +1 -1
  157. package/dist/src/services/SocketService.js +47 -89
  158. package/dist/src/services/SocketService.js.map +1 -1
  159. package/dist/src/utils/test/validateDestinationAddress.spec.js +38 -38
  160. package/dist/src/utils/test/validateDestinationAddress.spec.js.map +1 -1
  161. package/dist/src/utils/validateDestinationAddress.js +7 -11
  162. package/dist/src/utils/validateDestinationAddress.js.map +1 -1
  163. package/dist/src/utils/wallet.js +8 -8
  164. package/dist/src/utils/wallet.js.map +1 -1
  165. package/dist/test/chains/Axelar/Axelar.test.js +6 -6
  166. package/dist/test/chains/Axelar/Axelar.test.js.map +1 -1
  167. package/dist/test/chains/Osmosis/Osmosis.test.js +6 -6
  168. package/dist/test/chains/Osmosis/Osmosis.test.js.map +1 -1
  169. package/dist/test/chains/Terra/Terra.test.js +6 -6
  170. package/dist/test/chains/Terra/Terra.test.js.map +1 -1
  171. package/dist/test/e2e/app.e2e-spec.js +1 -1
  172. package/dist/test/e2e/app.e2e-spec.js.map +1 -1
  173. package/dist/test/e2e/data/index.js +1 -1
  174. package/dist/test/e2e/data/index.js.map +1 -1
  175. package/dist/test/e2e/parts/03.deposit-address.spec.js +20 -61
  176. package/dist/test/e2e/parts/03.deposit-address.spec.js.map +1 -1
  177. package/package.json +3 -1
@@ -0,0 +1,86 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.AxelarDepositRecoveryAPI = void 0;
13
+ // import { DeliverTxResponse } from "@cosmjs/stargate";
14
+ const AxelarRecoveryApi_1 = require("./AxelarRecoveryApi");
15
+ const parseConfirmDepositEvent_1 = require("./helpers/parseConfirmDepositEvent");
16
+ // import { getConfirmedTx } from "./helpers/getConfirmedTx";
17
+ const cosmos_1 = require("./client/helpers/cosmos");
18
+ const chains_1 = require("../../chains");
19
+ class AxelarDepositRecoveryAPI extends AxelarRecoveryApi_1.AxelarRecoveryApi {
20
+ constructor(config) {
21
+ super(config);
22
+ }
23
+ confirmDeposit(params) {
24
+ var _a;
25
+ return __awaiter(this, void 0, void 0, function* () {
26
+ const chain = (_a = (0, chains_1.loadChains)({
27
+ environment: this.environment,
28
+ }).find((chain) => chain.chainInfo.chainName.toLowerCase() === params.from.toLowerCase())) === null || _a === void 0 ? void 0 : _a.chainInfo;
29
+ if (!chain)
30
+ throw new Error("cannot find chain" + params.from);
31
+ const txBytes = yield this.execFetch("/confirm_deposit_tx", Object.assign(Object.assign({}, params), { sourceChain: chain.chainIdentifier[this.environment], module: chain.module }));
32
+ const tx = yield (0, cosmos_1.broadcastCosmosTxBytes)(txBytes, this.axelarRpcUrl);
33
+ if (chain.module === "evm") {
34
+ return (0, parseConfirmDepositEvent_1.parseConfirmDepositEvmResponse)(tx);
35
+ }
36
+ else {
37
+ return (0, parseConfirmDepositEvent_1.parseConfirmDepositCosmosResponse)(tx);
38
+ }
39
+ });
40
+ }
41
+ routeIBCTransfers() {
42
+ return __awaiter(this, void 0, void 0, function* () {
43
+ const txBytes = yield this.execFetch("/route_ibc_transfers", {
44
+ module: "axelarnet",
45
+ });
46
+ return yield (0, cosmos_1.broadcastCosmosTxBytes)(txBytes, this.axelarRpcUrl);
47
+ });
48
+ }
49
+ }
50
+ exports.AxelarDepositRecoveryAPI = AxelarDepositRecoveryAPI;
51
+ /**
52
+ *
53
+ * TERRA >> AVALANCHE
54
+
55
+ echo $KEYRING_PASSWORD | axelard tx axelarnet link avalanche 0x74Ccd7d9F1F40417C6F7fD1151429a2c44c34e6d uusd --from validator
56
+
57
+ terrad tx ibc-transfer transfer transfer channel-45 axelar1p69uywznqhd5lrfsa3f0297gnjs7h8vn3qk3awcuhdeu7sxs8dzqkqpm2s --packet-timeout-timestamp 0 5000000uusd --gas-prices 0.15uusd --from ctt_devnet_terra -y -b block
58
+
59
+ —> return tx hash: EB2819BD7D43154775FC2BCB1A553363BB509BE866DDE4F29E38F048B8F890CE
60
+
61
+ echo $KEYRING_PASSWORD | axelard tx axelarnet confirm-deposit ibc/6F4968A73F90CF7DE6394BF937D6DF7C7D162D74D839C13F53B41157D315E05F axelar1mevnl2qax5ncxe4fguc6weua4j9wlv5ttj298pw6j62u0804uvtqm036cx --from validator
62
+
63
+ echo $KEYRING_PASSWORD | axelard tx evm create-pending-transfers avalanche --from validator --gas auto --gas-adjustment 1.2 && echo $KEYRING_PASSWORD | axelard tx evm sign-commands avalanche --from validator --gas auto --gas-adjustment 1.2
64
+
65
+ —> get batched command ID: ed04477f0ed591357e8302227db484bd9e7a4684f27715c15e38fcec957bcb5b
66
+
67
+ axelard q evm batched-commands avalanche 85daabb34e185ab14e1d91686c96822b00feb25874b4af5f5c936f4c7781abe4
68
+
69
+ axelard q evm gateway-address avalanche
70
+
71
+ */
72
+ /**
73
+ * ETHEREUM >> TERRA
74
+
75
+ axelard tx evm link ethereum terra terra1d5umjr4j0k8c8qtd500mzw2f99kptqqxw2rzph uusd --from validator
76
+
77
+ BURNER ETHEREUM ADDR: 0xC74137D1a1Bd05BD06FE2239D9F01eC420AF817e
78
+ (NOW DO STUFF ON ETHEREUM)
79
+
80
+ txId from ropsten: 0xb6916d034510fef318dff8ac2ec84a45a67e0c061c9d774eed1bdde05a30d1ed
81
+
82
+ echo $KEYRING_PASSWORD | axelard tx evm confirm-erc20-deposit ethereum 0xb7b5b570c92d6bbb302428158ed121a492d476c4c28871d586318f22e0afb99f 1598000000 0x62253325aee3b7f43358b3cfcb974589e6109e38 --from validator
83
+
84
+ echo $KEYRING_PASSWORD | axelard tx axelarnet execute-pending-transfers --from validator --gas auto --gas-adjustment 1.2
85
+ */
86
+ //# sourceMappingURL=AxelarDepositRecoveryAPI.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AxelarDepositRecoveryAPI.js","sourceRoot":"","sources":["../../../../src/libs/TransactionRecoveryApi/AxelarDepositRecoveryAPI.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,wDAAwD;AACxD,2DAAwD;AACxD,iFAG4C;AAE5C,6DAA6D;AAC7D,oDAAiE;AACjE,yCAA0C;AAG1C,MAAa,wBAAyB,SAAQ,qCAAiB;IAC7D,YAAmB,MAA+B;QAChD,KAAK,CAAC,MAAM,CAAC,CAAC;IAChB,CAAC;IAEY,cAAc,CAAC,MAA6B;;;YACvD,MAAM,KAAK,GAAc,MAAA,IAAA,mBAAU,EAAC;gBAClC,WAAW,EAAE,IAAI,CAAC,WAAW;aAC9B,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,0CACrF,SAAsB,CAAC;YAC3B,IAAI,CAAC,KAAK;gBAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;YAE/D,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,qBAAqB,kCACrD,MAAM,KACT,WAAW,EAAE,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,EACpD,MAAM,EAAE,KAAK,CAAC,MAAM,IACpB,CAAC;YAEH,MAAM,EAAE,GAAG,MAAM,IAAA,+BAAsB,EAAC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;YAEpE,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,EAAE;gBAC1B,OAAO,IAAA,yDAA8B,EAAC,EAAE,CAAC,CAAC;aAC3C;iBAAM;gBACL,OAAO,IAAA,4DAAiC,EAAC,EAAE,CAAC,CAAC;aAC9C;;KACF;IAEY,iBAAiB;;YAC5B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,sBAAsB,EAAE;gBAC3D,MAAM,EAAE,WAAW;aACpB,CAAC,CAAC;YAEH,OAAO,MAAM,IAAA,+BAAsB,EAAC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QAClE,CAAC;KAAA;CACF;AAlCD,4DAkCC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH;;;;;;;;;;;;;GAaG"}
@@ -0,0 +1,10 @@
1
+ import { AxelarRecoveryAPIConfig } from "../types";
2
+ import { AxelarRecoveryApi } from "./AxelarRecoveryApi";
3
+ export declare class AxelarGMPRecoveryAPI extends AxelarRecoveryApi {
4
+ constructor(config: AxelarRecoveryAPIConfig);
5
+ confirmGatewayTx(params: {
6
+ txHash: string;
7
+ chain: string;
8
+ }): Promise<import("@cosmjs/stargate").DeliverTxResponse>;
9
+ }
10
+ //# sourceMappingURL=AxelarGMPRecoveryAPI.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AxelarGMPRecoveryAPI.d.ts","sourceRoot":"","sources":["../../../../src/libs/TransactionRecoveryApi/AxelarGMPRecoveryAPI.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,uBAAuB,EAAe,MAAM,UAAU,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAGxD,qBAAa,oBAAqB,SAAQ,iBAAiB;gBACtC,MAAM,EAAE,uBAAuB;IAIrC,gBAAgB,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE;CAiBxE"}
@@ -0,0 +1,35 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.AxelarGMPRecoveryAPI = void 0;
13
+ const chains_1 = require("../../chains");
14
+ const AxelarRecoveryApi_1 = require("./AxelarRecoveryApi");
15
+ const cosmos_1 = require("./client/helpers/cosmos");
16
+ class AxelarGMPRecoveryAPI extends AxelarRecoveryApi_1.AxelarRecoveryApi {
17
+ constructor(config) {
18
+ super(config);
19
+ }
20
+ confirmGatewayTx(params) {
21
+ var _a;
22
+ return __awaiter(this, void 0, void 0, function* () {
23
+ const chain = (_a = (0, chains_1.loadChains)({
24
+ environment: this.environment,
25
+ }).find((chain) => chain.chainInfo.chainName.toLowerCase() === params.chain.toLowerCase())) === null || _a === void 0 ? void 0 : _a.chainInfo;
26
+ if (!chain)
27
+ throw new Error("cannot find chain" + params.chain);
28
+ const txBytes = yield this.execFetch("/confirm_gateway_tx", Object.assign(Object.assign({}, params), { module: chain.module, chain: chain.chainIdentifier[this.environment] }));
29
+ const tx = yield (0, cosmos_1.broadcastCosmosTxBytes)(txBytes, this.axelarRpcUrl);
30
+ return tx;
31
+ });
32
+ }
33
+ }
34
+ exports.AxelarGMPRecoveryAPI = AxelarGMPRecoveryAPI;
35
+ //# sourceMappingURL=AxelarGMPRecoveryAPI.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AxelarGMPRecoveryAPI.js","sourceRoot":"","sources":["../../../../src/libs/TransactionRecoveryApi/AxelarGMPRecoveryAPI.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,yCAA0C;AAG1C,2DAAwD;AACxD,oDAAiE;AAEjE,MAAa,oBAAqB,SAAQ,qCAAiB;IACzD,YAAmB,MAA+B;QAChD,KAAK,CAAC,MAAM,CAAC,CAAC;IAChB,CAAC;IAEY,gBAAgB,CAAC,MAAyC;;;YACrE,MAAM,KAAK,GAAc,MAAA,IAAA,mBAAU,EAAC;gBAClC,WAAW,EAAE,IAAI,CAAC,WAAW;aAC9B,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,0CACtF,SAAsB,CAAC;YAC3B,IAAI,CAAC,KAAK;gBAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;YAEhE,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,qBAAqB,kCACrD,MAAM,KACT,MAAM,EAAE,KAAK,CAAC,MAAM,EACpB,KAAK,EAAE,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,IAC9C,CAAC;YAEH,MAAM,EAAE,GAAG,MAAM,IAAA,+BAAsB,EAAC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;YAEpE,OAAO,EAAE,CAAC;;KACX;CACF;AAtBD,oDAsBC"}
@@ -0,0 +1,19 @@
1
+ import { AxelarRecoveryAPIConfig, Environment } from "../types";
2
+ export declare class AxelarRecoveryApi {
3
+ readonly environment: Environment;
4
+ readonly recoveryApiUrl: string;
5
+ readonly axelarRpcUrl: string;
6
+ constructor(config: AxelarRecoveryAPIConfig);
7
+ createPendingTransfers(params: {
8
+ chain: string;
9
+ }): Promise<import("@cosmjs/stargate").DeliverTxResponse>;
10
+ executePendingTransfers(params: {
11
+ chain: string;
12
+ }): Promise<import("@cosmjs/stargate").DeliverTxResponse>;
13
+ signCommands(params: {
14
+ chain: string;
15
+ }): Promise<import("@cosmjs/stargate").DeliverTxResponse>;
16
+ queryBatchedCommands(): Promise<void>;
17
+ execFetch(endpoint: string, params: any): Promise<any>;
18
+ }
19
+ //# sourceMappingURL=AxelarRecoveryApi.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AxelarRecoveryApi.d.ts","sourceRoot":"","sources":["../../../../src/libs/TransactionRecoveryApi/AxelarRecoveryApi.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,uBAAuB,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAIhE,qBAAa,iBAAiB;IAC5B,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;gBAEX,MAAM,EAAE,uBAAuB;IAQrC,sBAAsB,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE;IAiBhD,uBAAuB,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE;IAejD,YAAY,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE;IAetC,oBAAoB;IAEpB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG;CASrD"}
@@ -0,0 +1,80 @@
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.AxelarRecoveryApi = void 0;
16
+ const chains_1 = require("../../chains");
17
+ const constants_1 = require("../../constants");
18
+ const cosmos_1 = require("./client/helpers/cosmos");
19
+ const cross_fetch_1 = __importDefault(require("cross-fetch"));
20
+ class AxelarRecoveryApi {
21
+ constructor(config) {
22
+ const { environment } = config;
23
+ const links = (0, constants_1.getConfigs)(environment);
24
+ this.recoveryApiUrl = links.recoveryApiUrl;
25
+ this.axelarRpcUrl = links.axelarRpcUrl;
26
+ this.environment = environment;
27
+ }
28
+ createPendingTransfers(params) {
29
+ var _a;
30
+ return __awaiter(this, void 0, void 0, function* () {
31
+ const chain = (_a = (0, chains_1.loadChains)({
32
+ environment: this.environment,
33
+ }).find((chain) => chain.chainInfo.chainName.toLowerCase() === params.chain.toLowerCase())) === null || _a === void 0 ? void 0 : _a.chainInfo;
34
+ if (!chain)
35
+ throw new Error("cannot find chain" + params.chain);
36
+ const txBytes = yield this.execFetch("/create_pending_transfers", Object.assign(Object.assign({}, params), { chain: params.chain, module: chain.module }));
37
+ return yield (0, cosmos_1.broadcastCosmosTxBytes)(txBytes, this.axelarRpcUrl);
38
+ });
39
+ }
40
+ executePendingTransfers(params) {
41
+ var _a;
42
+ return __awaiter(this, void 0, void 0, function* () {
43
+ const chain = (_a = (0, chains_1.loadChains)({
44
+ environment: this.environment,
45
+ }).find((chain) => chain.chainInfo.chainName.toLowerCase() === params.chain.toLowerCase())) === null || _a === void 0 ? void 0 : _a.chainInfo;
46
+ if (!chain)
47
+ throw new Error("cannot find chain" + params.chain);
48
+ const txBytes = yield this.execFetch("/execute_pending_transfers", Object.assign(Object.assign({}, params), { module: chain.module }));
49
+ return yield (0, cosmos_1.broadcastCosmosTxBytes)(txBytes, this.axelarRpcUrl);
50
+ });
51
+ }
52
+ signCommands(params) {
53
+ var _a;
54
+ return __awaiter(this, void 0, void 0, function* () {
55
+ const chain = (_a = (0, chains_1.loadChains)({
56
+ environment: this.environment,
57
+ }).find((chain) => chain.chainInfo.chainName.toLowerCase() === params.chain.toLowerCase())) === null || _a === void 0 ? void 0 : _a.chainInfo;
58
+ if (!chain)
59
+ throw new Error("cannot find chain" + params.chain);
60
+ const txBytes = yield this.execFetch("/sign_commands", Object.assign(Object.assign({}, params), { module: chain.module }));
61
+ return yield (0, cosmos_1.broadcastCosmosTxBytes)(txBytes, this.axelarRpcUrl);
62
+ });
63
+ }
64
+ queryBatchedCommands() {
65
+ return __awaiter(this, void 0, void 0, function* () { });
66
+ }
67
+ execFetch(endpoint, params) {
68
+ return __awaiter(this, void 0, void 0, function* () {
69
+ return yield (0, cross_fetch_1.default)(this.recoveryApiUrl + endpoint, {
70
+ method: "POST",
71
+ headers: { "Content-Type": "application/json" },
72
+ body: JSON.stringify(params),
73
+ })
74
+ .then((res) => res.json())
75
+ .then((res) => res.data);
76
+ });
77
+ }
78
+ }
79
+ exports.AxelarRecoveryApi = AxelarRecoveryApi;
80
+ //# sourceMappingURL=AxelarRecoveryApi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AxelarRecoveryApi.js","sourceRoot":"","sources":["../../../../src/libs/TransactionRecoveryApi/AxelarRecoveryApi.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import { JsonRpcRequest } from "@cosmjs/json-rpc";
2
+ import { Environment } from "../../types";
3
+ export default class AxelarRpcClient {
4
+ private client;
5
+ subscribed: boolean;
6
+ private constructor();
7
+ static getOrCreate(environment: Environment): AxelarRpcClient;
8
+ query(request: JsonRpcRequest, msToRetries?: number, maxRetries?: number): Promise<any>;
9
+ unsubscribe(): void;
10
+ }
11
+ //# sourceMappingURL=AxelarRpcClient.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AxelarRpcClient.d.ts","sourceRoot":"","sources":["../../../../../src/libs/TransactionRecoveryApi/client/AxelarRpcClient.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAGlD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAI1C,MAAM,CAAC,OAAO,OAAO,eAAe;IAClC,OAAO,CAAC,MAAM,CAAa;IAC3B,UAAU,EAAE,OAAO,CAAC;IAEpB,OAAO;IAKP,MAAM,CAAC,WAAW,CAAC,WAAW,EAAE,WAAW;IAO3C,KAAK,CAAC,OAAO,EAAE,cAAc,EAAE,WAAW,SAAO,EAAE,UAAU,SAAI;IAejE,WAAW;CAGZ"}
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const retryRpc_1 = require("./helpers/retryRpc");
4
+ const cosmos_1 = require("./helpers/cosmos");
5
+ const constants_1 = require("../../../constants");
6
+ let instance;
7
+ class AxelarRpcClient {
8
+ constructor(environment) {
9
+ const rpcUrl = (0, constants_1.getConfigs)(environment).axelarRpcUrl;
10
+ this.client = (0, cosmos_1.createRPCClient)(rpcUrl);
11
+ }
12
+ static getOrCreate(environment) {
13
+ if (!instance) {
14
+ instance = new AxelarRpcClient(environment);
15
+ }
16
+ return instance;
17
+ }
18
+ query(request, msToRetries = 3000, maxRetries = 3) {
19
+ const retryFunc = () => this.client.execute(request).then((response) => {
20
+ if (request.method === "tx_search") {
21
+ return response.result.txs;
22
+ }
23
+ else {
24
+ return response.result;
25
+ }
26
+ });
27
+ const errorHandler = (err) => {
28
+ console.log(err);
29
+ };
30
+ return (0, retryRpc_1.retryRpc)(retryFunc, errorHandler, msToRetries, maxRetries);
31
+ }
32
+ unsubscribe() {
33
+ this.client.disconnect();
34
+ }
35
+ }
36
+ exports.default = AxelarRpcClient;
37
+ //# sourceMappingURL=AxelarRpcClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AxelarRpcClient.js","sourceRoot":"","sources":["../../../../../src/libs/TransactionRecoveryApi/client/AxelarRpcClient.ts"],"names":[],"mappings":";;AAEA,iDAA8C;AAC9C,6CAAmD;AAEnD,kDAAgD;AAEhD,IAAI,QAAyB,CAAC;AAC9B,MAAqB,eAAe;IAIlC,YAAoB,WAAwB;QAC1C,MAAM,MAAM,GAAW,IAAA,sBAAU,EAAC,WAAW,CAAC,CAAC,YAAY,CAAC;QAC5D,IAAI,CAAC,MAAM,GAAG,IAAA,wBAAe,EAAC,MAAM,CAAC,CAAC;IACxC,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,WAAwB;QACzC,IAAI,CAAC,QAAQ,EAAE;YACb,QAAQ,GAAG,IAAI,eAAe,CAAC,WAAW,CAAC,CAAC;SAC7C;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,OAAuB,EAAE,WAAW,GAAG,IAAI,EAAE,UAAU,GAAG,CAAC;QAC/D,MAAM,SAAS,GAAG,GAAG,EAAE,CACrB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;YAC7C,IAAI,OAAO,CAAC,MAAM,KAAK,WAAW,EAAE;gBAClC,OAAO,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC;aAC5B;iBAAM;gBACL,OAAO,QAAQ,CAAC,MAAM,CAAC;aACxB;QACH,CAAC,CAAC,CAAC;QACL,MAAM,YAAY,GAAG,CAAC,GAAU,EAAE,EAAE;YAClC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC,CAAC;QACF,OAAO,IAAA,mBAAQ,EAAC,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;IACpE,CAAC;IAED,WAAW;QACT,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;IAC3B,CAAC;CACF;AAlCD,kCAkCC"}
@@ -0,0 +1,6 @@
1
+ import { HttpClient } from "@cosmjs/tendermint-rpc";
2
+ import { DeliverTxResponse } from "@cosmjs/stargate";
3
+ export declare function createRPCClient(rpcUrl: string): HttpClient;
4
+ export declare function broadcastCosmosTx(base64Tx: string, rpcUrl: string): Promise<DeliverTxResponse>;
5
+ export declare function broadcastCosmosTxBytes(txBytes: Uint8Array, rpcUrl: string): Promise<DeliverTxResponse>;
6
+ //# sourceMappingURL=cosmos.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cosmos.d.ts","sourceRoot":"","sources":["../../../../../../src/libs/TransactionRecoveryApi/client/helpers/cosmos.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAkB,MAAM,kBAAkB,CAAC;AAGrE,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,cAE7C;AAED,wBAAsB,iBAAiB,CACrC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,iBAAiB,CAAC,CAK5B;AAED,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,UAAU,EACnB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,iBAAiB,CAAC,CAG5B"}
@@ -0,0 +1,36 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.broadcastCosmosTxBytes = exports.broadcastCosmosTx = exports.createRPCClient = void 0;
13
+ const tendermint_rpc_1 = require("@cosmjs/tendermint-rpc");
14
+ const stargate_1 = require("@cosmjs/stargate");
15
+ const encoding_1 = require("@cosmjs/encoding");
16
+ function createRPCClient(rpcUrl) {
17
+ return new tendermint_rpc_1.HttpClient(rpcUrl);
18
+ }
19
+ exports.createRPCClient = createRPCClient;
20
+ function broadcastCosmosTx(base64Tx, rpcUrl) {
21
+ return __awaiter(this, void 0, void 0, function* () {
22
+ const txBytes = (0, encoding_1.fromBase64)(base64Tx);
23
+ console.log(txBytes);
24
+ const cosmjs = yield stargate_1.StargateClient.connect(rpcUrl);
25
+ return yield cosmjs.broadcastTx(txBytes);
26
+ });
27
+ }
28
+ exports.broadcastCosmosTx = broadcastCosmosTx;
29
+ function broadcastCosmosTxBytes(txBytes, rpcUrl) {
30
+ return __awaiter(this, void 0, void 0, function* () {
31
+ const cosmjs = yield stargate_1.StargateClient.connect(rpcUrl);
32
+ return yield cosmjs.broadcastTx(txBytes);
33
+ });
34
+ }
35
+ exports.broadcastCosmosTxBytes = broadcastCosmosTxBytes;
36
+ //# sourceMappingURL=cosmos.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cosmos.js","sourceRoot":"","sources":["../../../../../../src/libs/TransactionRecoveryApi/client/helpers/cosmos.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2DAAoD;AACpD,+CAAqE;AACrE,+CAAqD;AAErD,SAAgB,eAAe,CAAC,MAAc;IAC5C,OAAO,IAAI,2BAAU,CAAC,MAAM,CAAC,CAAC;AAChC,CAAC;AAFD,0CAEC;AAED,SAAsB,iBAAiB,CACrC,QAAgB,EAChB,MAAc;;QAEd,MAAM,OAAO,GAAG,IAAA,qBAAU,EAAC,QAAQ,CAAC,CAAC;QACrC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;QACpB,MAAM,MAAM,GAAG,MAAM,yBAAc,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACpD,OAAO,MAAM,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAC3C,CAAC;CAAA;AARD,8CAQC;AAED,SAAsB,sBAAsB,CAC1C,OAAmB,EACnB,MAAc;;QAEd,MAAM,MAAM,GAAG,MAAM,yBAAc,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACpD,OAAO,MAAM,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAC3C,CAAC;CAAA;AAND,wDAMC"}
@@ -0,0 +1,3 @@
1
+ export declare function retryRpc(retryFunc: () => Promise<any>, errorHandler?: (e: any) => void, msToRetry?: number, maxRetries?: number, count?: number): Promise<any>;
2
+ export declare function wait(ms: number): Promise<unknown>;
3
+ //# sourceMappingURL=retryRpc.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retryRpc.d.ts","sourceRoot":"","sources":["../../../../../../src/libs/TransactionRecoveryApi/client/helpers/retryRpc.ts"],"names":[],"mappings":"AAAA,wBAAsB,QAAQ,CAE1B,SAAS,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,EAC7B,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,IAAI,EAC/B,SAAS,SAAO,EAChB,UAAU,SAAI,EACd,KAAK,SAAI,GACR,OAAO,CAAC,GAAG,CAAC,CAUd;AAED,wBAAgB,IAAI,CAAC,EAAE,EAAE,MAAM,oBAI9B"}
@@ -0,0 +1,37 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.wait = exports.retryRpc = void 0;
13
+ function retryRpc(
14
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
15
+ retryFunc, errorHandler, msToRetry = 5000, maxRetries = 5, count = 0) {
16
+ return __awaiter(this, void 0, void 0, function* () {
17
+ try {
18
+ if (count >= maxRetries)
19
+ return null;
20
+ const response = yield retryFunc();
21
+ return response;
22
+ }
23
+ catch (e) {
24
+ errorHandler && errorHandler(e);
25
+ yield wait(msToRetry);
26
+ return retryRpc(retryFunc, errorHandler, msToRetry, maxRetries, count + 1);
27
+ }
28
+ });
29
+ }
30
+ exports.retryRpc = retryRpc;
31
+ function wait(ms) {
32
+ return new Promise((resolve) => {
33
+ setTimeout(resolve, ms);
34
+ });
35
+ }
36
+ exports.wait = wait;
37
+ //# sourceMappingURL=retryRpc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retryRpc.js","sourceRoot":"","sources":["../../../../../../src/libs/TransactionRecoveryApi/client/helpers/retryRpc.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,SAAsB,QAAQ;AAC1B,8DAA8D;AAC9D,SAA6B,EAC7B,YAA+B,EAC/B,SAAS,GAAG,IAAI,EAChB,UAAU,GAAG,CAAC,EACd,KAAK,GAAG,CAAC;;QAET,IAAI;YACF,IAAI,KAAK,IAAI,UAAU;gBAAE,OAAO,IAAI,CAAC;YACrC,MAAM,QAAQ,GAAG,MAAM,SAAS,EAAE,CAAC;YACnC,OAAO,QAAQ,CAAC;SACjB;QAAC,OAAO,CAAC,EAAE;YACR,YAAY,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC;YAClC,MAAM,IAAI,CAAC,SAAS,CAAC,CAAC;YACtB,OAAO,QAAQ,CAAC,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;SAC5E;IACH,CAAC;CAAA;AAjBH,4BAiBG;AAED,SAAgB,IAAI,CAAC,EAAU;IAC7B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;AACL,CAAC;AAJD,oBAIC"}
@@ -0,0 +1,2 @@
1
+ export declare function getAmountFromAmountSymbol(amountSymbol: string): string;
2
+ //# sourceMappingURL=getAmountFromAmountSymbol.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getAmountFromAmountSymbol.d.ts","sourceRoot":"","sources":["../../../../../src/libs/TransactionRecoveryApi/helpers/getAmountFromAmountSymbol.ts"],"names":[],"mappings":"AAAA,wBAAgB,yBAAyB,CAAC,YAAY,EAAE,MAAM,UAM3D"}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getAmountFromAmountSymbol = void 0;
4
+ function getAmountFromAmountSymbol(amountSymbol) {
5
+ if (amountSymbol.indexOf("ibc") > -1) {
6
+ return amountSymbol.split("ibc")[0];
7
+ }
8
+ else {
9
+ return amountSymbol.replace(/[^0-9]/g, "");
10
+ }
11
+ }
12
+ exports.getAmountFromAmountSymbol = getAmountFromAmountSymbol;
13
+ //# sourceMappingURL=getAmountFromAmountSymbol.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getAmountFromAmountSymbol.js","sourceRoot":"","sources":["../../../../../src/libs/TransactionRecoveryApi/helpers/getAmountFromAmountSymbol.ts"],"names":[],"mappings":";;;AAAA,SAAgB,yBAAyB,CAAC,YAAoB;IAC1D,IAAI,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE;QACpC,OAAO,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KACrC;SAAM;QACL,OAAO,YAAY,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;KAC5C;AACH,CAAC;AANH,8DAMG"}
@@ -0,0 +1,6 @@
1
+ import { Environment } from "src/libs/types";
2
+ import { JsonRpcRequest } from "@cosmjs/json-rpc";
3
+ import { DeliverTxResponse } from "@cosmjs/stargate";
4
+ export declare function getConfirmedTx(txHash: string, depositAddress: string, environment: Environment): Promise<DeliverTxResponse | null>;
5
+ export declare function confirmDepositRequest(txHash: string, depositAddress: string): JsonRpcRequest;
6
+ //# sourceMappingURL=getConfirmedTx.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getConfirmedTx.d.ts","sourceRoot":"","sources":["../../../../../src/libs/TransactionRecoveryApi/helpers/getConfirmedTx.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAErD,wBAAsB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAWtI;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,cAAc,CAa5F"}
@@ -0,0 +1,63 @@
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.confirmDepositRequest = exports.getConfirmedTx = void 0;
16
+ const AxelarRpcClient_1 = __importDefault(require("../client/AxelarRpcClient"));
17
+ function getConfirmedTx(txHash, depositAddress, environment) {
18
+ return __awaiter(this, void 0, void 0, function* () {
19
+ const client = AxelarRpcClient_1.default.getOrCreate(environment);
20
+ const query = confirmDepositRequest(txHash, depositAddress);
21
+ const transactions = yield client.query(query);
22
+ if (!transactions.length) {
23
+ return null;
24
+ }
25
+ const tx = transactions[0];
26
+ const broadcastTx = convertRpcTxToBroadcastTxSuccess(tx);
27
+ return broadcastTx;
28
+ });
29
+ }
30
+ exports.getConfirmedTx = getConfirmedTx;
31
+ function confirmDepositRequest(txHash, depositAddress) {
32
+ const baseRequest = createBaseRequest();
33
+ const isEvmTx = txHash.startsWith("0x");
34
+ const query = isEvmTx
35
+ ? `message.action='ConfirmERC20Deposit' AND depositConfirmation.txID='${txHash}'`
36
+ : `message.action='ConfirmDeposit' AND depositConfirmation.depositAddress='${depositAddress}'`;
37
+ return Object.assign(Object.assign({}, baseRequest), { params: Object.assign(Object.assign({}, baseRequest.params), { query }) });
38
+ }
39
+ exports.confirmDepositRequest = confirmDepositRequest;
40
+ function createBaseRequest() {
41
+ return {
42
+ jsonrpc: "2.0",
43
+ id: 1,
44
+ method: "tx_search",
45
+ params: {
46
+ per_page: "10",
47
+ order_by: "desc"
48
+ }
49
+ };
50
+ }
51
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
52
+ function convertRpcTxToBroadcastTxSuccess(tx) {
53
+ return {
54
+ height: parseInt(tx.height),
55
+ transactionHash: tx.hash,
56
+ gasUsed: parseInt(tx.tx_result.gas_used),
57
+ gasWanted: parseInt(tx.tx_result.gas_wanted),
58
+ data: tx.tx_result.data,
59
+ rawLog: tx.tx_result.log,
60
+ code: 0
61
+ };
62
+ }
63
+ //# sourceMappingURL=getConfirmedTx.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getConfirmedTx.js","sourceRoot":"","sources":["../../../../../src/libs/TransactionRecoveryApi/helpers/getConfirmedTx.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,gFAAwD;AAIxD,SAAsB,cAAc,CAAC,MAAc,EAAE,cAAsB,EAAE,WAAwB;;QACjG,MAAM,MAAM,GAAG,yBAAe,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QACxD,MAAM,KAAK,GAAG,qBAAqB,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;QAC3D,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAE/C,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE;YACxB,OAAO,IAAI,CAAC;SACb;QACD,MAAM,EAAE,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;QAC3B,MAAM,WAAW,GAAG,gCAAgC,CAAC,EAAE,CAAC,CAAC;QACzD,OAAO,WAAW,CAAC;IACrB,CAAC;CAAA;AAXH,wCAWG;AAED,SAAgB,qBAAqB,CAAC,MAAc,EAAE,cAAsB;IAC1E,MAAM,WAAW,GAAG,iBAAiB,EAAE,CAAC;IACxC,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IACxC,MAAM,KAAK,GAAG,OAAO;QACnB,CAAC,CAAC,sEAAsE,MAAM,GAAG;QACjF,CAAC,CAAC,2EAA2E,cAAc,GAAG,CAAC;IACjG,uCACK,WAAW,KACd,MAAM,kCACD,WAAW,CAAC,MAAM,KACrB,KAAK,OAEP;AACJ,CAAC;AAbD,sDAaC;AAED,SAAS,iBAAiB;IACxB,OAAO;QACL,OAAO,EAAE,KAAK;QACd,EAAE,EAAE,CAAC;QACL,MAAM,EAAE,WAAW;QACnB,MAAM,EAAE;YACN,QAAQ,EAAE,IAAI;YACd,QAAQ,EAAE,MAAM;SACjB;KACF,CAAC;AACJ,CAAC;AAED,8DAA8D;AAChE,SAAS,gCAAgC,CAAC,EAAO;IAC/C,OAAO;QACL,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC;QAC3B,eAAe,EAAE,EAAE,CAAC,IAAI;QACxB,OAAO,EAAE,QAAQ,CAAC,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC;QACxC,SAAS,EAAE,QAAQ,CAAC,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC;QAC5C,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI;QACvB,MAAM,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG;QACxB,IAAI,EAAE,CAAC;KACR,CAAC;AACJ,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function getSymbolFromAmountSymbol(amountSymbol: string): string;
2
+ //# sourceMappingURL=getSymbolFromAmountSymbol.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getSymbolFromAmountSymbol.d.ts","sourceRoot":"","sources":["../../../../../src/libs/TransactionRecoveryApi/helpers/getSymbolFromAmountSymbol.ts"],"names":[],"mappings":"AAAA,wBAAgB,yBAAyB,CAAC,YAAY,EAAE,MAAM,UAM3D"}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getSymbolFromAmountSymbol = void 0;
4
+ function getSymbolFromAmountSymbol(amountSymbol) {
5
+ if (amountSymbol.indexOf("ibc") > -1) {
6
+ return "ibc" + amountSymbol.split("ibc")[1];
7
+ }
8
+ else {
9
+ return amountSymbol.replace(/[^a-z]/g, "");
10
+ }
11
+ }
12
+ exports.getSymbolFromAmountSymbol = getSymbolFromAmountSymbol;
13
+ //# sourceMappingURL=getSymbolFromAmountSymbol.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getSymbolFromAmountSymbol.js","sourceRoot":"","sources":["../../../../../src/libs/TransactionRecoveryApi/helpers/getSymbolFromAmountSymbol.ts"],"names":[],"mappings":";;;AAAA,SAAgB,yBAAyB,CAAC,YAAoB;IAC1D,IAAI,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE;QACpC,OAAO,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KAC7C;SAAM;QACL,OAAO,YAAY,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;KAC5C;AACH,CAAC;AANH,8DAMG"}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/libs/TransactionRecoveryApi/helpers/index.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/libs/TransactionRecoveryApi/helpers/index.ts"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ import { DeliverTxResponse } from "@cosmjs/stargate";
2
+ import { AxelarRetryResponse, ConfirmDepositResponse } from "../interface";
3
+ export declare function parseConfirmDepositCosmosResponse(tx: DeliverTxResponse): AxelarRetryResponse<ConfirmDepositResponse>;
4
+ export declare function parseConfirmDepositEvmResponse(tx: DeliverTxResponse): AxelarRetryResponse<ConfirmDepositResponse>;
5
+ //# sourceMappingURL=parseConfirmDepositEvent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parseConfirmDepositEvent.d.ts","sourceRoot":"","sources":["../../../../../src/libs/TransactionRecoveryApi/helpers/parseConfirmDepositEvent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,sBAAsB,EAAsB,MAAM,cAAc,CAAC;AAK/F,wBAAgB,iCAAiC,CAC/C,EAAE,EAAE,iBAAiB,GACpB,mBAAmB,CAAC,sBAAsB,CAAC,CA6C7C;AAED,wBAAgB,8BAA8B,CAC5C,EAAE,EAAE,iBAAiB,GACpB,mBAAmB,CAAC,sBAAsB,CAAC,CAkC7C"}