@hyperlane-xyz/sdk 1.5.8 → 3.1.0-beta0

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 (294) hide show
  1. package/dist/app/HyperlaneApp.d.ts +1 -1
  2. package/dist/app/HyperlaneApp.d.ts.map +1 -1
  3. package/dist/app/HyperlaneApp.js +1 -1
  4. package/dist/app/HyperlaneApp.js.map +1 -1
  5. package/dist/app/MultiProtocolApp.d.ts +5 -1
  6. package/dist/app/MultiProtocolApp.d.ts.map +1 -1
  7. package/dist/app/MultiProtocolApp.js +11 -1
  8. package/dist/app/MultiProtocolApp.js.map +1 -1
  9. package/dist/app/MultiProtocolApp.test.js +2 -0
  10. package/dist/app/MultiProtocolApp.test.js.map +1 -1
  11. package/dist/consts/chainMetadata.d.ts +5 -0
  12. package/dist/consts/chainMetadata.d.ts.map +1 -1
  13. package/dist/consts/chainMetadata.js +137 -3
  14. package/dist/consts/chainMetadata.js.map +1 -1
  15. package/dist/consts/chains.d.ts +11 -6
  16. package/dist/consts/chains.d.ts.map +1 -1
  17. package/dist/consts/chains.js +15 -5
  18. package/dist/consts/chains.js.map +1 -1
  19. package/dist/consts/environments/index.d.ts +141 -168
  20. package/dist/consts/environments/index.d.ts.map +1 -1
  21. package/dist/consts/environments/index.js +1 -2
  22. package/dist/consts/environments/index.js.map +1 -1
  23. package/dist/consts/environments/testnet.json +181 -167
  24. package/dist/consts/multisigIsm.d.ts +2 -2
  25. package/dist/consts/multisigIsm.d.ts.map +1 -1
  26. package/dist/consts/multisigIsm.js +67 -48
  27. package/dist/consts/multisigIsm.js.map +1 -1
  28. package/dist/contracts/contracts.d.ts +1 -1
  29. package/dist/contracts/contracts.d.ts.map +1 -1
  30. package/dist/contracts/contracts.js +8 -2
  31. package/dist/contracts/contracts.js.map +1 -1
  32. package/dist/core/CoreDeployer.hardhat-test.js +65 -13
  33. package/dist/core/CoreDeployer.hardhat-test.js.map +1 -1
  34. package/dist/core/HyperlaneCore.d.ts +6 -2
  35. package/dist/core/HyperlaneCore.d.ts.map +1 -1
  36. package/dist/core/HyperlaneCore.js +15 -3
  37. package/dist/core/HyperlaneCore.js.map +1 -1
  38. package/dist/core/HyperlaneCoreChecker.d.ts.map +1 -1
  39. package/dist/core/HyperlaneCoreChecker.js +2 -2
  40. package/dist/core/HyperlaneCoreChecker.js.map +1 -1
  41. package/dist/core/HyperlaneCoreDeployer.d.ts +7 -2
  42. package/dist/core/HyperlaneCoreDeployer.d.ts.map +1 -1
  43. package/dist/core/HyperlaneCoreDeployer.js +51 -29
  44. package/dist/core/HyperlaneCoreDeployer.js.map +1 -1
  45. package/dist/core/MultiProtocolCore.d.ts +1 -1
  46. package/dist/core/MultiProtocolCore.d.ts.map +1 -1
  47. package/dist/core/MultiProtocolCore.js +3 -3
  48. package/dist/core/MultiProtocolCore.js.map +1 -1
  49. package/dist/core/MultiProtocolCore.test.js +2 -2
  50. package/dist/core/MultiProtocolCore.test.js.map +1 -1
  51. package/dist/core/TestCoreApp.d.ts +0 -1
  52. package/dist/core/TestCoreApp.d.ts.map +1 -1
  53. package/dist/core/TestCoreDeployer.d.ts +1 -5
  54. package/dist/core/TestCoreDeployer.d.ts.map +1 -1
  55. package/dist/core/TestCoreDeployer.js +0 -20
  56. package/dist/core/TestCoreDeployer.js.map +1 -1
  57. package/dist/core/adapters/CosmWasmCoreAdapter.d.ts +26 -0
  58. package/dist/core/adapters/CosmWasmCoreAdapter.d.ts.map +1 -0
  59. package/dist/core/adapters/CosmWasmCoreAdapter.js +33 -0
  60. package/dist/core/adapters/CosmWasmCoreAdapter.js.map +1 -0
  61. package/dist/core/adapters/EvmCoreAdapter.d.ts +1 -1
  62. package/dist/core/adapters/EvmCoreAdapter.d.ts.map +1 -1
  63. package/dist/core/adapters/SealevelCoreAdapter.d.ts +1 -1
  64. package/dist/core/adapters/SealevelCoreAdapter.d.ts.map +1 -1
  65. package/dist/core/adapters/SealevelCoreAdapter.js +0 -1
  66. package/dist/core/adapters/SealevelCoreAdapter.js.map +1 -1
  67. package/dist/core/adapters/types.d.ts +1 -1
  68. package/dist/core/adapters/types.d.ts.map +1 -1
  69. package/dist/core/contracts.d.ts +3 -9
  70. package/dist/core/contracts.d.ts.map +1 -1
  71. package/dist/core/contracts.js +0 -1
  72. package/dist/core/contracts.js.map +1 -1
  73. package/dist/core/testHyperlaneDeploy.hardhat-test.js +8 -3
  74. package/dist/core/testHyperlaneDeploy.hardhat-test.js.map +1 -1
  75. package/dist/core/types.d.ts +3 -0
  76. package/dist/core/types.d.ts.map +1 -1
  77. package/dist/core/types.js.map +1 -1
  78. package/dist/cw-types/Cw20Base.types.d.ts +198 -0
  79. package/dist/cw-types/Cw20Base.types.d.ts.map +1 -0
  80. package/dist/cw-types/Cw20Base.types.js +8 -0
  81. package/dist/cw-types/Cw20Base.types.js.map +1 -0
  82. package/dist/cw-types/Mailbox.types.d.ts +131 -0
  83. package/dist/cw-types/Mailbox.types.d.ts.map +1 -0
  84. package/dist/cw-types/Mailbox.types.js +8 -0
  85. package/dist/cw-types/Mailbox.types.js.map +1 -0
  86. package/dist/cw-types/WarpCw20.types.d.ts +192 -0
  87. package/dist/cw-types/WarpCw20.types.d.ts.map +1 -0
  88. package/dist/cw-types/WarpCw20.types.js +8 -0
  89. package/dist/cw-types/WarpCw20.types.js.map +1 -0
  90. package/dist/deploy/HyperlaneAppChecker.d.ts.map +1 -1
  91. package/dist/deploy/HyperlaneAppChecker.js +3 -5
  92. package/dist/deploy/HyperlaneAppChecker.js.map +1 -1
  93. package/dist/deploy/HyperlaneDeployer.d.ts +14 -7
  94. package/dist/deploy/HyperlaneDeployer.d.ts.map +1 -1
  95. package/dist/deploy/HyperlaneDeployer.js +89 -70
  96. package/dist/deploy/HyperlaneDeployer.js.map +1 -1
  97. package/dist/deploy/HyperlaneProxyFactoryDeployer.d.ts +10 -0
  98. package/dist/deploy/HyperlaneProxyFactoryDeployer.d.ts.map +1 -0
  99. package/dist/deploy/HyperlaneProxyFactoryDeployer.js +34 -0
  100. package/dist/deploy/HyperlaneProxyFactoryDeployer.js.map +1 -0
  101. package/dist/deploy/contracts.d.ts +13 -0
  102. package/dist/deploy/contracts.d.ts.map +1 -0
  103. package/dist/deploy/contracts.js +20 -0
  104. package/dist/deploy/contracts.js.map +1 -0
  105. package/dist/deploy/proxy.d.ts +1 -0
  106. package/dist/deploy/proxy.d.ts.map +1 -1
  107. package/dist/deploy/proxy.js +8 -1
  108. package/dist/deploy/proxy.js.map +1 -1
  109. package/dist/deploy/verify/ContractVerifier.d.ts.map +1 -1
  110. package/dist/deploy/verify/ContractVerifier.js +7 -2
  111. package/dist/deploy/verify/ContractVerifier.js.map +1 -1
  112. package/dist/gas/HyperlaneIgp.js +1 -1
  113. package/dist/gas/HyperlaneIgp.js.map +1 -1
  114. package/dist/gas/HyperlaneIgpChecker.d.ts +2 -2
  115. package/dist/gas/HyperlaneIgpChecker.d.ts.map +1 -1
  116. package/dist/gas/HyperlaneIgpChecker.js +5 -12
  117. package/dist/gas/HyperlaneIgpChecker.js.map +1 -1
  118. package/dist/gas/HyperlaneIgpDeployer.d.ts +4 -6
  119. package/dist/gas/HyperlaneIgpDeployer.d.ts.map +1 -1
  120. package/dist/gas/HyperlaneIgpDeployer.js +12 -43
  121. package/dist/gas/HyperlaneIgpDeployer.js.map +1 -1
  122. package/dist/gas/contracts.d.ts +2 -4
  123. package/dist/gas/contracts.d.ts.map +1 -1
  124. package/dist/gas/contracts.js +1 -3
  125. package/dist/gas/contracts.js.map +1 -1
  126. package/dist/gas/types.d.ts +2 -6
  127. package/dist/gas/types.d.ts.map +1 -1
  128. package/dist/gas/types.js.map +1 -1
  129. package/dist/hook/HyperlaneHookDeployer.d.ts +28 -10
  130. package/dist/hook/HyperlaneHookDeployer.d.ts.map +1 -1
  131. package/dist/hook/HyperlaneHookDeployer.js +52 -70
  132. package/dist/hook/HyperlaneHookDeployer.js.map +1 -1
  133. package/dist/hook/contracts.d.ts +6 -17
  134. package/dist/hook/contracts.d.ts.map +1 -1
  135. package/dist/hook/contracts.js +6 -13
  136. package/dist/hook/contracts.js.map +1 -1
  137. package/dist/hook/types.d.ts +24 -13
  138. package/dist/hook/types.d.ts.map +1 -1
  139. package/dist/hook/types.js +8 -6
  140. package/dist/hook/types.js.map +1 -1
  141. package/dist/index.d.ts +18 -11
  142. package/dist/index.d.ts.map +1 -1
  143. package/dist/index.js +43 -16
  144. package/dist/index.js.map +1 -1
  145. package/dist/ism/HyperlaneIsmFactory.d.ts +7 -5
  146. package/dist/ism/HyperlaneIsmFactory.d.ts.map +1 -1
  147. package/dist/ism/HyperlaneIsmFactory.hardhat-test.js +3 -3
  148. package/dist/ism/HyperlaneIsmFactory.hardhat-test.js.map +1 -1
  149. package/dist/ism/HyperlaneIsmFactory.js +62 -57
  150. package/dist/ism/HyperlaneIsmFactory.js.map +1 -1
  151. package/dist/ism/contracts.d.ts +4 -3
  152. package/dist/ism/contracts.d.ts.map +1 -1
  153. package/dist/ism/contracts.js +3 -2
  154. package/dist/ism/contracts.js.map +1 -1
  155. package/dist/ism/types.d.ts +12 -6
  156. package/dist/ism/types.d.ts.map +1 -1
  157. package/dist/ism/types.js +1 -0
  158. package/dist/ism/types.js.map +1 -1
  159. package/dist/metadata/ChainMetadataManager.d.ts +3 -13
  160. package/dist/metadata/ChainMetadataManager.d.ts.map +1 -1
  161. package/dist/metadata/ChainMetadataManager.js +16 -27
  162. package/dist/metadata/ChainMetadataManager.js.map +1 -1
  163. package/dist/metadata/agentConfig.d.ts +782 -1545
  164. package/dist/metadata/agentConfig.d.ts.map +1 -1
  165. package/dist/metadata/agentConfig.js +62 -95
  166. package/dist/metadata/agentConfig.js.map +1 -1
  167. package/dist/metadata/agentConfig.test.js +9 -9
  168. package/dist/metadata/agentConfig.test.js.map +1 -1
  169. package/dist/metadata/chainMetadata.test.js +16 -0
  170. package/dist/metadata/chainMetadata.test.js.map +1 -1
  171. package/dist/metadata/chainMetadataTypes.d.ts +570 -4
  172. package/dist/metadata/chainMetadataTypes.d.ts.map +1 -1
  173. package/dist/metadata/chainMetadataTypes.js +54 -8
  174. package/dist/metadata/chainMetadataTypes.js.map +1 -1
  175. package/dist/metadata/deploymentArtifacts.d.ts +5 -2
  176. package/dist/metadata/deploymentArtifacts.d.ts.map +1 -1
  177. package/dist/metadata/deploymentArtifacts.js +1 -0
  178. package/dist/metadata/deploymentArtifacts.js.map +1 -1
  179. package/dist/metadata/matchingList.d.ts +13 -13
  180. package/dist/metadata/matchingList.d.ts.map +1 -1
  181. package/dist/metadata/matchingList.js +2 -6
  182. package/dist/metadata/matchingList.js.map +1 -1
  183. package/dist/middleware/account/InterchainAccountDeployer.d.ts +2 -7
  184. package/dist/middleware/account/InterchainAccountDeployer.d.ts.map +1 -1
  185. package/dist/middleware/account/InterchainAccountDeployer.js +4 -9
  186. package/dist/middleware/account/InterchainAccountDeployer.js.map +1 -1
  187. package/dist/middleware/account/accounts.hardhat-test.js +8 -6
  188. package/dist/middleware/account/accounts.hardhat-test.js.map +1 -1
  189. package/dist/middleware/liquidity-layer/LiquidityLayerRouterDeployer.d.ts +2 -7
  190. package/dist/middleware/liquidity-layer/LiquidityLayerRouterDeployer.d.ts.map +1 -1
  191. package/dist/middleware/liquidity-layer/LiquidityLayerRouterDeployer.js +7 -11
  192. package/dist/middleware/liquidity-layer/LiquidityLayerRouterDeployer.js.map +1 -1
  193. package/dist/middleware/liquidity-layer/liquidity-layer.hardhat-test.js +7 -7
  194. package/dist/middleware/liquidity-layer/liquidity-layer.hardhat-test.js.map +1 -1
  195. package/dist/middleware/query/InterchainQueryDeployer.d.ts +2 -7
  196. package/dist/middleware/query/InterchainQueryDeployer.d.ts.map +1 -1
  197. package/dist/middleware/query/InterchainQueryDeployer.js +3 -4
  198. package/dist/middleware/query/InterchainQueryDeployer.js.map +1 -1
  199. package/dist/middleware/query/queries.hardhat-test.js +8 -9
  200. package/dist/middleware/query/queries.hardhat-test.js.map +1 -1
  201. package/dist/providers/MultiProtocolProvider.d.ts +4 -1
  202. package/dist/providers/MultiProtocolProvider.d.ts.map +1 -1
  203. package/dist/providers/MultiProtocolProvider.js +16 -20
  204. package/dist/providers/MultiProtocolProvider.js.map +1 -1
  205. package/dist/providers/MultiProvider.d.ts +7 -2
  206. package/dist/providers/MultiProvider.d.ts.map +1 -1
  207. package/dist/providers/MultiProvider.js +12 -1
  208. package/dist/providers/MultiProvider.js.map +1 -1
  209. package/dist/providers/ProviderType.d.ts +45 -8
  210. package/dist/providers/ProviderType.d.ts.map +1 -1
  211. package/dist/providers/ProviderType.js +2 -0
  212. package/dist/providers/ProviderType.js.map +1 -1
  213. package/dist/providers/providerBuilders.d.ts +3 -1
  214. package/dist/providers/providerBuilders.d.ts.map +1 -1
  215. package/dist/providers/providerBuilders.js +24 -1
  216. package/dist/providers/providerBuilders.js.map +1 -1
  217. package/dist/router/GasRouterDeployer.d.ts.map +1 -1
  218. package/dist/router/GasRouterDeployer.js +1 -1
  219. package/dist/router/GasRouterDeployer.js.map +1 -1
  220. package/dist/router/HyperlaneRouterChecker.d.ts +1 -1
  221. package/dist/router/HyperlaneRouterChecker.d.ts.map +1 -1
  222. package/dist/router/HyperlaneRouterChecker.js +6 -6
  223. package/dist/router/HyperlaneRouterChecker.js.map +1 -1
  224. package/dist/router/HyperlaneRouterDeployer.d.ts +1 -1
  225. package/dist/router/HyperlaneRouterDeployer.d.ts.map +1 -1
  226. package/dist/router/HyperlaneRouterDeployer.js +15 -18
  227. package/dist/router/HyperlaneRouterDeployer.js.map +1 -1
  228. package/dist/router/MultiProtocolRouterApps.d.ts.map +1 -1
  229. package/dist/router/MultiProtocolRouterApps.js +1 -0
  230. package/dist/router/MultiProtocolRouterApps.js.map +1 -1
  231. package/dist/router/ProxiedRouterChecker.js +1 -1
  232. package/dist/router/ProxiedRouterChecker.js.map +1 -1
  233. package/dist/router/types.d.ts +14 -12
  234. package/dist/router/types.d.ts.map +1 -1
  235. package/dist/router/types.js +7 -7
  236. package/dist/router/types.js.map +1 -1
  237. package/dist/test/testUtils.d.ts +1 -3
  238. package/dist/test/testUtils.d.ts.map +1 -1
  239. package/dist/test/testUtils.js +18 -45
  240. package/dist/test/testUtils.js.map +1 -1
  241. package/dist/token/adapters/CosmWasmTokenAdapter.d.ts +107 -0
  242. package/dist/token/adapters/CosmWasmTokenAdapter.d.ts.map +1 -0
  243. package/dist/token/adapters/CosmWasmTokenAdapter.js +273 -0
  244. package/dist/token/adapters/CosmWasmTokenAdapter.js.map +1 -0
  245. package/dist/token/adapters/CosmWasmTokenAdapter.test.d.ts +10 -0
  246. package/dist/token/adapters/CosmWasmTokenAdapter.test.d.ts.map +1 -0
  247. package/dist/token/adapters/CosmWasmTokenAdapter.test.js +74 -0
  248. package/dist/token/adapters/CosmWasmTokenAdapter.test.js.map +1 -0
  249. package/dist/token/adapters/EvmTokenAdapter.d.ts +65 -0
  250. package/dist/token/adapters/EvmTokenAdapter.d.ts.map +1 -0
  251. package/dist/token/adapters/EvmTokenAdapter.js +119 -0
  252. package/dist/token/adapters/EvmTokenAdapter.js.map +1 -0
  253. package/dist/token/adapters/ITokenAdapter.d.ts +30 -0
  254. package/dist/token/adapters/ITokenAdapter.d.ts.map +1 -0
  255. package/dist/token/adapters/ITokenAdapter.js +3 -0
  256. package/dist/token/adapters/ITokenAdapter.js.map +1 -0
  257. package/dist/token/adapters/SealevelTokenAdapter.d.ts +117 -0
  258. package/dist/token/adapters/SealevelTokenAdapter.d.ts.map +1 -0
  259. package/dist/token/adapters/SealevelTokenAdapter.js +434 -0
  260. package/dist/token/adapters/SealevelTokenAdapter.js.map +1 -0
  261. package/dist/token/adapters/serialization.d.ts +50 -0
  262. package/dist/token/adapters/serialization.d.ts.map +1 -0
  263. package/dist/token/adapters/serialization.js +117 -0
  264. package/dist/token/adapters/serialization.js.map +1 -0
  265. package/dist/token/config.d.ts +48 -0
  266. package/dist/token/config.d.ts.map +1 -0
  267. package/dist/token/config.js +34 -0
  268. package/dist/token/config.js.map +1 -0
  269. package/dist/token/contracts.d.ts +9 -0
  270. package/dist/token/contracts.d.ts.map +1 -0
  271. package/dist/token/contracts.js +3 -0
  272. package/dist/token/contracts.js.map +1 -0
  273. package/dist/token/deploy.d.ts +40 -0
  274. package/dist/token/deploy.d.ts.map +1 -0
  275. package/dist/token/deploy.js +262 -0
  276. package/dist/token/deploy.js.map +1 -0
  277. package/dist/utils/wagmi.d.ts +1 -1
  278. package/dist/utils/wagmi.d.ts.map +1 -1
  279. package/dist/utils/wagmi.js +2 -1
  280. package/dist/utils/wagmi.js.map +1 -1
  281. package/package.json +12 -7
  282. package/dist/consts/agentStartBlocks.d.ts +0 -3
  283. package/dist/consts/agentStartBlocks.d.ts.map +0 -1
  284. package/dist/consts/agentStartBlocks.js +0 -28
  285. package/dist/consts/agentStartBlocks.js.map +0 -1
  286. package/dist/consts/environments/test.json +0 -41
  287. package/dist/hook/config.d.ts +0 -4
  288. package/dist/hook/config.d.ts.map +0 -1
  289. package/dist/hook/config.js +0 -9
  290. package/dist/hook/config.js.map +0 -1
  291. package/dist/ism/HyperlaneIsmFactoryDeployer.d.ts +0 -11
  292. package/dist/ism/HyperlaneIsmFactoryDeployer.d.ts.map +0 -1
  293. package/dist/ism/HyperlaneIsmFactoryDeployer.js +0 -39
  294. package/dist/ism/HyperlaneIsmFactoryDeployer.js.map +0 -1
@@ -0,0 +1,273 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CwHypCollateralAdapter = exports.CwHypNativeAdapter = exports.CwHypSyntheticAdapter = exports.CwTokenAdapter = exports.CwNativeTokenAdapter = void 0;
4
+ const utils_1 = require("@hyperlane-xyz/utils");
5
+ const MultiProtocolApp_1 = require("../../app/MultiProtocolApp");
6
+ // Interacts with IBC denom tokens
7
+ class CwNativeTokenAdapter extends MultiProtocolApp_1.BaseCosmWasmAdapter {
8
+ constructor(chainName, multiProvider, addresses, ibcDenom = 'untrn') {
9
+ super(chainName, multiProvider, addresses);
10
+ this.chainName = chainName;
11
+ this.multiProvider = multiProvider;
12
+ this.addresses = addresses;
13
+ this.ibcDenom = ibcDenom;
14
+ }
15
+ async getBalance(address) {
16
+ const provider = await this.getProvider();
17
+ const balance = await provider.getBalance(address, this.ibcDenom);
18
+ return balance.amount;
19
+ }
20
+ async getMetadata() {
21
+ throw new Error('Metadata not available to native tokens');
22
+ }
23
+ async populateApproveTx(_params) {
24
+ throw new Error('Approve not required for native tokens');
25
+ }
26
+ async populateTransferTx({ recipient, weiAmountOrId, }) {
27
+ // TODO: check if this works with execute instruction? (contract type, empty message)
28
+ return {
29
+ contractAddress: recipient,
30
+ msg: {},
31
+ funds: [
32
+ {
33
+ amount: weiAmountOrId.toString(),
34
+ denom: this.ibcDenom,
35
+ },
36
+ ],
37
+ };
38
+ }
39
+ }
40
+ exports.CwNativeTokenAdapter = CwNativeTokenAdapter;
41
+ // Interacts with CW20/721 contracts
42
+ class CwTokenAdapter extends MultiProtocolApp_1.BaseCosmWasmAdapter {
43
+ constructor(chainName, multiProvider, addresses, denom = 'untrn') {
44
+ super(chainName, multiProvider, addresses);
45
+ this.chainName = chainName;
46
+ this.multiProvider = multiProvider;
47
+ this.addresses = addresses;
48
+ this.denom = denom;
49
+ }
50
+ async queryToken(msg) {
51
+ const provider = await this.getProvider();
52
+ const response = await provider.queryContractSmart(this.addresses.token, msg);
53
+ return response;
54
+ }
55
+ prepareToken(msg, funds) {
56
+ return {
57
+ contractAddress: this.addresses.token,
58
+ msg,
59
+ funds,
60
+ };
61
+ }
62
+ async getBalance(address) {
63
+ const resp = await this.queryToken({
64
+ balance: {
65
+ address,
66
+ },
67
+ });
68
+ return resp.balance;
69
+ }
70
+ async getMetadata() {
71
+ const resp = await this.queryToken({
72
+ token_info: {},
73
+ });
74
+ return {
75
+ ...resp,
76
+ totalSupply: resp.total_supply,
77
+ };
78
+ }
79
+ async populateApproveTx({ weiAmountOrId, recipient, }) {
80
+ // TODO: check existing allowance
81
+ return this.prepareToken({
82
+ increase_allowance: {
83
+ spender: recipient,
84
+ amount: weiAmountOrId.toString(),
85
+ expires: {
86
+ never: {},
87
+ },
88
+ },
89
+ });
90
+ }
91
+ async populateTransferTx({ weiAmountOrId, recipient, }) {
92
+ return this.prepareToken({
93
+ transfer: {
94
+ recipient,
95
+ amount: weiAmountOrId.toString(),
96
+ },
97
+ });
98
+ }
99
+ }
100
+ exports.CwTokenAdapter = CwTokenAdapter;
101
+ class CwHypSyntheticAdapter extends CwTokenAdapter {
102
+ constructor(chainName, multiProvider, addresses, gasDenom = 'untrn') {
103
+ super(chainName, multiProvider, addresses);
104
+ this.chainName = chainName;
105
+ this.multiProvider = multiProvider;
106
+ this.addresses = addresses;
107
+ this.gasDenom = gasDenom;
108
+ }
109
+ async queryRouter(msg) {
110
+ const provider = await this.getProvider();
111
+ const response = await provider.queryContractSmart(this.addresses.warpRouter, msg);
112
+ return response;
113
+ }
114
+ prepareRouter(msg, funds) {
115
+ return {
116
+ contractAddress: this.addresses.warpRouter,
117
+ msg,
118
+ funds,
119
+ };
120
+ }
121
+ async tokenType() {
122
+ const resp = await this.queryRouter({
123
+ token_default: {
124
+ token_type: {},
125
+ },
126
+ });
127
+ return resp.type;
128
+ }
129
+ async interchainSecurityModule() {
130
+ throw new Error('Router does not support ISM config yet.');
131
+ }
132
+ async owner() {
133
+ const resp = await this.queryRouter({
134
+ ownable: {
135
+ get_owner: {},
136
+ },
137
+ });
138
+ return resp.owner;
139
+ }
140
+ async getDomains() {
141
+ const resp = await this.queryRouter({
142
+ router: {
143
+ domains: {},
144
+ },
145
+ });
146
+ return resp.domains;
147
+ }
148
+ async getRouterAddress(domain) {
149
+ const resp = await this.queryRouter({
150
+ router: {
151
+ get_route: {
152
+ domain,
153
+ },
154
+ },
155
+ });
156
+ const route = resp.route.route;
157
+ if (!route) {
158
+ throw new Error(`No route found for domain ${domain}`);
159
+ }
160
+ return Buffer.from(route, 'hex');
161
+ }
162
+ async getAllRouters() {
163
+ const resp = await this.queryRouter({
164
+ router: {
165
+ list_routes: {},
166
+ },
167
+ });
168
+ return resp.routes
169
+ .filter((r) => r.route != null)
170
+ .map((r) => ({
171
+ domain: r.domain,
172
+ address: Buffer.from(r.route, 'hex'),
173
+ }));
174
+ }
175
+ quoteGasPayment(_destination) {
176
+ throw new Error('Method not implemented.');
177
+ }
178
+ populateTransferRemoteTx({ destination, recipient, weiAmountOrId, txValue, }) {
179
+ if (!txValue) {
180
+ throw new Error('txValue is required for native tokens');
181
+ }
182
+ return this.prepareRouter({
183
+ transfer_remote: {
184
+ dest_domain: destination,
185
+ recipient: (0, utils_1.strip0x)((0, utils_1.addressToBytes32)(recipient)),
186
+ amount: weiAmountOrId.toString(),
187
+ },
188
+ }, [
189
+ {
190
+ amount: txValue.toString(),
191
+ denom: this.gasDenom,
192
+ },
193
+ ]);
194
+ }
195
+ }
196
+ exports.CwHypSyntheticAdapter = CwHypSyntheticAdapter;
197
+ class CwHypNativeAdapter extends CwNativeTokenAdapter {
198
+ constructor(chainName, multiProvider, addresses, gasDenom = 'untrn') {
199
+ super(chainName, multiProvider, addresses, gasDenom);
200
+ this.chainName = chainName;
201
+ this.multiProvider = multiProvider;
202
+ this.addresses = addresses;
203
+ this.gasDenom = gasDenom;
204
+ this.cw20adapter = new CwHypSyntheticAdapter(chainName, multiProvider, { token: '', warpRouter: addresses.warpRouter }, gasDenom);
205
+ }
206
+ async getBalance(address) {
207
+ const provider = await this.getProvider();
208
+ const denom = await this.denom();
209
+ const balance = await provider.getBalance(address, denom);
210
+ return balance.amount;
211
+ }
212
+ async interchainSecurityModule() {
213
+ return this.cw20adapter.interchainSecurityModule();
214
+ }
215
+ async owner() {
216
+ return this.cw20adapter.owner();
217
+ }
218
+ async getDomains() {
219
+ return this.cw20adapter.getDomains();
220
+ }
221
+ async getRouterAddress(domain) {
222
+ return this.cw20adapter.getRouterAddress(domain);
223
+ }
224
+ async getAllRouters() {
225
+ return this.cw20adapter.getAllRouters();
226
+ }
227
+ quoteGasPayment(destination) {
228
+ return this.cw20adapter.quoteGasPayment(destination);
229
+ }
230
+ async denom() {
231
+ const tokenType = await this.cw20adapter.tokenType();
232
+ if ('native' in tokenType) {
233
+ if ('fungible' in tokenType.native) {
234
+ return tokenType.native.fungible.denom;
235
+ }
236
+ }
237
+ throw new Error(`Token type not supported: ${tokenType}`);
238
+ }
239
+ async populateTransferRemoteTx({ destination, recipient, weiAmountOrId, txValue, }) {
240
+ if (!txValue) {
241
+ throw new Error('txValue is required for native tokens');
242
+ }
243
+ const collateralDenom = await this.denom();
244
+ return this.cw20adapter.prepareRouter({
245
+ transfer_remote: {
246
+ dest_domain: destination,
247
+ recipient: (0, utils_1.strip0x)((0, utils_1.addressToBytes32)(recipient)),
248
+ amount: weiAmountOrId.toString(),
249
+ },
250
+ }, [
251
+ {
252
+ amount: weiAmountOrId.toString(),
253
+ denom: collateralDenom,
254
+ },
255
+ {
256
+ amount: txValue.toString(),
257
+ denom: this.gasDenom,
258
+ },
259
+ ]);
260
+ }
261
+ }
262
+ exports.CwHypNativeAdapter = CwHypNativeAdapter;
263
+ class CwHypCollateralAdapter extends CwHypNativeAdapter {
264
+ constructor(chainName, multiProvider, addresses, gasDenom = 'untrn') {
265
+ super(chainName, multiProvider, addresses, gasDenom);
266
+ this.chainName = chainName;
267
+ this.multiProvider = multiProvider;
268
+ this.addresses = addresses;
269
+ this.gasDenom = gasDenom;
270
+ }
271
+ }
272
+ exports.CwHypCollateralAdapter = CwHypCollateralAdapter;
273
+ //# sourceMappingURL=CosmWasmTokenAdapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CosmWasmTokenAdapter.js","sourceRoot":"","sources":["../../../src/token/adapters/CosmWasmTokenAdapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { SigningCosmWasmClient } from '@cosmjs/cosmwasm-stargate';
2
+ import { SigningStargateClient } from '@cosmjs/stargate';
3
+ export declare function getSigningClient(): Promise<{
4
+ wasm: SigningCosmWasmClient;
5
+ stargate: SigningStargateClient;
6
+ signer: string;
7
+ signer_addr: string;
8
+ signer_pubkey: string;
9
+ }>;
10
+ //# sourceMappingURL=CosmWasmTokenAdapter.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CosmWasmTokenAdapter.test.d.ts","sourceRoot":"","sources":["../../../src/token/adapters/CosmWasmTokenAdapter.test.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAGlE,OAAO,EAAY,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AA8BnE,wBAAsB,gBAAgB;;;;;;GAuCrC"}
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+ /* eslint-disable @typescript-eslint/explicit-module-boundary-types */
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.getSigningClient = void 0;
5
+ /* eslint-disable no-console */
6
+ const cosmwasm_stargate_1 = require("@cosmjs/cosmwasm-stargate");
7
+ const crypto_1 = require("@cosmjs/crypto");
8
+ const proto_signing_1 = require("@cosmjs/proto-signing");
9
+ const stargate_1 = require("@cosmjs/stargate");
10
+ const tendermint_rpc_1 = require("@cosmjs/tendermint-rpc");
11
+ const utils_1 = require("@hyperlane-xyz/utils");
12
+ const MultiProtocolProvider_1 = require("../../providers/MultiProtocolProvider");
13
+ const CosmWasmTokenAdapter_1 = require("./CosmWasmTokenAdapter");
14
+ const router = 'dual1nzkcccxw00u9egqfuuq2ue23hjj6kxmfvmc5y0r7wchk5e6nypns6768kk';
15
+ const dualitydevnet = {
16
+ name: 'dualitydevnet',
17
+ chainId: 'duality-devnet',
18
+ domainId: 33333,
19
+ protocol: utils_1.ProtocolType.Cosmos,
20
+ bech32Prefix: 'dual',
21
+ slip44: 118,
22
+ rpcUrls: [
23
+ {
24
+ http: 'http://54.149.31.83:26657',
25
+ },
26
+ ],
27
+ isTestnet: true,
28
+ };
29
+ const signer = '<PRIVATE_KEY>';
30
+ async function getSigningClient() {
31
+ const wallet = await proto_signing_1.DirectSecp256k1Wallet.fromKey(Buffer.from(signer, 'hex'), dualitydevnet.bech32Prefix);
32
+ const [account] = await wallet.getAccounts();
33
+ const clientBase = await tendermint_rpc_1.Tendermint37Client.connect(dualitydevnet.rpcUrls[0].http);
34
+ const gasPrice = stargate_1.GasPrice.fromString('0.025token');
35
+ const wasm = await cosmwasm_stargate_1.SigningCosmWasmClient.createWithSigner(clientBase, wallet, {
36
+ gasPrice,
37
+ });
38
+ const stargate = await stargate_1.SigningStargateClient.createWithSigner(clientBase, wallet, {
39
+ gasPrice,
40
+ });
41
+ const pubkey = crypto_1.Secp256k1.uncompressPubkey(account.pubkey);
42
+ const ethaddr = (0, crypto_1.keccak256)(pubkey.slice(1)).slice(-20);
43
+ return {
44
+ wasm,
45
+ stargate,
46
+ signer: account.address,
47
+ signer_addr: Buffer.from(ethaddr).toString('hex'),
48
+ signer_pubkey: Buffer.from(account.pubkey).toString('hex'),
49
+ };
50
+ }
51
+ exports.getSigningClient = getSigningClient;
52
+ async function main() {
53
+ const multiProtocolProvider = new MultiProtocolProvider_1.MultiProtocolProvider({
54
+ dualitydevnet,
55
+ });
56
+ const gasDenom = 'token';
57
+ const adapter = new CosmWasmTokenAdapter_1.CwHypNativeAdapter(dualitydevnet.name, multiProtocolProvider, { warpRouter: router }, gasDenom);
58
+ const owner = await adapter.owner();
59
+ const routers = await adapter.getAllRouters();
60
+ const domains = await adapter.getDomains();
61
+ const balance = await adapter.getBalance(owner);
62
+ console.log({ owner, routers, domains, balance });
63
+ const msg = await adapter.populateTransferRemoteTx({
64
+ destination: domains[0],
65
+ recipient: '0xE000fA4E466831dB288290Dd97e66560fb3d7d28',
66
+ weiAmountOrId: 10,
67
+ txValue: '2500000',
68
+ });
69
+ const client = await getSigningClient();
70
+ const tx = await client.wasm.executeMultiple(client.signer, [msg], 'auto');
71
+ console.log({ tx });
72
+ }
73
+ main().catch(console.error);
74
+ //# sourceMappingURL=CosmWasmTokenAdapter.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CosmWasmTokenAdapter.test.js","sourceRoot":"","sources":["../../../src/token/adapters/CosmWasmTokenAdapter.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,65 @@
1
+ /// <reference types="node" />
2
+ import { PopulatedTransaction } from 'ethers';
3
+ import { ERC20, HypERC20 } from '@hyperlane-xyz/core';
4
+ import { Address, Domain } from '@hyperlane-xyz/utils';
5
+ import { BaseEvmAdapter } from '../../app/MultiProtocolApp';
6
+ import { MultiProtocolProvider } from '../../providers/MultiProtocolProvider';
7
+ import { ChainName } from '../../types';
8
+ import { MinimalTokenMetadata } from '../config';
9
+ import { IHypTokenAdapter, ITokenAdapter, TransferParams, TransferRemoteParams } from './ITokenAdapter';
10
+ export declare class EvmNativeTokenAdapter extends BaseEvmAdapter implements ITokenAdapter {
11
+ getBalance(address: Address): Promise<string>;
12
+ getMetadata(): Promise<MinimalTokenMetadata>;
13
+ populateApproveTx(_params: TransferParams): Promise<PopulatedTransaction>;
14
+ populateTransferTx({ weiAmountOrId, recipient, }: TransferParams): Promise<PopulatedTransaction>;
15
+ }
16
+ export declare class EvmTokenAdapter<T extends ERC20 = ERC20> extends EvmNativeTokenAdapter implements ITokenAdapter {
17
+ readonly chainName: ChainName;
18
+ readonly multiProvider: MultiProtocolProvider;
19
+ readonly addresses: {
20
+ token: Address;
21
+ };
22
+ readonly contractFactory: any;
23
+ readonly contract: T;
24
+ constructor(chainName: ChainName, multiProvider: MultiProtocolProvider, addresses: {
25
+ token: Address;
26
+ }, contractFactory?: any);
27
+ getBalance(address: Address): Promise<string>;
28
+ getMetadata(isNft?: boolean): Promise<MinimalTokenMetadata>;
29
+ populateApproveTx({ weiAmountOrId, recipient, }: TransferParams): Promise<PopulatedTransaction>;
30
+ populateTransferTx({ weiAmountOrId, recipient, }: TransferParams): Promise<PopulatedTransaction>;
31
+ }
32
+ export declare class EvmHypSyntheticAdapter<T extends HypERC20 = HypERC20> extends EvmTokenAdapter<T> implements IHypTokenAdapter {
33
+ readonly chainName: ChainName;
34
+ readonly multiProvider: MultiProtocolProvider;
35
+ readonly addresses: {
36
+ token: Address;
37
+ };
38
+ readonly contractFactory: any;
39
+ constructor(chainName: ChainName, multiProvider: MultiProtocolProvider, addresses: {
40
+ token: Address;
41
+ }, contractFactory?: any);
42
+ getDomains(): Promise<Domain[]>;
43
+ getRouterAddress(domain: Domain): Promise<Buffer>;
44
+ getAllRouters(): Promise<Array<{
45
+ domain: Domain;
46
+ address: Buffer;
47
+ }>>;
48
+ quoteGasPayment(destination: Domain): Promise<string>;
49
+ populateTransferRemoteTx({ weiAmountOrId, destination, recipient, txValue, }: TransferRemoteParams): Promise<PopulatedTransaction>;
50
+ }
51
+ export declare class EvmHypCollateralAdapter extends EvmHypSyntheticAdapter implements IHypTokenAdapter {
52
+ readonly chainName: ChainName;
53
+ readonly multiProvider: MultiProtocolProvider;
54
+ readonly addresses: {
55
+ token: Address;
56
+ };
57
+ readonly contractFactory: any;
58
+ constructor(chainName: ChainName, multiProvider: MultiProtocolProvider, addresses: {
59
+ token: Address;
60
+ }, contractFactory?: any);
61
+ getMetadata(): Promise<MinimalTokenMetadata>;
62
+ populateApproveTx(_params: TransferParams): Promise<PopulatedTransaction>;
63
+ populateTransferTx(_params: TransferParams): Promise<PopulatedTransaction>;
64
+ }
65
+ //# sourceMappingURL=EvmTokenAdapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EvmTokenAdapter.d.ts","sourceRoot":"","sources":["../../../src/token/adapters/EvmTokenAdapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,119 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EvmHypCollateralAdapter = exports.EvmHypSyntheticAdapter = exports.EvmTokenAdapter = exports.EvmNativeTokenAdapter = void 0;
4
+ const ethers_1 = require("ethers");
5
+ const core_1 = require("@hyperlane-xyz/core");
6
+ const utils_1 = require("@hyperlane-xyz/utils");
7
+ const MultiProtocolApp_1 = require("../../app/MultiProtocolApp");
8
+ // Interacts with native currencies
9
+ class EvmNativeTokenAdapter extends MultiProtocolApp_1.BaseEvmAdapter {
10
+ async getBalance(address) {
11
+ const balance = await this.getProvider().getBalance(address);
12
+ return balance.toString();
13
+ }
14
+ async getMetadata() {
15
+ // TODO get metadata from chainMetadata config
16
+ throw new Error('Metadata not available to native tokens');
17
+ }
18
+ async populateApproveTx(_params) {
19
+ throw new Error('Approve not required for native tokens');
20
+ }
21
+ async populateTransferTx({ weiAmountOrId, recipient, }) {
22
+ const value = ethers_1.BigNumber.from(weiAmountOrId);
23
+ return { value, to: recipient };
24
+ }
25
+ }
26
+ exports.EvmNativeTokenAdapter = EvmNativeTokenAdapter;
27
+ // Interacts with ERC20/721 contracts
28
+ class EvmTokenAdapter extends EvmNativeTokenAdapter {
29
+ constructor(chainName, multiProvider, addresses, contractFactory = core_1.ERC20__factory) {
30
+ super(chainName, multiProvider, addresses);
31
+ this.chainName = chainName;
32
+ this.multiProvider = multiProvider;
33
+ this.addresses = addresses;
34
+ this.contractFactory = contractFactory;
35
+ this.contract = contractFactory.connect(addresses.token, this.getProvider());
36
+ }
37
+ async getBalance(address) {
38
+ const balance = await this.contract.balanceOf(address);
39
+ return balance.toString();
40
+ }
41
+ async getMetadata(isNft) {
42
+ const [decimals, symbol, name] = await Promise.all([
43
+ isNft ? 0 : this.contract.decimals(),
44
+ this.contract.symbol(),
45
+ this.contract.name(),
46
+ ]);
47
+ return { decimals, symbol, name };
48
+ }
49
+ populateApproveTx({ weiAmountOrId, recipient, }) {
50
+ return this.contract.populateTransaction.approve(recipient, weiAmountOrId);
51
+ }
52
+ populateTransferTx({ weiAmountOrId, recipient, }) {
53
+ return this.contract.populateTransaction.transfer(recipient, weiAmountOrId);
54
+ }
55
+ }
56
+ exports.EvmTokenAdapter = EvmTokenAdapter;
57
+ // Interacts with Hyp Synthetic token contracts (aka 'HypTokens')
58
+ class EvmHypSyntheticAdapter extends EvmTokenAdapter {
59
+ constructor(chainName, multiProvider, addresses, contractFactory = core_1.HypERC20__factory) {
60
+ super(chainName, multiProvider, addresses, contractFactory);
61
+ this.chainName = chainName;
62
+ this.multiProvider = multiProvider;
63
+ this.addresses = addresses;
64
+ this.contractFactory = contractFactory;
65
+ }
66
+ getDomains() {
67
+ return this.contract.domains();
68
+ }
69
+ async getRouterAddress(domain) {
70
+ const routerAddressesAsBytes32 = await this.contract.routers(domain);
71
+ // Evm addresses will be padded with 12 bytes
72
+ if (routerAddressesAsBytes32.startsWith('0x000000000000000000000000')) {
73
+ return Buffer.from((0, utils_1.strip0x)((0, utils_1.bytes32ToAddress)(routerAddressesAsBytes32)), 'hex');
74
+ // Otherwise leave the address unchanged
75
+ }
76
+ else {
77
+ return Buffer.from((0, utils_1.strip0x)(routerAddressesAsBytes32), 'hex');
78
+ }
79
+ }
80
+ async getAllRouters() {
81
+ const domains = await this.getDomains();
82
+ const routers = await Promise.all(domains.map((d) => this.getRouterAddress(d)));
83
+ return domains.map((d, i) => ({ domain: d, address: routers[i] }));
84
+ }
85
+ async quoteGasPayment(destination) {
86
+ const gasPayment = await this.contract.quoteGasPayment(destination);
87
+ return gasPayment.toString();
88
+ }
89
+ populateTransferRemoteTx({ weiAmountOrId, destination, recipient, txValue, }) {
90
+ const recipBytes32 = (0, utils_1.addressToBytes32)((0, utils_1.addressToByteHexString)(recipient));
91
+ return this.contract.populateTransaction.transferRemote(destination, recipBytes32, weiAmountOrId, {
92
+ // Note, typically the value is the gas payment as quoted by IGP
93
+ value: txValue,
94
+ });
95
+ }
96
+ }
97
+ exports.EvmHypSyntheticAdapter = EvmHypSyntheticAdapter;
98
+ // Interacts with HypCollateral and HypNative contracts
99
+ class EvmHypCollateralAdapter extends EvmHypSyntheticAdapter {
100
+ constructor(chainName, multiProvider, addresses, contractFactory = core_1.HypERC20Collateral__factory) {
101
+ super(chainName, multiProvider, addresses, contractFactory);
102
+ this.chainName = chainName;
103
+ this.multiProvider = multiProvider;
104
+ this.addresses = addresses;
105
+ this.contractFactory = contractFactory;
106
+ }
107
+ getMetadata() {
108
+ // TODO pass through metadata from wrapped token or chainMetadata config
109
+ throw new Error('Metadata not available for HypCollateral/HypNative contract.');
110
+ }
111
+ populateApproveTx(_params) {
112
+ throw new Error('Approve not applicable to HypCollateral/HypNative contract.');
113
+ }
114
+ populateTransferTx(_params) {
115
+ throw new Error('Local transfer not supported for HypCollateral/HypNative contract.');
116
+ }
117
+ }
118
+ exports.EvmHypCollateralAdapter = EvmHypCollateralAdapter;
119
+ //# sourceMappingURL=EvmTokenAdapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EvmTokenAdapter.js","sourceRoot":"","sources":["../../../src/token/adapters/EvmTokenAdapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ /// <reference types="node" />
2
+ import { Address, Domain } from '@hyperlane-xyz/utils';
3
+ import { MinimalTokenMetadata } from '../config';
4
+ export interface TransferParams {
5
+ weiAmountOrId: string | number;
6
+ recipient: Address;
7
+ fromTokenAccount?: Address;
8
+ fromAccountOwner?: Address;
9
+ }
10
+ export interface TransferRemoteParams extends TransferParams {
11
+ destination: Domain;
12
+ txValue?: string;
13
+ }
14
+ export interface ITokenAdapter {
15
+ getBalance(address: Address): Promise<string>;
16
+ getMetadata(isNft?: boolean): Promise<MinimalTokenMetadata>;
17
+ populateApproveTx(TransferParams: TransferParams): unknown | Promise<unknown>;
18
+ populateTransferTx(TransferParams: TransferParams): unknown | Promise<unknown>;
19
+ }
20
+ export interface IHypTokenAdapter extends ITokenAdapter {
21
+ getDomains(): Promise<Domain[]>;
22
+ getRouterAddress(domain: Domain): Promise<Buffer>;
23
+ getAllRouters(): Promise<Array<{
24
+ domain: Domain;
25
+ address: Buffer;
26
+ }>>;
27
+ quoteGasPayment(destination: Domain): Promise<string>;
28
+ populateTransferRemoteTx(TransferParams: TransferRemoteParams): unknown | Promise<unknown>;
29
+ }
30
+ //# sourceMappingURL=ITokenAdapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ITokenAdapter.d.ts","sourceRoot":"","sources":["../../../src/token/adapters/ITokenAdapter.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAEvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AAEjD,MAAM,WAAW,cAAc;IAC7B,aAAa,EAAE,MAAM,GAAG,MAAM,CAAC;IAC/B,SAAS,EAAE,OAAO,CAAC;IAInB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,oBAAqB,SAAQ,cAAc;IAC1D,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC9C,WAAW,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAC5D,iBAAiB,CAAC,cAAc,EAAE,cAAc,GAAG,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9E,kBAAkB,CAChB,cAAc,EAAE,cAAc,GAC7B,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC/B;AAED,MAAM,WAAW,gBAAiB,SAAQ,aAAa;IACrD,UAAU,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAChC,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAClD,aAAa,IAAI,OAAO,CAAC,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAC;IACrE,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACtD,wBAAwB,CACtB,cAAc,EAAE,oBAAoB,GACnC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC/B"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=ITokenAdapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ITokenAdapter.js","sourceRoot":"","sources":["../../../src/token/adapters/ITokenAdapter.ts"],"names":[],"mappings":""}