@humanode-hyperlane/cosmos-sdk 0.0.0-stage → 30.0.0-humanode.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 (191) hide show
  1. package/LICENSE.md +193 -0
  2. package/README.md +82 -2
  3. package/dist/clients/protocol.d.ts +24 -0
  4. package/dist/clients/protocol.d.ts.map +1 -0
  5. package/dist/clients/protocol.js +70 -0
  6. package/dist/clients/protocol.js.map +1 -0
  7. package/dist/clients/provider.d.ts +70 -0
  8. package/dist/clients/provider.d.ts.map +1 -0
  9. package/dist/clients/provider.js +397 -0
  10. package/dist/clients/provider.js.map +1 -0
  11. package/dist/clients/signer.d.ts +55 -0
  12. package/dist/clients/signer.d.ts.map +1 -0
  13. package/dist/clients/signer.js +377 -0
  14. package/dist/clients/signer.js.map +1 -0
  15. package/dist/hook/hook-artifact-manager.d.ts +72 -0
  16. package/dist/hook/hook-artifact-manager.d.ts.map +1 -0
  17. package/dist/hook/hook-artifact-manager.js +139 -0
  18. package/dist/hook/hook-artifact-manager.js.map +1 -0
  19. package/dist/hook/hook-query.d.ts +42 -0
  20. package/dist/hook/hook-query.d.ts.map +1 -0
  21. package/dist/hook/hook-query.js +95 -0
  22. package/dist/hook/hook-query.js.map +1 -0
  23. package/dist/hook/hook-tx.d.ts +47 -0
  24. package/dist/hook/hook-tx.d.ts.map +1 -0
  25. package/dist/hook/hook-tx.js +76 -0
  26. package/dist/hook/hook-tx.js.map +1 -0
  27. package/dist/hook/igp-hook.d.ts +30 -0
  28. package/dist/hook/igp-hook.d.ts.map +1 -0
  29. package/dist/hook/igp-hook.js +150 -0
  30. package/dist/hook/igp-hook.js.map +1 -0
  31. package/dist/hook/merkle-tree-hook.d.ts +32 -0
  32. package/dist/hook/merkle-tree-hook.d.ts.map +1 -0
  33. package/dist/hook/merkle-tree-hook.js +60 -0
  34. package/dist/hook/merkle-tree-hook.js.map +1 -0
  35. package/dist/hyperlane/core/messages.d.ts +16 -0
  36. package/dist/hyperlane/core/messages.d.ts.map +1 -0
  37. package/dist/hyperlane/core/messages.js +2 -0
  38. package/dist/hyperlane/core/messages.js.map +1 -0
  39. package/dist/hyperlane/core/query.d.ts +18 -0
  40. package/dist/hyperlane/core/query.d.ts.map +1 -0
  41. package/dist/hyperlane/core/query.js +18 -0
  42. package/dist/hyperlane/core/query.js.map +1 -0
  43. package/dist/hyperlane/interchain_security/messages.d.ts +36 -0
  44. package/dist/hyperlane/interchain_security/messages.d.ts.map +1 -0
  45. package/dist/hyperlane/interchain_security/messages.js +2 -0
  46. package/dist/hyperlane/interchain_security/messages.js.map +1 -0
  47. package/dist/hyperlane/interchain_security/query.d.ts +36 -0
  48. package/dist/hyperlane/interchain_security/query.d.ts.map +1 -0
  49. package/dist/hyperlane/interchain_security/query.js +49 -0
  50. package/dist/hyperlane/interchain_security/query.js.map +1 -0
  51. package/dist/hyperlane/post_dispatch/messages.d.ts +32 -0
  52. package/dist/hyperlane/post_dispatch/messages.d.ts.map +1 -0
  53. package/dist/hyperlane/post_dispatch/messages.js +2 -0
  54. package/dist/hyperlane/post_dispatch/messages.js.map +1 -0
  55. package/dist/hyperlane/post_dispatch/query.d.ts +24 -0
  56. package/dist/hyperlane/post_dispatch/query.d.ts.map +1 -0
  57. package/dist/hyperlane/post_dispatch/query.js +21 -0
  58. package/dist/hyperlane/post_dispatch/query.js.map +1 -0
  59. package/dist/hyperlane/warp/messages.d.ts +28 -0
  60. package/dist/hyperlane/warp/messages.d.ts.map +1 -0
  61. package/dist/hyperlane/warp/messages.js +2 -0
  62. package/dist/hyperlane/warp/messages.js.map +1 -0
  63. package/dist/hyperlane/warp/query.d.ts +18 -0
  64. package/dist/hyperlane/warp/query.d.ts.map +1 -0
  65. package/dist/hyperlane/warp/query.js +16 -0
  66. package/dist/hyperlane/warp/query.js.map +1 -0
  67. package/dist/index.d.ts +30 -0
  68. package/dist/index.d.ts.map +1 -0
  69. package/dist/index.js +36 -0
  70. package/dist/index.js.map +1 -0
  71. package/dist/ism/ism-artifact-manager.d.ts +69 -0
  72. package/dist/ism/ism-artifact-manager.d.ts.map +1 -0
  73. package/dist/ism/ism-artifact-manager.js +144 -0
  74. package/dist/ism/ism-artifact-manager.js.map +1 -0
  75. package/dist/ism/ism-query.d.ts +71 -0
  76. package/dist/ism/ism-query.d.ts.map +1 -0
  77. package/dist/ism/ism-query.js +133 -0
  78. package/dist/ism/ism-query.js.map +1 -0
  79. package/dist/ism/ism-tx.d.ts +30 -0
  80. package/dist/ism/ism-tx.d.ts.map +1 -0
  81. package/dist/ism/ism-tx.js +76 -0
  82. package/dist/ism/ism-tx.js.map +1 -0
  83. package/dist/ism/multisig-ism.d.ts +51 -0
  84. package/dist/ism/multisig-ism.d.ts.map +1 -0
  85. package/dist/ism/multisig-ism.js +120 -0
  86. package/dist/ism/multisig-ism.js.map +1 -0
  87. package/dist/ism/routing-ism.d.ts +30 -0
  88. package/dist/ism/routing-ism.d.ts.map +1 -0
  89. package/dist/ism/routing-ism.js +126 -0
  90. package/dist/ism/routing-ism.js.map +1 -0
  91. package/dist/ism/test-ism.d.ts +29 -0
  92. package/dist/ism/test-ism.d.ts.map +1 -0
  93. package/dist/ism/test-ism.js +56 -0
  94. package/dist/ism/test-ism.js.map +1 -0
  95. package/dist/mailbox/mailbox-artifact-manager.d.ts +48 -0
  96. package/dist/mailbox/mailbox-artifact-manager.d.ts.map +1 -0
  97. package/dist/mailbox/mailbox-artifact-manager.js +82 -0
  98. package/dist/mailbox/mailbox-artifact-manager.js.map +1 -0
  99. package/dist/mailbox/mailbox-query.d.ts +12 -0
  100. package/dist/mailbox/mailbox-query.d.ts.map +1 -0
  101. package/dist/mailbox/mailbox-query.js +29 -0
  102. package/dist/mailbox/mailbox-query.js.map +1 -0
  103. package/dist/mailbox/mailbox-tx.d.ts +37 -0
  104. package/dist/mailbox/mailbox-tx.d.ts.map +1 -0
  105. package/dist/mailbox/mailbox-tx.js +68 -0
  106. package/dist/mailbox/mailbox-tx.js.map +1 -0
  107. package/dist/mailbox/mailbox.d.ts +30 -0
  108. package/dist/mailbox/mailbox.d.ts.map +1 -0
  109. package/dist/mailbox/mailbox.js +168 -0
  110. package/dist/mailbox/mailbox.js.map +1 -0
  111. package/dist/registry.d.ts +21 -0
  112. package/dist/registry.d.ts.map +1 -0
  113. package/dist/registry.js +373 -0
  114. package/dist/registry.js.map +1 -0
  115. package/dist/testing/constants.d.ts +10 -0
  116. package/dist/testing/constants.d.ts.map +1 -0
  117. package/dist/testing/constants.js +30 -0
  118. package/dist/testing/constants.js.map +1 -0
  119. package/dist/testing/index.d.ts +8 -0
  120. package/dist/testing/index.d.ts.map +1 -0
  121. package/dist/testing/index.js +10 -0
  122. package/dist/testing/index.js.map +1 -0
  123. package/dist/testing/node.d.ts +4 -0
  124. package/dist/testing/node.d.ts.map +1 -0
  125. package/dist/testing/node.js +35 -0
  126. package/dist/testing/node.js.map +1 -0
  127. package/dist/testing/utils.d.ts +10 -0
  128. package/dist/testing/utils.d.ts.map +1 -0
  129. package/dist/testing/utils.js +29 -0
  130. package/dist/testing/utils.js.map +1 -0
  131. package/dist/tests/1_interchain_security.e2e-test.d.ts +2 -0
  132. package/dist/tests/1_interchain_security.e2e-test.d.ts.map +1 -0
  133. package/dist/tests/1_interchain_security.e2e-test.js +171 -0
  134. package/dist/tests/1_interchain_security.e2e-test.js.map +1 -0
  135. package/dist/tests/2_core.e2e-test.d.ts +2 -0
  136. package/dist/tests/2_core.e2e-test.d.ts.map +1 -0
  137. package/dist/tests/2_core.e2e-test.js +120 -0
  138. package/dist/tests/2_core.e2e-test.js.map +1 -0
  139. package/dist/tests/3_post_dispatch.e2e-test.d.ts +2 -0
  140. package/dist/tests/3_post_dispatch.e2e-test.d.ts.map +1 -0
  141. package/dist/tests/3_post_dispatch.e2e-test.js +130 -0
  142. package/dist/tests/3_post_dispatch.e2e-test.js.map +1 -0
  143. package/dist/tests/4_warp.e2e-test.d.ts +2 -0
  144. package/dist/tests/4_warp.e2e-test.d.ts.map +1 -0
  145. package/dist/tests/4_warp.e2e-test.js +284 -0
  146. package/dist/tests/4_warp.e2e-test.js.map +1 -0
  147. package/dist/tests/5_warp_artifact.e2e-test.d.ts +2 -0
  148. package/dist/tests/5_warp_artifact.e2e-test.d.ts.map +1 -0
  149. package/dist/tests/5_warp_artifact.e2e-test.js +520 -0
  150. package/dist/tests/5_warp_artifact.e2e-test.js.map +1 -0
  151. package/dist/tests/e2e-test.setup.d.ts +2 -0
  152. package/dist/tests/e2e-test.setup.d.ts.map +1 -0
  153. package/dist/tests/e2e-test.setup.js +13 -0
  154. package/dist/tests/e2e-test.setup.js.map +1 -0
  155. package/dist/tests/hooks.e2e-test.d.ts +2 -0
  156. package/dist/tests/hooks.e2e-test.d.ts.map +1 -0
  157. package/dist/tests/hooks.e2e-test.js +314 -0
  158. package/dist/tests/hooks.e2e-test.js.map +1 -0
  159. package/dist/tests/mailbox.e2e-test.d.ts +2 -0
  160. package/dist/tests/mailbox.e2e-test.d.ts.map +1 -0
  161. package/dist/tests/mailbox.e2e-test.js +355 -0
  162. package/dist/tests/mailbox.e2e-test.js.map +1 -0
  163. package/dist/utils/base.d.ts +22 -0
  164. package/dist/utils/base.d.ts.map +1 -0
  165. package/dist/utils/base.js +35 -0
  166. package/dist/utils/base.js.map +1 -0
  167. package/dist/utils/types.d.ts +44 -0
  168. package/dist/utils/types.d.ts.map +1 -0
  169. package/dist/utils/types.js +2 -0
  170. package/dist/utils/types.js.map +1 -0
  171. package/dist/warp/collateral-token.d.ts +21 -0
  172. package/dist/warp/collateral-token.d.ts.map +1 -0
  173. package/dist/warp/collateral-token.js +119 -0
  174. package/dist/warp/collateral-token.js.map +1 -0
  175. package/dist/warp/synthetic-token.d.ts +21 -0
  176. package/dist/warp/synthetic-token.d.ts.map +1 -0
  177. package/dist/warp/synthetic-token.js +98 -0
  178. package/dist/warp/synthetic-token.js.map +1 -0
  179. package/dist/warp/warp-artifact-manager.d.ts +17 -0
  180. package/dist/warp/warp-artifact-manager.d.ts.map +1 -0
  181. package/dist/warp/warp-artifact-manager.js +101 -0
  182. package/dist/warp/warp-artifact-manager.js.map +1 -0
  183. package/dist/warp/warp-query.d.ts +9 -0
  184. package/dist/warp/warp-query.d.ts.map +1 -0
  185. package/dist/warp/warp-query.js +105 -0
  186. package/dist/warp/warp-query.js.map +1 -0
  187. package/dist/warp/warp-tx.d.ts +31 -0
  188. package/dist/warp/warp-tx.d.ts.map +1 -0
  189. package/dist/warp/warp-tx.js +127 -0
  190. package/dist/warp/warp-tx.js.map +1 -0
  191. package/package.json +61 -3
@@ -0,0 +1,377 @@
1
+ import { DirectSecp256k1HdWallet, DirectSecp256k1Wallet, } from '@cosmjs/proto-signing';
2
+ import { AminoTypes, GasPrice, SigningStargateClient, assertIsDeliverTxSuccess, } from '@cosmjs/stargate';
3
+ import { connectComet } from '@cosmjs/tendermint-rpc';
4
+ import { assert, isUrl, strip0x } from '@humanode-hyperlane/utils';
5
+ import { COSMOS_MODULE_MESSAGE_REGISTRY as R } from '../registry.js';
6
+ import { getProtoConverter } from '../utils/base.js';
7
+ import { CosmosNativeProvider } from './provider.js';
8
+ export class CosmosNativeSigner extends CosmosNativeProvider {
9
+ signer;
10
+ account;
11
+ options;
12
+ static async connectWithSigner(rpcUrls, privateKey, extraParams) {
13
+ assert(rpcUrls.length > 0, `got no rpcUrls`);
14
+ assert(rpcUrls.every((rpc) => isUrl(rpc)), `invalid rpc urls: ${rpcUrls.join(', ')}`);
15
+ assert(extraParams, `extra params not defined`);
16
+ assert(extraParams.metadata, `metadata not defined in extra params`);
17
+ assert(extraParams.metadata.gasPrice, `gasPrice not defined in metadata extra params`);
18
+ let wallet;
19
+ if (typeof privateKey === 'string') {
20
+ assert(extraParams.metadata.bech32Prefix, `bech32Prefix not defined in metadata extra params`);
21
+ const isPrivateKey = new RegExp(/(^|\b)(0x)?[0-9a-fA-F]{64}(\b|$)/).test(privateKey);
22
+ if (isPrivateKey) {
23
+ wallet = await DirectSecp256k1Wallet.fromKey(new Uint8Array(Buffer.from(strip0x(privateKey), 'hex')), extraParams.metadata.bech32Prefix);
24
+ }
25
+ else {
26
+ wallet = await DirectSecp256k1HdWallet.fromMnemonic(privateKey, {
27
+ prefix: extraParams.metadata.bech32Prefix,
28
+ });
29
+ }
30
+ }
31
+ else {
32
+ wallet = privateKey;
33
+ }
34
+ // register all the custom amino tx types
35
+ const aminoTypes = Object.values(R)
36
+ .filter((r) => !!r.amino?.type) // filter out tx responses which have no amino type
37
+ .reduce((types, { proto, amino }) => ({
38
+ ...types,
39
+ [proto.type]: {
40
+ aminoType: amino?.type,
41
+ toAmino: amino?.converter?.toJSON ?? proto.converter.toJSON,
42
+ fromAmino: amino?.converter?.fromJSON ?? proto.converter.fromJSON,
43
+ },
44
+ }), {});
45
+ const signer = await SigningStargateClient.connectWithSigner(rpcUrls[0], wallet, {
46
+ aminoTypes: new AminoTypes({
47
+ ...aminoTypes,
48
+ }),
49
+ gasPrice: GasPrice.fromString(`${extraParams.metadata.gasPrice.amount}${extraParams.metadata.gasPrice.denom}`),
50
+ });
51
+ // register all the custom tx types
52
+ Object.values(R).forEach(({ proto }) => {
53
+ signer.registry.register(proto.type, proto.converter);
54
+ });
55
+ const cometClient = await connectComet(rpcUrls[0]);
56
+ const account = await wallet.getAccounts();
57
+ return new CosmosNativeSigner(cometClient, signer, account[0], rpcUrls, {
58
+ fee: 2,
59
+ memo: '',
60
+ });
61
+ }
62
+ constructor(cometClient, signer, account, rpcUrls, options) {
63
+ super(cometClient, rpcUrls);
64
+ this.signer = signer;
65
+ this.account = account;
66
+ this.options = options;
67
+ }
68
+ async submitTx(msg) {
69
+ const receipt = await this.signer.signAndBroadcast(this.account.address, [msg], this.options.fee, this.options.memo);
70
+ assertIsDeliverTxSuccess(receipt);
71
+ const msgResponse = receipt.msgResponses[0];
72
+ return getProtoConverter(msgResponse.typeUrl).decode(msgResponse.value);
73
+ }
74
+ getSignerAddress() {
75
+ return this.account.address;
76
+ }
77
+ supportsTransactionBatching() {
78
+ return true;
79
+ }
80
+ async transactionToPrintableJson(transaction) {
81
+ return transaction;
82
+ }
83
+ async sendAndConfirmTransaction(transaction) {
84
+ const receipt = await this.signer.signAndBroadcast(this.account.address, [transaction], this.options.fee, this.options.memo);
85
+ assertIsDeliverTxSuccess(receipt);
86
+ return receipt;
87
+ }
88
+ async sendAndConfirmBatchTransactions(transactions) {
89
+ const receipt = await this.signer.signAndBroadcast(this.account.address, transactions, this.options.fee, this.options.memo);
90
+ assertIsDeliverTxSuccess(receipt);
91
+ return receipt;
92
+ }
93
+ // ### TX CORE ###
94
+ async createMailbox(req) {
95
+ if (req.proxyAdminAddress) {
96
+ throw new Error('ProxyAdmin is not supported on Cosmos. Remove proxyAdmin from config.');
97
+ }
98
+ const msg = await this.getCreateMailboxTransaction({
99
+ ...req,
100
+ signer: this.account.address,
101
+ });
102
+ const result = await this.submitTx(msg);
103
+ return {
104
+ mailboxAddress: result.id,
105
+ };
106
+ }
107
+ async setDefaultIsm(req) {
108
+ const msg = await this.getSetDefaultIsmTransaction({
109
+ ...req,
110
+ signer: this.account.address,
111
+ });
112
+ await this.submitTx(msg);
113
+ return {
114
+ ismAddress: req.ismAddress,
115
+ };
116
+ }
117
+ async setDefaultHook(req) {
118
+ const msg = await this.getSetDefaultHookTransaction({
119
+ ...req,
120
+ signer: this.account.address,
121
+ });
122
+ await this.submitTx(msg);
123
+ return {
124
+ hookAddress: req.hookAddress,
125
+ };
126
+ }
127
+ async setRequiredHook(req) {
128
+ const msg = await this.getSetRequiredHookTransaction({
129
+ ...req,
130
+ signer: this.account.address,
131
+ });
132
+ await this.submitTx(msg);
133
+ return {
134
+ hookAddress: req.hookAddress,
135
+ };
136
+ }
137
+ async setMailboxOwner(req) {
138
+ const msg = await this.getSetMailboxOwnerTransaction({
139
+ ...req,
140
+ signer: this.account.address,
141
+ });
142
+ await this.submitTx(msg);
143
+ return {
144
+ newOwner: req.newOwner,
145
+ };
146
+ }
147
+ async createMerkleRootMultisigIsm(req) {
148
+ const msg = await this.getCreateMerkleRootMultisigIsmTransaction({
149
+ ...req,
150
+ signer: this.account.address,
151
+ });
152
+ const result = await this.submitTx(msg);
153
+ return {
154
+ ismAddress: result.id,
155
+ };
156
+ }
157
+ async createMessageIdMultisigIsm(req) {
158
+ const msg = await this.getCreateMessageIdMultisigIsmTransaction({
159
+ ...req,
160
+ signer: this.account.address,
161
+ });
162
+ const result = await this.submitTx(msg);
163
+ return {
164
+ ismAddress: result.id,
165
+ };
166
+ }
167
+ async createRoutingIsm(req) {
168
+ const msg = await this.getCreateRoutingIsmTransaction({
169
+ ...req,
170
+ signer: this.account.address,
171
+ });
172
+ const result = await this.submitTx(msg);
173
+ return {
174
+ ismAddress: result.id,
175
+ };
176
+ }
177
+ async setRoutingIsmRoute(req) {
178
+ const msg = await this.getSetRoutingIsmRouteTransaction({
179
+ ...req,
180
+ signer: this.account.address,
181
+ });
182
+ await this.submitTx(msg);
183
+ return {
184
+ route: req.route,
185
+ };
186
+ }
187
+ async removeRoutingIsmRoute(req) {
188
+ const msg = await this.getRemoveRoutingIsmRouteTransaction({
189
+ ...req,
190
+ signer: this.account.address,
191
+ });
192
+ await this.submitTx(msg);
193
+ return {
194
+ domainId: req.domainId,
195
+ };
196
+ }
197
+ async setRoutingIsmOwner(req) {
198
+ const msg = await this.getSetRoutingIsmOwnerTransaction({
199
+ ...req,
200
+ signer: this.account.address,
201
+ });
202
+ await this.submitTx(msg);
203
+ return {
204
+ newOwner: req.newOwner,
205
+ };
206
+ }
207
+ async createNoopIsm(req) {
208
+ const msg = await this.getCreateNoopIsmTransaction({
209
+ ...req,
210
+ signer: this.account.address,
211
+ });
212
+ const result = await this.submitTx(msg);
213
+ return {
214
+ ismAddress: result.id,
215
+ };
216
+ }
217
+ async createMerkleTreeHook(req) {
218
+ const msg = await this.getCreateMerkleTreeHookTransaction({
219
+ ...req,
220
+ signer: this.account.address,
221
+ });
222
+ const result = await this.submitTx(msg);
223
+ return {
224
+ hookAddress: result.id,
225
+ };
226
+ }
227
+ async createInterchainGasPaymasterHook(req) {
228
+ assert(req.denom, `denom required by ${CosmosNativeSigner.name}`);
229
+ const msg = await this.getCreateInterchainGasPaymasterHookTransaction({
230
+ ...req,
231
+ signer: this.account.address,
232
+ });
233
+ const result = await this.submitTx(msg);
234
+ return {
235
+ hookAddress: result.id,
236
+ };
237
+ }
238
+ async setInterchainGasPaymasterHookOwner(req) {
239
+ const msg = await this.getSetInterchainGasPaymasterHookOwnerTransaction({
240
+ ...req,
241
+ signer: this.account.address,
242
+ });
243
+ await this.submitTx(msg);
244
+ return {
245
+ newOwner: req.newOwner,
246
+ };
247
+ }
248
+ async setDestinationGasConfig(req) {
249
+ const msg = await this.getSetDestinationGasConfigTransaction({
250
+ ...req,
251
+ signer: this.account.address,
252
+ });
253
+ await this.submitTx(msg);
254
+ return {
255
+ destinationGasConfig: req.destinationGasConfig,
256
+ };
257
+ }
258
+ async removeDestinationGasConfig(_req) {
259
+ throw new Error(`RemoveDestinationGasConfig is currently not supported on Cosmos Native`);
260
+ }
261
+ async createNoopHook(req) {
262
+ const msg = await this.getCreateNoopHookTransaction({
263
+ ...req,
264
+ signer: this.account.address,
265
+ });
266
+ const result = await this.submitTx(msg);
267
+ return {
268
+ hookAddress: result.id,
269
+ };
270
+ }
271
+ async createValidatorAnnounce(_req) {
272
+ // Cosmos Native has no validator announce
273
+ return { validatorAnnounceId: '' };
274
+ }
275
+ async createProxyAdmin(_req) {
276
+ throw new Error('ProxyAdmin is not supported on Cosmos Native');
277
+ }
278
+ async setProxyAdminOwner(_req) {
279
+ throw new Error('ProxyAdmin is not supported on Cosmos Native');
280
+ }
281
+ // ### TX WARP ###
282
+ async createNativeToken(_req) {
283
+ throw new Error(`Native Token is not supported on Cosmos Native`);
284
+ }
285
+ async createCollateralToken(req) {
286
+ if (req.proxyAdminAddress) {
287
+ throw new Error('ProxyAdmin is not supported on Cosmos Native. Remove proxyAdmin from config.');
288
+ }
289
+ const msg = await this.getCreateCollateralTokenTransaction({
290
+ ...req,
291
+ signer: this.account.address,
292
+ });
293
+ const result = await this.submitTx(msg);
294
+ return {
295
+ tokenAddress: result.id,
296
+ };
297
+ }
298
+ async createSyntheticToken(req) {
299
+ if (req.proxyAdminAddress) {
300
+ throw new Error('ProxyAdmin is not supported on Cosmos Native. Remove proxyAdmin from config.');
301
+ }
302
+ const msg = await this.getCreateSyntheticTokenTransaction({
303
+ ...req,
304
+ signer: this.account.address,
305
+ });
306
+ const result = await this.submitTx(msg);
307
+ return {
308
+ tokenAddress: result.id,
309
+ };
310
+ }
311
+ async setTokenOwner(req) {
312
+ const msg = await this.getSetTokenOwnerTransaction({
313
+ ...req,
314
+ signer: this.account.address,
315
+ });
316
+ await this.submitTx(msg);
317
+ return {
318
+ newOwner: req.newOwner,
319
+ };
320
+ }
321
+ async setTokenIsm(req) {
322
+ assert(req.ismAddress, 'Cosmos does not support setting ism to the default ism yet');
323
+ const msg = await this.getSetTokenIsmTransaction({
324
+ ...req,
325
+ signer: this.account.address,
326
+ });
327
+ await this.submitTx(msg);
328
+ return {
329
+ ismAddress: req.ismAddress,
330
+ };
331
+ }
332
+ async setTokenHook(_req) {
333
+ throw new Error(`SetTokenHook is currently not supported on Cosmos Native`);
334
+ }
335
+ async enrollRemoteRouter(req) {
336
+ const msg = await this.getEnrollRemoteRouterTransaction({
337
+ ...req,
338
+ signer: this.account.address,
339
+ });
340
+ await this.submitTx(msg);
341
+ return {
342
+ receiverDomainId: req.remoteRouter.receiverDomainId,
343
+ };
344
+ }
345
+ async unenrollRemoteRouter(req) {
346
+ const msg = await this.getUnenrollRemoteRouterTransaction({
347
+ ...req,
348
+ signer: this.account.address,
349
+ });
350
+ await this.submitTx(msg);
351
+ return {
352
+ receiverDomainId: req.receiverDomainId,
353
+ };
354
+ }
355
+ async transfer(req) {
356
+ assert(req.denom, `denom required by ${CosmosNativeSigner.name}`);
357
+ const msg = await this.getTransferTransaction({
358
+ ...req,
359
+ signer: this.account.address,
360
+ });
361
+ await this.submitTx(msg);
362
+ return {
363
+ recipient: req.recipient,
364
+ };
365
+ }
366
+ async remoteTransfer(req) {
367
+ const msg = await this.getRemoteTransferTransaction({
368
+ ...req,
369
+ signer: this.account.address,
370
+ });
371
+ await this.submitTx(msg);
372
+ return {
373
+ tokenAddress: req.tokenAddress,
374
+ };
375
+ }
376
+ }
377
+ //# sourceMappingURL=signer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signer.js","sourceRoot":"","sources":["../../src/clients/signer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,72 @@
1
+ import { type ArtifactReader, type ArtifactWriter } from '@humanode-hyperlane/provider-sdk/artifact';
2
+ import { type DeployedHookAddress, type DeployedHookArtifact, type HookType, type IRawHookArtifactManager, type RawHookArtifactConfigs } from '@humanode-hyperlane/provider-sdk/hook';
3
+ import { type CosmosNativeSigner } from '../clients/signer.js';
4
+ /**
5
+ * Cosmos Hook Artifact Manager implementing IRawHookArtifactManager.
6
+ *
7
+ * This manager:
8
+ * - Lazily initializes the query client on first use
9
+ * - Provides factory methods for creating readers and writers
10
+ * - Supports IGP and MerkleTree hook types
11
+ *
12
+ * Design: Uses lazy initialization to keep the constructor synchronous while
13
+ * deferring the async query client creation until actually needed.
14
+ */
15
+ export declare class CosmosHookArtifactManager implements IRawHookArtifactManager {
16
+ private readonly config;
17
+ private readonly query;
18
+ constructor(config: {
19
+ rpcUrls: [string, ...string[]];
20
+ mailboxAddress?: string;
21
+ nativeTokenDenom: string;
22
+ });
23
+ /**
24
+ * Lazy initialization - creates query client on first use.
25
+ * Subsequent calls return the cached promise.
26
+ */
27
+ private getQuery;
28
+ /**
29
+ * Creates a Cosmos query client with PostDispatch extension.
30
+ */
31
+ private createQuery;
32
+ /**
33
+ * Read a hook of unknown type from the blockchain.
34
+ *
35
+ * @param address - Address of the hook to read
36
+ * @returns Deployed hook artifact with configuration
37
+ */
38
+ readHook(address: string): Promise<DeployedHookArtifact>;
39
+ /**
40
+ * Factory method to create type-specific hook readers.
41
+ *
42
+ * @param type - Hook type to create reader for
43
+ * @returns Type-specific hook reader
44
+ */
45
+ createReader<T extends HookType>(type: T): ArtifactReader<RawHookArtifactConfigs[T], DeployedHookAddress>;
46
+ /**
47
+ * Internal helper to create type-specific hook readers with query client.
48
+ *
49
+ * @param type - Hook type to create reader for
50
+ * @param query - Query client to use for reading
51
+ * @returns Type-specific hook reader
52
+ */
53
+ private createReaderWithQuery;
54
+ /**
55
+ * Factory method to create type-specific hook writers.
56
+ *
57
+ * @param type - Hook type to create writer for
58
+ * @param signer - Signer to use for writing transactions
59
+ * @returns Type-specific hook writer
60
+ */
61
+ createWriter<T extends HookType>(type: T, signer: CosmosNativeSigner): ArtifactWriter<RawHookArtifactConfigs[T], DeployedHookAddress>;
62
+ /**
63
+ * Internal helper to create type-specific hook writers with query client and signer.
64
+ *
65
+ * @param type - Hook type to create writer for
66
+ * @param query - Query client to use for reading
67
+ * @param signer - Signer to use for writing
68
+ * @returns Type-specific hook writer
69
+ */
70
+ private createWriterWithQuery;
71
+ }
72
+ //# sourceMappingURL=hook-artifact-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hook-artifact-manager.d.ts","sourceRoot":"","sources":["../../src/hook/hook-artifact-manager.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,cAAc,EACpB,MAAM,2CAA2C,CAAC;AACnD,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,KAAK,QAAQ,EACb,KAAK,uBAAuB,EAC5B,KAAK,sBAAsB,EAG5B,MAAM,uCAAuC,CAAC;AAG/C,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAU/D;;;;;;;;;;GAUG;AACH,qBAAa,yBAA0B,YAAW,uBAAuB;IAIrE,OAAO,CAAC,QAAQ,CAAC,MAAM;IAHzB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA2C;gBAG9C,MAAM,EAAE;QACvB,OAAO,EAAE,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;QAE/B,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,gBAAgB,EAAE,MAAM,CAAC;KAC1B;IAGH;;;OAGG;IACH,OAAO,CAAC,QAAQ;IAIhB;;OAEG;YACW,WAAW;IAKzB;;;;;OAKG;IACG,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAU9D;;;;;OAKG;IACH,YAAY,CAAC,CAAC,SAAS,QAAQ,EAC7B,IAAI,EAAE,CAAC,GACN,cAAc,CAAC,sBAAsB,CAAC,CAAC,CAAC,EAAE,mBAAmB,CAAC;IAWjE;;;;;;OAMG;IACH,OAAO,CAAC,qBAAqB;IAsB7B;;;;;;OAMG;IACH,YAAY,CAAC,CAAC,SAAS,QAAQ,EAC7B,IAAI,EAAE,CAAC,EACP,MAAM,EAAE,kBAAkB,GACzB,cAAc,CAAC,sBAAsB,CAAC,CAAC,CAAC,EAAE,mBAAmB,CAAC;IAqBjE;;;;;;;OAOG;IACH,OAAO,CAAC,qBAAqB;CAqC9B"}
@@ -0,0 +1,139 @@
1
+ import { QueryClient } from '@cosmjs/stargate';
2
+ import { connectComet } from '@cosmjs/tendermint-rpc';
3
+ import { AltVM } from '@humanode-hyperlane/provider-sdk';
4
+ import { altVmHookTypeToProviderHookType, throwUnsupportedHookType, } from '@humanode-hyperlane/provider-sdk/hook';
5
+ import { LazyAsync, assert } from '@humanode-hyperlane/utils';
6
+ import { setupPostDispatchExtension } from '../hyperlane/post_dispatch/query.js';
7
+ import { getHookType } from './hook-query.js';
8
+ import { CosmosIgpHookReader, CosmosIgpHookWriter } from './igp-hook.js';
9
+ import { CosmosMerkleTreeHookReader, CosmosMerkleTreeHookWriter, } from './merkle-tree-hook.js';
10
+ /**
11
+ * Cosmos Hook Artifact Manager implementing IRawHookArtifactManager.
12
+ *
13
+ * This manager:
14
+ * - Lazily initializes the query client on first use
15
+ * - Provides factory methods for creating readers and writers
16
+ * - Supports IGP and MerkleTree hook types
17
+ *
18
+ * Design: Uses lazy initialization to keep the constructor synchronous while
19
+ * deferring the async query client creation until actually needed.
20
+ */
21
+ export class CosmosHookArtifactManager {
22
+ config;
23
+ query = new LazyAsync(() => this.createQuery());
24
+ constructor(config) {
25
+ this.config = config;
26
+ }
27
+ /**
28
+ * Lazy initialization - creates query client on first use.
29
+ * Subsequent calls return the cached promise.
30
+ */
31
+ getQuery() {
32
+ return this.query.get();
33
+ }
34
+ /**
35
+ * Creates a Cosmos query client with PostDispatch extension.
36
+ */
37
+ async createQuery() {
38
+ const cometClient = await connectComet(this.config.rpcUrls[0]);
39
+ return QueryClient.withExtensions(cometClient, setupPostDispatchExtension);
40
+ }
41
+ /**
42
+ * Read a hook of unknown type from the blockchain.
43
+ *
44
+ * @param address - Address of the hook to read
45
+ * @returns Deployed hook artifact with configuration
46
+ */
47
+ async readHook(address) {
48
+ const query = await this.getQuery();
49
+ const altVMType = await getHookType(query, address);
50
+ const reader = this.createReaderWithQuery(altVmHookTypeToProviderHookType(altVMType), query);
51
+ return reader.read(address);
52
+ }
53
+ /**
54
+ * Factory method to create type-specific hook readers.
55
+ *
56
+ * @param type - Hook type to create reader for
57
+ * @returns Type-specific hook reader
58
+ */
59
+ createReader(type) {
60
+ // For synchronous createReader, we return a wrapper that will initialize lazily
61
+ return {
62
+ read: async (address) => {
63
+ const query = await this.getQuery();
64
+ const reader = this.createReaderWithQuery(type, query);
65
+ return reader.read(address);
66
+ },
67
+ };
68
+ }
69
+ /**
70
+ * Internal helper to create type-specific hook readers with query client.
71
+ *
72
+ * @param type - Hook type to create reader for
73
+ * @param query - Query client to use for reading
74
+ * @returns Type-specific hook reader
75
+ */
76
+ createReaderWithQuery(type, query) {
77
+ const readers = {
78
+ [AltVM.HookType.MERKLE_TREE]: () => new CosmosMerkleTreeHookReader(query),
79
+ [AltVM.HookType.INTERCHAIN_GAS_PAYMASTER]: () => new CosmosIgpHookReader(query),
80
+ };
81
+ const reader = readers[type];
82
+ if (!reader) {
83
+ return throwUnsupportedHookType(type, 'Cosmos');
84
+ }
85
+ return reader();
86
+ }
87
+ /**
88
+ * Factory method to create type-specific hook writers.
89
+ *
90
+ * @param type - Hook type to create writer for
91
+ * @param signer - Signer to use for writing transactions
92
+ * @returns Type-specific hook writer
93
+ */
94
+ createWriter(type, signer) {
95
+ // For synchronous createWriter, we return a wrapper that will initialize lazily
96
+ return {
97
+ read: async (address) => {
98
+ const query = await this.getQuery();
99
+ const writer = this.createWriterWithQuery(type, query, signer);
100
+ return writer.read(address);
101
+ },
102
+ create: async (artifact) => {
103
+ const query = await this.getQuery();
104
+ const writer = this.createWriterWithQuery(type, query, signer);
105
+ return writer.create(artifact);
106
+ },
107
+ update: async (artifact) => {
108
+ const query = await this.getQuery();
109
+ const writer = this.createWriterWithQuery(type, query, signer);
110
+ return writer.update(artifact);
111
+ },
112
+ };
113
+ }
114
+ /**
115
+ * Internal helper to create type-specific hook writers with query client and signer.
116
+ *
117
+ * @param type - Hook type to create writer for
118
+ * @param query - Query client to use for reading
119
+ * @param signer - Signer to use for writing
120
+ * @returns Type-specific hook writer
121
+ */
122
+ createWriterWithQuery(type, query, signer) {
123
+ const writers = {
124
+ [AltVM.HookType.MERKLE_TREE]: () => {
125
+ assert(this.config.mailboxAddress, `Mailbox needs to be defined to deploy a ${AltVM.HookType.MERKLE_TREE} hook`);
126
+ return new CosmosMerkleTreeHookWriter(query, signer, this.config.mailboxAddress);
127
+ },
128
+ [AltVM.HookType.INTERCHAIN_GAS_PAYMASTER]: () => {
129
+ return new CosmosIgpHookWriter(query, signer, this.config.nativeTokenDenom);
130
+ },
131
+ };
132
+ const writer = writers[type];
133
+ if (!writer) {
134
+ return throwUnsupportedHookType(type, 'Cosmos');
135
+ }
136
+ return writer();
137
+ }
138
+ }
139
+ //# sourceMappingURL=hook-artifact-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hook-artifact-manager.js","sourceRoot":"","sources":["../../src/hook/hook-artifact-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ import { type QueryClient } from '@cosmjs/stargate';
2
+ import { AltVM } from '@humanode-hyperlane/provider-sdk';
3
+ import { type PostDispatchExtension } from '../hyperlane/post_dispatch/query.js';
4
+ /**
5
+ * Type alias for query client with PostDispatch extension.
6
+ * Used throughout hook readers to ensure type safety.
7
+ */
8
+ export type CosmosHookQueryClient = QueryClient & PostDispatchExtension;
9
+ export declare function getHookType(query: CosmosHookQueryClient, hookAddress: string): Promise<AltVM.HookType>;
10
+ /**
11
+ * Query IGP hook configuration from chain.
12
+ *
13
+ * @param query - Query client with PostDispatchExtension
14
+ * @param hookId - ID of the IGP hook to query
15
+ * @returns IGP hook configuration with address, owner, and destination gas configs
16
+ * @throws Error if IGP hook not found
17
+ */
18
+ export declare function getIgpHookConfig(query: CosmosHookQueryClient, hookId: string): Promise<{
19
+ address: string;
20
+ owner: string;
21
+ destinationGasConfigs: {
22
+ [domainId: string]: {
23
+ gasOracle: {
24
+ tokenExchangeRate: string;
25
+ gasPrice: string;
26
+ };
27
+ gasOverhead: string;
28
+ };
29
+ };
30
+ }>;
31
+ /**
32
+ * Query MerkleTree hook configuration from chain.
33
+ *
34
+ * @param query - Query client with PostDispatchExtension
35
+ * @param hookId - ID of the MerkleTree hook to query
36
+ * @returns MerkleTree hook configuration with address
37
+ * @throws Error if MerkleTree hook not found
38
+ */
39
+ export declare function getMerkleTreeHookConfig(query: CosmosHookQueryClient, hookId: string): Promise<{
40
+ address: string;
41
+ }>;
42
+ //# sourceMappingURL=hook-query.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hook-query.d.ts","sourceRoot":"","sources":["../../src/hook/hook-query.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD,OAAO,EAAE,KAAK,EAAE,MAAM,kCAAkC,CAAC;AAGzD,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAEjF;;;GAGG;AACH,MAAM,MAAM,qBAAqB,GAAG,WAAW,GAAG,qBAAqB,CAAC;AAsBxE,wBAAsB,WAAW,CAC/B,KAAK,EAAE,qBAAqB,EAC5B,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAgBzB;AAED;;;;;;;GAOG;AACH,wBAAsB,gBAAgB,CACpC,KAAK,EAAE,qBAAqB,EAC5B,MAAM,EAAE,MAAM,GACb,OAAO,CAAC;IACT,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,qBAAqB,EAAE;QACrB,CAAC,QAAQ,EAAE,MAAM,GAAG;YAClB,SAAS,EAAE;gBACT,iBAAiB,EAAE,MAAM,CAAC;gBAC1B,QAAQ,EAAE,MAAM,CAAC;aAClB,CAAC;YACF,WAAW,EAAE,MAAM,CAAC;SACrB,CAAC;KACH,CAAC;CACH,CAAC,CA2CD;AAED;;;;;;;GAOG;AACH,wBAAsB,uBAAuB,CAC3C,KAAK,EAAE,qBAAqB,EAC5B,MAAM,EAAE,MAAM,GACb,OAAO,CAAC;IACT,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC,CAeD"}