@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,95 @@
1
+ import { AltVM } from '@humanode-hyperlane/provider-sdk';
2
+ import { assert } from '@humanode-hyperlane/utils';
3
+ const HOOK_READ_METHODS = [
4
+ 'Igp',
5
+ 'MerkleTreeHook',
6
+ ];
7
+ function hookReadMethodToHookType(hook) {
8
+ switch (hook) {
9
+ case 'Igp':
10
+ return AltVM.HookType.INTERCHAIN_GAS_PAYMASTER;
11
+ case 'MerkleTreeHook':
12
+ return AltVM.HookType.MERKLE_TREE;
13
+ default: {
14
+ const unknownHook = hook;
15
+ throw new Error(`Unknown Cosmos Hook type: ${unknownHook}`);
16
+ }
17
+ }
18
+ }
19
+ export async function getHookType(query, hookAddress) {
20
+ for (const method of HOOK_READ_METHODS) {
21
+ try {
22
+ await query.postDispatch[method]({
23
+ id: hookAddress,
24
+ });
25
+ return hookReadMethodToHookType(method);
26
+ }
27
+ catch {
28
+ // We need to brute force the hook type detection going
29
+ // over all possible supported hook derivation functions
30
+ // so we need to ignore the errors here
31
+ }
32
+ }
33
+ throw new Error(`Provided address ${hookAddress} is not a Cosmos hook`);
34
+ }
35
+ /**
36
+ * Query IGP hook configuration from chain.
37
+ *
38
+ * @param query - Query client with PostDispatchExtension
39
+ * @param hookId - ID of the IGP hook to query
40
+ * @returns IGP hook configuration with address, owner, and destination gas configs
41
+ * @throws Error if IGP hook not found
42
+ */
43
+ export async function getIgpHookConfig(query, hookId) {
44
+ try {
45
+ // Query the IGP hook itself
46
+ const { igp } = await query.postDispatch.Igp({ id: hookId });
47
+ assert(igp, `No IGP hook found at id ${hookId}`);
48
+ // Query the destination gas configs
49
+ const { destination_gas_configs } = await query.postDispatch.DestinationGasConfigs({
50
+ id: igp.id,
51
+ });
52
+ // Map the gas configs to the expected format
53
+ const configs = {};
54
+ for (const config of destination_gas_configs) {
55
+ configs[config.remote_domain] = {
56
+ gasOracle: {
57
+ tokenExchangeRate: config.gas_oracle?.token_exchange_rate ?? '0',
58
+ gasPrice: config.gas_oracle?.gas_price ?? '0',
59
+ },
60
+ gasOverhead: config.gas_overhead,
61
+ };
62
+ }
63
+ return {
64
+ address: igp.id,
65
+ owner: igp.owner,
66
+ destinationGasConfigs: configs,
67
+ };
68
+ }
69
+ catch (error) {
70
+ throw new Error(`Failed to query IGP hook config at ${hookId}: ${error.message}`);
71
+ }
72
+ }
73
+ /**
74
+ * Query MerkleTree hook configuration from chain.
75
+ *
76
+ * @param query - Query client with PostDispatchExtension
77
+ * @param hookId - ID of the MerkleTree hook to query
78
+ * @returns MerkleTree hook configuration with address
79
+ * @throws Error if MerkleTree hook not found
80
+ */
81
+ export async function getMerkleTreeHookConfig(query, hookId) {
82
+ try {
83
+ const { merkle_tree_hook } = await query.postDispatch.MerkleTreeHook({
84
+ id: hookId,
85
+ });
86
+ assert(merkle_tree_hook, `No MerkleTree hook found at id ${hookId}`);
87
+ return {
88
+ address: merkle_tree_hook.id,
89
+ };
90
+ }
91
+ catch (error) {
92
+ throw new Error(`Failed to query MerkleTree hook config at ${hookId}: ${error.message}`);
93
+ }
94
+ }
95
+ //# sourceMappingURL=hook-query.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hook-query.js","sourceRoot":"","sources":["../../src/hook/hook-query.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,47 @@
1
+ import { type MsgCreateIgpEncodeObject, type MsgCreateMerkleTreeHookEncodeObject, type MsgSetDestinationGasConfigEncodeObject, type MsgSetIgpOwnerEncodeObject } from '../hyperlane/post_dispatch/messages.js';
2
+ /**
3
+ * Build transaction to create a MerkleTree hook.
4
+ *
5
+ * @param fromAddress - Address of the transaction sender
6
+ * @param mailboxAddress - Address of the mailbox this hook will be attached to
7
+ * @returns EncodeObject for MsgCreateMerkleTreeHook transaction
8
+ */
9
+ export declare function getCreateMerkleTreeHookTx(fromAddress: string, mailboxAddress: string): MsgCreateMerkleTreeHookEncodeObject;
10
+ /**
11
+ * Build transaction to create an IGP (Interchain Gas Paymaster) hook.
12
+ *
13
+ * @param fromAddress - Address of the transaction sender
14
+ * @param denom - Native token denomination for gas payments
15
+ * @returns EncodeObject for MsgCreateIgp transaction
16
+ */
17
+ export declare function getCreateIgpTx(fromAddress: string, denom: string): MsgCreateIgpEncodeObject;
18
+ /**
19
+ * Build transaction to set the owner of an IGP hook.
20
+ *
21
+ * @param fromAddress - Address of the transaction sender (must be current owner)
22
+ * @param config - Configuration with IGP address and new owner
23
+ * @returns EncodeObject for MsgSetIgpOwner transaction
24
+ */
25
+ export declare function getSetIgpOwnerTx(fromAddress: string, config: {
26
+ igpAddress: string;
27
+ newOwner: string;
28
+ }): MsgSetIgpOwnerEncodeObject;
29
+ /**
30
+ * Build transaction to set destination gas configuration for an IGP hook.
31
+ *
32
+ * @param fromAddress - Address of the transaction sender (must be owner)
33
+ * @param config - Configuration with IGP address and destination gas config
34
+ * @returns EncodeObject for MsgSetDestinationGasConfig transaction
35
+ */
36
+ export declare function getSetIgpDestinationGasConfigTx(fromAddress: string, config: {
37
+ igpAddress: string;
38
+ destinationGasConfig: {
39
+ remoteDomainId: number;
40
+ gasOracle: {
41
+ tokenExchangeRate: string;
42
+ gasPrice: string;
43
+ };
44
+ gasOverhead: string;
45
+ };
46
+ }): MsgSetDestinationGasConfigEncodeObject;
47
+ //# sourceMappingURL=hook-tx.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hook-tx.d.ts","sourceRoot":"","sources":["../../src/hook/hook-tx.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,wBAAwB,EAC7B,KAAK,mCAAmC,EACxC,KAAK,sCAAsC,EAC3C,KAAK,0BAA0B,EAChC,MAAM,wCAAwC,CAAC;AAGhD;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CACvC,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,MAAM,GACrB,mCAAmC,CAQrC;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,GACZ,wBAAwB,CAQ1B;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE;IACN,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB,GACA,0BAA0B,CAU5B;AAED;;;;;;GAMG;AACH,wBAAgB,+BAA+B,CAC7C,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE;IACN,UAAU,EAAE,MAAM,CAAC;IACnB,oBAAoB,EAAE;QACpB,cAAc,EAAE,MAAM,CAAC;QACvB,SAAS,EAAE;YACT,iBAAiB,EAAE,MAAM,CAAC;YAC1B,QAAQ,EAAE,MAAM,CAAC;SAClB,CAAC;QACF,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;CACH,GACA,sCAAsC,CAiBxC"}
@@ -0,0 +1,76 @@
1
+ import { COSMOS_MODULE_MESSAGE_REGISTRY as MessageRegistry } from '../registry.js';
2
+ /**
3
+ * Build transaction to create a MerkleTree hook.
4
+ *
5
+ * @param fromAddress - Address of the transaction sender
6
+ * @param mailboxAddress - Address of the mailbox this hook will be attached to
7
+ * @returns EncodeObject for MsgCreateMerkleTreeHook transaction
8
+ */
9
+ export function getCreateMerkleTreeHookTx(fromAddress, mailboxAddress) {
10
+ return {
11
+ typeUrl: MessageRegistry.MsgCreateMerkleTreeHook.proto.type,
12
+ value: MessageRegistry.MsgCreateMerkleTreeHook.proto.converter.create({
13
+ owner: fromAddress,
14
+ mailbox_id: mailboxAddress,
15
+ }),
16
+ };
17
+ }
18
+ /**
19
+ * Build transaction to create an IGP (Interchain Gas Paymaster) hook.
20
+ *
21
+ * @param fromAddress - Address of the transaction sender
22
+ * @param denom - Native token denomination for gas payments
23
+ * @returns EncodeObject for MsgCreateIgp transaction
24
+ */
25
+ export function getCreateIgpTx(fromAddress, denom) {
26
+ return {
27
+ typeUrl: MessageRegistry.MsgCreateIgp.proto.type,
28
+ value: MessageRegistry.MsgCreateIgp.proto.converter.create({
29
+ owner: fromAddress,
30
+ denom,
31
+ }),
32
+ };
33
+ }
34
+ /**
35
+ * Build transaction to set the owner of an IGP hook.
36
+ *
37
+ * @param fromAddress - Address of the transaction sender (must be current owner)
38
+ * @param config - Configuration with IGP address and new owner
39
+ * @returns EncodeObject for MsgSetIgpOwner transaction
40
+ */
41
+ export function getSetIgpOwnerTx(fromAddress, config) {
42
+ return {
43
+ typeUrl: MessageRegistry.MsgSetIgpOwner.proto.type,
44
+ value: MessageRegistry.MsgSetIgpOwner.proto.converter.create({
45
+ owner: fromAddress,
46
+ igp_id: config.igpAddress,
47
+ new_owner: config.newOwner,
48
+ renounce_ownership: !config.newOwner,
49
+ }),
50
+ };
51
+ }
52
+ /**
53
+ * Build transaction to set destination gas configuration for an IGP hook.
54
+ *
55
+ * @param fromAddress - Address of the transaction sender (must be owner)
56
+ * @param config - Configuration with IGP address and destination gas config
57
+ * @returns EncodeObject for MsgSetDestinationGasConfig transaction
58
+ */
59
+ export function getSetIgpDestinationGasConfigTx(fromAddress, config) {
60
+ return {
61
+ typeUrl: MessageRegistry.MsgSetDestinationGasConfig.proto.type,
62
+ value: MessageRegistry.MsgSetDestinationGasConfig.proto.converter.create({
63
+ owner: fromAddress,
64
+ igp_id: config.igpAddress,
65
+ destination_gas_config: {
66
+ remote_domain: config.destinationGasConfig.remoteDomainId,
67
+ gas_overhead: config.destinationGasConfig.gasOverhead,
68
+ gas_oracle: {
69
+ token_exchange_rate: config.destinationGasConfig.gasOracle.tokenExchangeRate,
70
+ gas_price: config.destinationGasConfig.gasOracle.gasPrice,
71
+ },
72
+ },
73
+ }),
74
+ };
75
+ }
76
+ //# sourceMappingURL=hook-tx.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hook-tx.js","sourceRoot":"","sources":["../../src/hook/hook-tx.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,8BAA8B,IAAI,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEnF;;;;;;GAMG;AACH,MAAM,UAAU,yBAAyB,CACvC,WAAmB,EACnB,cAAsB;IAEtB,OAAO;QACL,OAAO,EAAE,eAAe,CAAC,uBAAuB,CAAC,KAAK,CAAC,IAAI;QAC3D,KAAK,EAAE,eAAe,CAAC,uBAAuB,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC;YACpE,KAAK,EAAE,WAAW;YAClB,UAAU,EAAE,cAAc;SAC3B,CAAC;KACH,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAC5B,WAAmB,EACnB,KAAa;IAEb,OAAO;QACL,OAAO,EAAE,eAAe,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI;QAChD,KAAK,EAAE,eAAe,CAAC,YAAY,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC;YACzD,KAAK,EAAE,WAAW;YAClB,KAAK;SACN,CAAC;KACH,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAC9B,WAAmB,EACnB,MAGC;IAED,OAAO;QACL,OAAO,EAAE,eAAe,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI;QAClD,KAAK,EAAE,eAAe,CAAC,cAAc,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC;YAC3D,KAAK,EAAE,WAAW;YAClB,MAAM,EAAE,MAAM,CAAC,UAAU;YACzB,SAAS,EAAE,MAAM,CAAC,QAAQ;YAC1B,kBAAkB,EAAE,CAAC,MAAM,CAAC,QAAQ;SACrC,CAAC;KACH,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,+BAA+B,CAC7C,WAAmB,EACnB,MAUC;IAED,OAAO;QACL,OAAO,EAAE,eAAe,CAAC,0BAA0B,CAAC,KAAK,CAAC,IAAI;QAC9D,KAAK,EAAE,eAAe,CAAC,0BAA0B,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC;YACvE,KAAK,EAAE,WAAW;YAClB,MAAM,EAAE,MAAM,CAAC,UAAU;YACzB,sBAAsB,EAAE;gBACtB,aAAa,EAAE,MAAM,CAAC,oBAAoB,CAAC,cAAc;gBACzD,YAAY,EAAE,MAAM,CAAC,oBAAoB,CAAC,WAAW;gBACrD,UAAU,EAAE;oBACV,mBAAmB,EACjB,MAAM,CAAC,oBAAoB,CAAC,SAAS,CAAC,iBAAiB;oBACzD,SAAS,EAAE,MAAM,CAAC,oBAAoB,CAAC,SAAS,CAAC,QAAQ;iBAC1D;aACF;SACF,CAAC;KACH,CAAC;AACJ,CAAC"}
@@ -0,0 +1,30 @@
1
+ import { type DeliverTxResponse } from '@cosmjs/stargate';
2
+ import { type ArtifactDeployed, type ArtifactNew, type ArtifactReader, type ArtifactWriter } from '@humanode-hyperlane/provider-sdk/artifact';
3
+ import { type DeployedHookAddress, type IgpHookConfig } from '@humanode-hyperlane/provider-sdk/hook';
4
+ import { type CosmosNativeSigner } from '../clients/signer.js';
5
+ import { type AnnotatedEncodeObject } from '../utils/types.js';
6
+ import { type CosmosHookQueryClient } from './hook-query.js';
7
+ /**
8
+ * Reader for Cosmos IGP (Interchain Gas Paymaster) Hook.
9
+ * Reads deployed IGP hook configuration from the chain.
10
+ */
11
+ export declare class CosmosIgpHookReader implements ArtifactReader<IgpHookConfig, DeployedHookAddress> {
12
+ protected readonly query: CosmosHookQueryClient;
13
+ constructor(query: CosmosHookQueryClient);
14
+ read(address: string): Promise<ArtifactDeployed<IgpHookConfig, DeployedHookAddress>>;
15
+ }
16
+ /**
17
+ * Writer for Cosmos IGP (Interchain Gas Paymaster) Hook.
18
+ * Handles deployment and updates of IGP hooks.
19
+ */
20
+ export declare class CosmosIgpHookWriter extends CosmosIgpHookReader implements ArtifactWriter<IgpHookConfig, DeployedHookAddress> {
21
+ private readonly signer;
22
+ private readonly denom;
23
+ constructor(query: CosmosHookQueryClient, signer: CosmosNativeSigner, denom: string);
24
+ create(artifact: ArtifactNew<IgpHookConfig>): Promise<[
25
+ ArtifactDeployed<IgpHookConfig, DeployedHookAddress>,
26
+ DeliverTxResponse[]
27
+ ]>;
28
+ update(artifact: ArtifactDeployed<IgpHookConfig, DeployedHookAddress>): Promise<AnnotatedEncodeObject[]>;
29
+ }
30
+ //# sourceMappingURL=igp-hook.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"igp-hook.d.ts","sourceRoot":"","sources":["../../src/hook/igp-hook.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAG1D,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAChB,KAAK,cAAc,EAEnB,KAAK,cAAc,EACpB,MAAM,2CAA2C,CAAC;AACnD,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,aAAa,EACnB,MAAM,uCAAuC,CAAC;AAG/C,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE/D,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAE/D,OAAO,EAAE,KAAK,qBAAqB,EAAoB,MAAM,iBAAiB,CAAC;AAO/E;;;GAGG;AACH,qBAAa,mBAAoB,YAAW,cAAc,CACxD,aAAa,EACb,mBAAmB,CACpB;IACa,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,qBAAqB;gBAA5B,KAAK,EAAE,qBAAqB;IAErD,IAAI,CACR,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,gBAAgB,CAAC,aAAa,EAAE,mBAAmB,CAAC,CAAC;CAwCjE;AAED;;;GAGG;AACH,qBAAa,mBACX,SAAQ,mBACR,YAAW,cAAc,CAAC,aAAa,EAAE,mBAAmB,CAAC;IAI3D,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,KAAK;gBAFtB,KAAK,EAAE,qBAAqB,EACX,MAAM,EAAE,kBAAkB,EAC1B,KAAK,EAAE,MAAM;IAK1B,MAAM,CACV,QAAQ,EAAE,WAAW,CAAC,aAAa,CAAC,GACnC,OAAO,CACR;QAAC,gBAAgB,CAAC,aAAa,EAAE,mBAAmB,CAAC;QAAE,iBAAiB,EAAE;KAAC,CAC5E;IA6DK,MAAM,CACV,QAAQ,EAAE,gBAAgB,CAAC,aAAa,EAAE,mBAAmB,CAAC,GAC7D,OAAO,CAAC,qBAAqB,EAAE,CAAC;CA4DpC"}
@@ -0,0 +1,150 @@
1
+ import { AltVM } from '@humanode-hyperlane/provider-sdk';
2
+ import { ArtifactState, } from '@humanode-hyperlane/provider-sdk/artifact';
3
+ import { eqAddressCosmos } from '@humanode-hyperlane/utils';
4
+ import { getNewContractAddress } from '../utils/base.js';
5
+ import { getIgpHookConfig } from './hook-query.js';
6
+ import { getCreateIgpTx, getSetIgpDestinationGasConfigTx, getSetIgpOwnerTx, } from './hook-tx.js';
7
+ /**
8
+ * Reader for Cosmos IGP (Interchain Gas Paymaster) Hook.
9
+ * Reads deployed IGP hook configuration from the chain.
10
+ */
11
+ export class CosmosIgpHookReader {
12
+ query;
13
+ constructor(query) {
14
+ this.query = query;
15
+ }
16
+ async read(address) {
17
+ const hookConfig = await getIgpHookConfig(this.query, address);
18
+ // Map Cosmos IGP config to provider-sdk IgpHookConfig format
19
+ const overhead = {};
20
+ const oracleConfig = {};
21
+ for (const [domainId, gasConfig] of Object.entries(hookConfig.destinationGasConfigs)) {
22
+ overhead[domainId] = parseInt(gasConfig.gasOverhead);
23
+ oracleConfig[domainId] = {
24
+ gasPrice: gasConfig.gasOracle.gasPrice,
25
+ tokenExchangeRate: gasConfig.gasOracle.tokenExchangeRate,
26
+ };
27
+ }
28
+ return {
29
+ artifactState: ArtifactState.DEPLOYED,
30
+ config: {
31
+ type: AltVM.HookType.INTERCHAIN_GAS_PAYMASTER,
32
+ owner: hookConfig.owner,
33
+ // Cosmos IGP doesn't have beneficiary and oracleKey in the same way as EVM
34
+ // Setting them to owner as a placeholder
35
+ beneficiary: hookConfig.owner,
36
+ oracleKey: hookConfig.owner,
37
+ overhead,
38
+ oracleConfig,
39
+ },
40
+ deployed: {
41
+ address: hookConfig.address,
42
+ },
43
+ };
44
+ }
45
+ }
46
+ /**
47
+ * Writer for Cosmos IGP (Interchain Gas Paymaster) Hook.
48
+ * Handles deployment and updates of IGP hooks.
49
+ */
50
+ export class CosmosIgpHookWriter extends CosmosIgpHookReader {
51
+ signer;
52
+ denom;
53
+ constructor(query, signer, denom) {
54
+ super(query);
55
+ this.signer = signer;
56
+ this.denom = denom;
57
+ }
58
+ async create(artifact) {
59
+ const { config } = artifact;
60
+ const receipts = [];
61
+ // Create the IGP hook
62
+ const createTx = getCreateIgpTx(this.signer.getSignerAddress(), this.denom);
63
+ const createReceipt = await this.signer.sendAndConfirmTransaction(createTx);
64
+ const address = getNewContractAddress(createReceipt);
65
+ receipts.push(createReceipt);
66
+ // Set destination gas configs for each domain
67
+ for (const [domainId, gasConfig] of Object.entries(config.oracleConfig)) {
68
+ const parsedDomainId = parseInt(domainId);
69
+ const setConfigTx = getSetIgpDestinationGasConfigTx(this.signer.getSignerAddress(), {
70
+ igpAddress: address,
71
+ destinationGasConfig: {
72
+ remoteDomainId: parsedDomainId,
73
+ gasOracle: {
74
+ tokenExchangeRate: gasConfig.tokenExchangeRate,
75
+ gasPrice: gasConfig.gasPrice,
76
+ },
77
+ gasOverhead: config.overhead[parsedDomainId]?.toString() || '0',
78
+ },
79
+ });
80
+ const configReceipt = await this.signer.sendAndConfirmTransaction(setConfigTx);
81
+ receipts.push(configReceipt);
82
+ }
83
+ // Transfer ownership if needed (deployer is initial owner)
84
+ const deployerAddress = this.signer.getSignerAddress();
85
+ if (!eqAddressCosmos(artifact.config.owner, deployerAddress)) {
86
+ const ownerTx = getSetIgpOwnerTx(deployerAddress, {
87
+ igpAddress: address,
88
+ newOwner: artifact.config.owner,
89
+ });
90
+ const ownerReceipt = await this.signer.sendAndConfirmTransaction(ownerTx);
91
+ receipts.push(ownerReceipt);
92
+ }
93
+ const deployedArtifact = {
94
+ artifactState: ArtifactState.DEPLOYED,
95
+ config: artifact.config,
96
+ deployed: {
97
+ address,
98
+ },
99
+ };
100
+ return [deployedArtifact, receipts];
101
+ }
102
+ async update(artifact) {
103
+ const { config, deployed } = artifact;
104
+ const updateTxs = [];
105
+ // Read current state
106
+ const currentState = await this.read(deployed.address);
107
+ // This is the address that has to execute the update transactions
108
+ const currentOwnerAddress = currentState.config.owner;
109
+ // Update destination gas configs
110
+ for (const [domainId, gasConfig] of Object.entries(config.oracleConfig)) {
111
+ const parsedDomainId = parseInt(domainId);
112
+ const currentGasConfig = currentState.config.oracleConfig[parsedDomainId];
113
+ const needsUpdate = !currentGasConfig ||
114
+ currentGasConfig.tokenExchangeRate !== gasConfig.tokenExchangeRate ||
115
+ currentGasConfig.gasPrice !== gasConfig.gasPrice ||
116
+ currentState.config.overhead[parsedDomainId] !==
117
+ config.overhead[parsedDomainId];
118
+ if (needsUpdate) {
119
+ const setConfigTx = getSetIgpDestinationGasConfigTx(currentOwnerAddress, {
120
+ igpAddress: deployed.address,
121
+ destinationGasConfig: {
122
+ remoteDomainId: parsedDomainId,
123
+ gasOracle: {
124
+ tokenExchangeRate: gasConfig.tokenExchangeRate,
125
+ gasPrice: gasConfig.gasPrice,
126
+ },
127
+ gasOverhead: config.overhead[parsedDomainId]?.toString() || '0',
128
+ },
129
+ });
130
+ updateTxs.push({
131
+ annotation: `Setting destination gas config for domain ${domainId}`,
132
+ ...setConfigTx,
133
+ });
134
+ }
135
+ }
136
+ // Check if owner needs to be updated
137
+ if (!eqAddressCosmos(currentState.config.owner, config.owner)) {
138
+ const setOwnerTx = getSetIgpOwnerTx(currentOwnerAddress, {
139
+ igpAddress: deployed.address,
140
+ newOwner: config.owner,
141
+ });
142
+ updateTxs.push({
143
+ annotation: `Setting IGP hook owner to ${artifact.config.owner}`,
144
+ ...setOwnerTx,
145
+ });
146
+ }
147
+ return updateTxs;
148
+ }
149
+ }
150
+ //# sourceMappingURL=igp-hook.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"igp-hook.js","sourceRoot":"","sources":["../../src/hook/igp-hook.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ import { type DeliverTxResponse } from '@cosmjs/stargate';
2
+ import { type ArtifactDeployed, type ArtifactNew, type ArtifactReader, type ArtifactWriter } from '@humanode-hyperlane/provider-sdk/artifact';
3
+ import { type DeployedHookAddress, type MerkleTreeHookConfig } from '@humanode-hyperlane/provider-sdk/hook';
4
+ import { type CosmosNativeSigner } from '../clients/signer.js';
5
+ import { type AnnotatedEncodeObject } from '../utils/types.js';
6
+ import { type CosmosHookQueryClient } from './hook-query.js';
7
+ /**
8
+ * Reader for Cosmos MerkleTree Hook.
9
+ * Reads deployed MerkleTree hook configuration from the chain.
10
+ * MerkleTree hooks are immutable once deployed.
11
+ */
12
+ export declare class CosmosMerkleTreeHookReader implements ArtifactReader<MerkleTreeHookConfig, DeployedHookAddress> {
13
+ private readonly query;
14
+ constructor(query: CosmosHookQueryClient);
15
+ read(address: string): Promise<ArtifactDeployed<MerkleTreeHookConfig, DeployedHookAddress>>;
16
+ }
17
+ /**
18
+ * Writer for Cosmos MerkleTree Hook.
19
+ * Handles deployment of MerkleTree hooks.
20
+ * MerkleTree hooks are immutable, so no update operations are needed.
21
+ */
22
+ export declare class CosmosMerkleTreeHookWriter extends CosmosMerkleTreeHookReader implements ArtifactWriter<MerkleTreeHookConfig, DeployedHookAddress> {
23
+ private readonly signer;
24
+ private readonly mailboxAddress;
25
+ constructor(query: CosmosHookQueryClient, signer: CosmosNativeSigner, mailboxAddress: string);
26
+ create(artifact: ArtifactNew<MerkleTreeHookConfig>): Promise<[
27
+ ArtifactDeployed<MerkleTreeHookConfig, DeployedHookAddress>,
28
+ DeliverTxResponse[]
29
+ ]>;
30
+ update(_artifact: ArtifactDeployed<MerkleTreeHookConfig, DeployedHookAddress>): Promise<AnnotatedEncodeObject[]>;
31
+ }
32
+ //# sourceMappingURL=merkle-tree-hook.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"merkle-tree-hook.d.ts","sourceRoot":"","sources":["../../src/hook/merkle-tree-hook.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAG1D,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAChB,KAAK,cAAc,EAEnB,KAAK,cAAc,EACpB,MAAM,2CAA2C,CAAC;AACnD,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EAC1B,MAAM,uCAAuC,CAAC;AAE/C,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE/D,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAE/D,OAAO,EACL,KAAK,qBAAqB,EAE3B,MAAM,iBAAiB,CAAC;AAGzB;;;;GAIG;AACH,qBAAa,0BAA2B,YAAW,cAAc,CAC/D,oBAAoB,EACpB,mBAAmB,CACpB;IACa,OAAO,CAAC,QAAQ,CAAC,KAAK;gBAAL,KAAK,EAAE,qBAAqB;IAEnD,IAAI,CACR,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,gBAAgB,CAAC,oBAAoB,EAAE,mBAAmB,CAAC,CAAC;CAaxE;AAED;;;;GAIG;AACH,qBAAa,0BACX,SAAQ,0BACR,YAAW,cAAc,CAAC,oBAAoB,EAAE,mBAAmB,CAAC;IAIlE,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,cAAc;gBAF/B,KAAK,EAAE,qBAAqB,EACX,MAAM,EAAE,kBAAkB,EAC1B,cAAc,EAAE,MAAM;IAKnC,MAAM,CACV,QAAQ,EAAE,WAAW,CAAC,oBAAoB,CAAC,GAC1C,OAAO,CACR;QACE,gBAAgB,CAAC,oBAAoB,EAAE,mBAAmB,CAAC;QAC3D,iBAAiB,EAAE;KACpB,CACF;IAuBK,MAAM,CACV,SAAS,EAAE,gBAAgB,CAAC,oBAAoB,EAAE,mBAAmB,CAAC,GACrE,OAAO,CAAC,qBAAqB,EAAE,CAAC;CAIpC"}
@@ -0,0 +1,60 @@
1
+ import { AltVM } from '@humanode-hyperlane/provider-sdk';
2
+ import { ArtifactState, } from '@humanode-hyperlane/provider-sdk/artifact';
3
+ import { getNewContractAddress } from '../utils/base.js';
4
+ import { getMerkleTreeHookConfig, } from './hook-query.js';
5
+ import { getCreateMerkleTreeHookTx } from './hook-tx.js';
6
+ /**
7
+ * Reader for Cosmos MerkleTree Hook.
8
+ * Reads deployed MerkleTree hook configuration from the chain.
9
+ * MerkleTree hooks are immutable once deployed.
10
+ */
11
+ export class CosmosMerkleTreeHookReader {
12
+ query;
13
+ constructor(query) {
14
+ this.query = query;
15
+ }
16
+ async read(address) {
17
+ const hookConfig = await getMerkleTreeHookConfig(this.query, address);
18
+ return {
19
+ artifactState: ArtifactState.DEPLOYED,
20
+ config: {
21
+ type: AltVM.HookType.MERKLE_TREE,
22
+ },
23
+ deployed: {
24
+ address: hookConfig.address,
25
+ },
26
+ };
27
+ }
28
+ }
29
+ /**
30
+ * Writer for Cosmos MerkleTree Hook.
31
+ * Handles deployment of MerkleTree hooks.
32
+ * MerkleTree hooks are immutable, so no update operations are needed.
33
+ */
34
+ export class CosmosMerkleTreeHookWriter extends CosmosMerkleTreeHookReader {
35
+ signer;
36
+ mailboxAddress;
37
+ constructor(query, signer, mailboxAddress) {
38
+ super(query);
39
+ this.signer = signer;
40
+ this.mailboxAddress = mailboxAddress;
41
+ }
42
+ async create(artifact) {
43
+ const createTx = getCreateMerkleTreeHookTx(this.signer.getSignerAddress(), this.mailboxAddress);
44
+ const receipt = await this.signer.sendAndConfirmTransaction(createTx);
45
+ const address = getNewContractAddress(receipt);
46
+ const deployedArtifact = {
47
+ artifactState: ArtifactState.DEPLOYED,
48
+ config: artifact.config,
49
+ deployed: {
50
+ address,
51
+ },
52
+ };
53
+ return [deployedArtifact, [receipt]];
54
+ }
55
+ async update(_artifact) {
56
+ // MerkleTreeHook has no mutable state
57
+ return [];
58
+ }
59
+ }
60
+ //# sourceMappingURL=merkle-tree-hook.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"merkle-tree-hook.js","sourceRoot":"","sources":["../../src/hook/merkle-tree-hook.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,kCAAkC,CAAC;AACzD,OAAO,EAIL,aAAa,GAEd,MAAM,2CAA2C,CAAC;AAOnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAGzD,OAAO,EAEL,uBAAuB,GACxB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC;AAEzD;;;;GAIG;AACH,MAAM,OAAO,0BAA0B;IAIR;IAA7B,YAA6B,KAA4B;QAA5B,UAAK,GAAL,KAAK,CAAuB;IAAG,CAAC;IAE7D,KAAK,CAAC,IAAI,CACR,OAAe;QAEf,MAAM,UAAU,GAAG,MAAM,uBAAuB,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAEtE,OAAO;YACL,aAAa,EAAE,aAAa,CAAC,QAAQ;YACrC,MAAM,EAAE;gBACN,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,WAAW;aACjC;YACD,QAAQ,EAAE;gBACR,OAAO,EAAE,UAAU,CAAC,OAAO;aAC5B;SACF,CAAC;IACJ,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,OAAO,0BACX,SAAQ,0BAA0B;IAKf;IACA;IAHnB,YACE,KAA4B,EACX,MAA0B,EAC1B,cAAsB;QAEvC,KAAK,CAAC,KAAK,CAAC,CAAC;QAHI,WAAM,GAAN,MAAM,CAAoB;QAC1B,mBAAc,GAAd,cAAc,CAAQ;IAGzC,CAAC;IAED,KAAK,CAAC,MAAM,CACV,QAA2C;QAO3C,MAAM,QAAQ,GAAG,yBAAyB,CACxC,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,EAC9B,IAAI,CAAC,cAAc,CACpB,CAAC;QAEF,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,yBAAyB,CAAC,QAAQ,CAAC,CAAC;QACtE,MAAM,OAAO,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC;QAE/C,MAAM,gBAAgB,GAGlB;YACF,aAAa,EAAE,aAAa,CAAC,QAAQ;YACrC,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,QAAQ,EAAE;gBACR,OAAO;aACR;SACF,CAAC;QAEF,OAAO,CAAC,gBAAgB,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,MAAM,CACV,SAAsE;QAEtE,sCAAsC;QACtC,OAAO,EAAE,CAAC;IACZ,CAAC;CACF"}
@@ -0,0 +1,16 @@
1
+ import { type EncodeObject } from '@cosmjs/proto-signing';
2
+ import { type coreTx } from '@humanode-hyperlane/cosmos-types';
3
+ import { type COSMOS_MODULE_MESSAGE_REGISTRY as R } from '../../registry.js';
4
+ export interface MsgCreateMailboxEncodeObject extends EncodeObject {
5
+ readonly typeUrl: typeof R.MsgCreateMailbox.proto.type;
6
+ readonly value: Partial<coreTx.MsgCreateMailbox>;
7
+ }
8
+ export interface MsgSetMailboxEncodeObject extends EncodeObject {
9
+ readonly typeUrl: typeof R.MsgSetMailbox.proto.type;
10
+ readonly value: Partial<coreTx.MsgSetMailbox>;
11
+ }
12
+ export interface MsgProcessMessageEncodeObject extends EncodeObject {
13
+ readonly typeUrl: typeof R.MsgProcessMessage.proto.type;
14
+ readonly value: Partial<coreTx.MsgProcessMessage>;
15
+ }
16
+ //# sourceMappingURL=messages.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../../src/hyperlane/core/messages.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAE1D,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,kCAAkC,CAAC;AAE/D,OAAO,EAAE,KAAK,8BAA8B,IAAI,CAAC,EAAE,MAAM,mBAAmB,CAAC;AAE7E,MAAM,WAAW,4BAA6B,SAAQ,YAAY;IAChE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC;IACvD,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;CAClD;AAED,MAAM,WAAW,yBAA0B,SAAQ,YAAY;IAC7D,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC;IACpD,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;CAC/C;AAED,MAAM,WAAW,6BAA8B,SAAQ,YAAY;IACjE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC;IACxD,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;CACnD"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=messages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messages.js","sourceRoot":"","sources":["../../../src/hyperlane/core/messages.ts"],"names":[],"mappings":""}
@@ -0,0 +1,18 @@
1
+ import { type QueryClient } from '@cosmjs/stargate';
2
+ import { coreQuery } from '@humanode-hyperlane/cosmos-types';
3
+ export interface CoreExtension {
4
+ readonly core: {
5
+ /** Mailboxes ... */
6
+ readonly Mailboxes: (req: coreQuery.QueryMailboxesRequest) => Promise<coreQuery.QueryMailboxesResponse>;
7
+ /** Mailbox ... */
8
+ readonly Mailbox: (req: coreQuery.QueryMailboxRequest) => Promise<coreQuery.QueryMailboxResponse>;
9
+ /** Delivered ... */
10
+ readonly Delivered: (req: coreQuery.QueryDeliveredRequest) => Promise<coreQuery.QueryDeliveredResponse>;
11
+ /** RecipientIsm ... */
12
+ readonly RecipientIsm: (req: coreQuery.QueryRecipientIsmRequest) => Promise<coreQuery.QueryRecipientIsmResponse>;
13
+ /** VerifyDryRun ... */
14
+ readonly VerifyDryRun: (req: coreQuery.QueryVerifyDryRunRequest) => Promise<coreQuery.QueryVerifyDryRunResponse>;
15
+ };
16
+ }
17
+ export declare function setupCoreExtension(base: QueryClient): CoreExtension;
18
+ //# sourceMappingURL=query.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../../src/hyperlane/core/query.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAA2B,MAAM,kBAAkB,CAAC;AAE7E,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAE7D,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE;QACb,oBAAoB;QACpB,QAAQ,CAAC,SAAS,EAAE,CAClB,GAAG,EAAE,SAAS,CAAC,qBAAqB,KACjC,OAAO,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC;QAC/C,kBAAkB;QAClB,QAAQ,CAAC,OAAO,EAAE,CAChB,GAAG,EAAE,SAAS,CAAC,mBAAmB,KAC/B,OAAO,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;QAC7C,oBAAoB;QACpB,QAAQ,CAAC,SAAS,EAAE,CAClB,GAAG,EAAE,SAAS,CAAC,qBAAqB,KACjC,OAAO,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC;QAC/C,uBAAuB;QACvB,QAAQ,CAAC,YAAY,EAAE,CACrB,GAAG,EAAE,SAAS,CAAC,wBAAwB,KACpC,OAAO,CAAC,SAAS,CAAC,yBAAyB,CAAC,CAAC;QAClD,uBAAuB;QACvB,QAAQ,CAAC,YAAY,EAAE,CACrB,GAAG,EAAE,SAAS,CAAC,wBAAwB,KACpC,OAAO,CAAC,SAAS,CAAC,yBAAyB,CAAC,CAAC;KACnD,CAAC;CACH;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,WAAW,GAAG,aAAa,CAoBnE"}
@@ -0,0 +1,18 @@
1
+ import { createProtobufRpcClient } from '@cosmjs/stargate';
2
+ import { coreQuery } from '@humanode-hyperlane/cosmos-types';
3
+ export function setupCoreExtension(base) {
4
+ const rpc = createProtobufRpcClient(base);
5
+ // Use this service to get easy typed access to query methods
6
+ // This cannot be used for proof verification
7
+ const queryService = new coreQuery.QueryClientImpl(rpc);
8
+ return {
9
+ core: {
10
+ Mailboxes: (req) => queryService.Mailboxes(req),
11
+ Mailbox: (req) => queryService.Mailbox(req),
12
+ Delivered: (req) => queryService.Delivered(req),
13
+ RecipientIsm: (req) => queryService.RecipientIsm(req),
14
+ VerifyDryRun: (req) => queryService.VerifyDryRun(req),
15
+ },
16
+ };
17
+ }
18
+ //# sourceMappingURL=query.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query.js","sourceRoot":"","sources":["../../../src/hyperlane/core/query.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAE7E,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AA2B7D,MAAM,UAAU,kBAAkB,CAAC,IAAiB;IAClD,MAAM,GAAG,GAAG,uBAAuB,CAAC,IAAI,CAAC,CAAC;IAC1C,6DAA6D;IAC7D,6CAA6C;IAE7C,MAAM,YAAY,GAAG,IAAI,SAAS,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;IACxD,OAAO;QACL,IAAI,EAAE;YACJ,SAAS,EAAE,CAAC,GAAoC,EAAE,EAAE,CAClD,YAAY,CAAC,SAAS,CAAC,GAAG,CAAC;YAC7B,OAAO,EAAE,CAAC,GAAkC,EAAE,EAAE,CAC9C,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC;YAC3B,SAAS,EAAE,CAAC,GAAoC,EAAE,EAAE,CAClD,YAAY,CAAC,SAAS,CAAC,GAAG,CAAC;YAC7B,YAAY,EAAE,CAAC,GAAuC,EAAE,EAAE,CACxD,YAAY,CAAC,YAAY,CAAC,GAAG,CAAC;YAChC,YAAY,EAAE,CAAC,GAAuC,EAAE,EAAE,CACxD,YAAY,CAAC,YAAY,CAAC,GAAG,CAAC;SACjC;KACF,CAAC;AACJ,CAAC"}