@recoillink/cosmos-sdk 0.0.0-stage → 45.0.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 +26 -0
  4. package/dist/clients/protocol.d.ts.map +1 -0
  5. package/dist/clients/protocol.js +72 -0
  6. package/dist/clients/protocol.js.map +1 -0
  7. package/dist/clients/provider.d.ts +34 -0
  8. package/dist/clients/provider.d.ts.map +1 -0
  9. package/dist/clients/provider.js +220 -0
  10. package/dist/clients/provider.js.map +1 -0
  11. package/dist/clients/signer.d.ts +25 -0
  12. package/dist/clients/signer.d.ts.map +1 -0
  13. package/dist/clients/signer.js +92 -0
  14. package/dist/clients/signer.js.map +1 -0
  15. package/dist/clients/stargate.d.ts +15 -0
  16. package/dist/clients/stargate.d.ts.map +1 -0
  17. package/dist/clients/stargate.js +81 -0
  18. package/dist/clients/stargate.js.map +1 -0
  19. package/dist/hook/hook-artifact-manager.d.ts +72 -0
  20. package/dist/hook/hook-artifact-manager.d.ts.map +1 -0
  21. package/dist/hook/hook-artifact-manager.js +139 -0
  22. package/dist/hook/hook-artifact-manager.js.map +1 -0
  23. package/dist/hook/hook-query.d.ts +42 -0
  24. package/dist/hook/hook-query.d.ts.map +1 -0
  25. package/dist/hook/hook-query.js +95 -0
  26. package/dist/hook/hook-query.js.map +1 -0
  27. package/dist/hook/hook-tx.d.ts +47 -0
  28. package/dist/hook/hook-tx.d.ts.map +1 -0
  29. package/dist/hook/hook-tx.js +76 -0
  30. package/dist/hook/hook-tx.js.map +1 -0
  31. package/dist/hook/igp-hook.d.ts +30 -0
  32. package/dist/hook/igp-hook.d.ts.map +1 -0
  33. package/dist/hook/igp-hook.js +150 -0
  34. package/dist/hook/igp-hook.js.map +1 -0
  35. package/dist/hook/merkle-tree-hook.d.ts +32 -0
  36. package/dist/hook/merkle-tree-hook.d.ts.map +1 -0
  37. package/dist/hook/merkle-tree-hook.js +60 -0
  38. package/dist/hook/merkle-tree-hook.js.map +1 -0
  39. package/dist/hyperlane/core/messages.d.ts +16 -0
  40. package/dist/hyperlane/core/messages.d.ts.map +1 -0
  41. package/dist/hyperlane/core/messages.js +2 -0
  42. package/dist/hyperlane/core/messages.js.map +1 -0
  43. package/dist/hyperlane/core/query.d.ts +18 -0
  44. package/dist/hyperlane/core/query.d.ts.map +1 -0
  45. package/dist/hyperlane/core/query.js +18 -0
  46. package/dist/hyperlane/core/query.js.map +1 -0
  47. package/dist/hyperlane/interchain_security/messages.d.ts +36 -0
  48. package/dist/hyperlane/interchain_security/messages.d.ts.map +1 -0
  49. package/dist/hyperlane/interchain_security/messages.js +2 -0
  50. package/dist/hyperlane/interchain_security/messages.js.map +1 -0
  51. package/dist/hyperlane/interchain_security/query.d.ts +36 -0
  52. package/dist/hyperlane/interchain_security/query.d.ts.map +1 -0
  53. package/dist/hyperlane/interchain_security/query.js +49 -0
  54. package/dist/hyperlane/interchain_security/query.js.map +1 -0
  55. package/dist/hyperlane/post_dispatch/messages.d.ts +32 -0
  56. package/dist/hyperlane/post_dispatch/messages.d.ts.map +1 -0
  57. package/dist/hyperlane/post_dispatch/messages.js +2 -0
  58. package/dist/hyperlane/post_dispatch/messages.js.map +1 -0
  59. package/dist/hyperlane/post_dispatch/query.d.ts +24 -0
  60. package/dist/hyperlane/post_dispatch/query.d.ts.map +1 -0
  61. package/dist/hyperlane/post_dispatch/query.js +21 -0
  62. package/dist/hyperlane/post_dispatch/query.js.map +1 -0
  63. package/dist/hyperlane/warp/messages.d.ts +28 -0
  64. package/dist/hyperlane/warp/messages.d.ts.map +1 -0
  65. package/dist/hyperlane/warp/messages.js +2 -0
  66. package/dist/hyperlane/warp/messages.js.map +1 -0
  67. package/dist/hyperlane/warp/query.d.ts +18 -0
  68. package/dist/hyperlane/warp/query.d.ts.map +1 -0
  69. package/dist/hyperlane/warp/query.js +16 -0
  70. package/dist/hyperlane/warp/query.js.map +1 -0
  71. package/dist/index.d.ts +31 -0
  72. package/dist/index.d.ts.map +1 -0
  73. package/dist/index.js +37 -0
  74. package/dist/index.js.map +1 -0
  75. package/dist/ism/ism-artifact-manager.d.ts +69 -0
  76. package/dist/ism/ism-artifact-manager.d.ts.map +1 -0
  77. package/dist/ism/ism-artifact-manager.js +146 -0
  78. package/dist/ism/ism-artifact-manager.js.map +1 -0
  79. package/dist/ism/ism-query.d.ts +71 -0
  80. package/dist/ism/ism-query.d.ts.map +1 -0
  81. package/dist/ism/ism-query.js +133 -0
  82. package/dist/ism/ism-query.js.map +1 -0
  83. package/dist/ism/ism-tx.d.ts +30 -0
  84. package/dist/ism/ism-tx.d.ts.map +1 -0
  85. package/dist/ism/ism-tx.js +76 -0
  86. package/dist/ism/ism-tx.js.map +1 -0
  87. package/dist/ism/multisig-ism.d.ts +51 -0
  88. package/dist/ism/multisig-ism.d.ts.map +1 -0
  89. package/dist/ism/multisig-ism.js +120 -0
  90. package/dist/ism/multisig-ism.js.map +1 -0
  91. package/dist/ism/routing-ism.d.ts +30 -0
  92. package/dist/ism/routing-ism.d.ts.map +1 -0
  93. package/dist/ism/routing-ism.js +137 -0
  94. package/dist/ism/routing-ism.js.map +1 -0
  95. package/dist/ism/test-ism.d.ts +29 -0
  96. package/dist/ism/test-ism.d.ts.map +1 -0
  97. package/dist/ism/test-ism.js +56 -0
  98. package/dist/ism/test-ism.js.map +1 -0
  99. package/dist/mailbox/mailbox-artifact-manager.d.ts +48 -0
  100. package/dist/mailbox/mailbox-artifact-manager.d.ts.map +1 -0
  101. package/dist/mailbox/mailbox-artifact-manager.js +82 -0
  102. package/dist/mailbox/mailbox-artifact-manager.js.map +1 -0
  103. package/dist/mailbox/mailbox-query.d.ts +12 -0
  104. package/dist/mailbox/mailbox-query.d.ts.map +1 -0
  105. package/dist/mailbox/mailbox-query.js +29 -0
  106. package/dist/mailbox/mailbox-query.js.map +1 -0
  107. package/dist/mailbox/mailbox-tx.d.ts +37 -0
  108. package/dist/mailbox/mailbox-tx.d.ts.map +1 -0
  109. package/dist/mailbox/mailbox-tx.js +68 -0
  110. package/dist/mailbox/mailbox-tx.js.map +1 -0
  111. package/dist/mailbox/mailbox.d.ts +30 -0
  112. package/dist/mailbox/mailbox.d.ts.map +1 -0
  113. package/dist/mailbox/mailbox.js +168 -0
  114. package/dist/mailbox/mailbox.js.map +1 -0
  115. package/dist/registry.d.ts +21 -0
  116. package/dist/registry.d.ts.map +1 -0
  117. package/dist/registry.js +373 -0
  118. package/dist/registry.js.map +1 -0
  119. package/dist/runtime.d.ts +5 -0
  120. package/dist/runtime.d.ts.map +1 -0
  121. package/dist/runtime.js +4 -0
  122. package/dist/runtime.js.map +1 -0
  123. package/dist/testing/constants.d.ts +10 -0
  124. package/dist/testing/constants.d.ts.map +1 -0
  125. package/dist/testing/constants.js +34 -0
  126. package/dist/testing/constants.js.map +1 -0
  127. package/dist/testing/index.d.ts +8 -0
  128. package/dist/testing/index.d.ts.map +1 -0
  129. package/dist/testing/index.js +10 -0
  130. package/dist/testing/index.js.map +1 -0
  131. package/dist/testing/node.d.ts +4 -0
  132. package/dist/testing/node.d.ts.map +1 -0
  133. package/dist/testing/node.js +35 -0
  134. package/dist/testing/node.js.map +1 -0
  135. package/dist/testing/utils.d.ts +11 -0
  136. package/dist/testing/utils.d.ts.map +1 -0
  137. package/dist/testing/utils.js +21 -0
  138. package/dist/testing/utils.js.map +1 -0
  139. package/dist/tests/5_warp_artifact.e2e-test.d.ts +2 -0
  140. package/dist/tests/5_warp_artifact.e2e-test.d.ts.map +1 -0
  141. package/dist/tests/5_warp_artifact.e2e-test.js +554 -0
  142. package/dist/tests/5_warp_artifact.e2e-test.js.map +1 -0
  143. package/dist/tests/e2e-test.setup.d.ts +2 -0
  144. package/dist/tests/e2e-test.setup.d.ts.map +1 -0
  145. package/dist/tests/e2e-test.setup.js +13 -0
  146. package/dist/tests/e2e-test.setup.js.map +1 -0
  147. package/dist/tests/hooks.e2e-test.d.ts +2 -0
  148. package/dist/tests/hooks.e2e-test.d.ts.map +1 -0
  149. package/dist/tests/hooks.e2e-test.js +350 -0
  150. package/dist/tests/hooks.e2e-test.js.map +1 -0
  151. package/dist/tests/ism.e2e-test.d.ts +2 -0
  152. package/dist/tests/ism.e2e-test.d.ts.map +1 -0
  153. package/dist/tests/ism.e2e-test.js +249 -0
  154. package/dist/tests/ism.e2e-test.js.map +1 -0
  155. package/dist/tests/mailbox.e2e-test.d.ts +2 -0
  156. package/dist/tests/mailbox.e2e-test.d.ts.map +1 -0
  157. package/dist/tests/mailbox.e2e-test.js +356 -0
  158. package/dist/tests/mailbox.e2e-test.js.map +1 -0
  159. package/dist/tests/warp-deploy-gas.unit-test.d.ts +2 -0
  160. package/dist/tests/warp-deploy-gas.unit-test.d.ts.map +1 -0
  161. package/dist/tests/warp-deploy-gas.unit-test.js +44 -0
  162. package/dist/tests/warp-deploy-gas.unit-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 +103 -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 +73 -3
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/clients/provider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import { type AccountData, type EncodeObject, type OfflineSigner } from '@cosmjs/proto-signing';
2
+ import { type DeliverTxResponse, SigningStargateClient, type StdFee } from '@cosmjs/stargate';
3
+ import { type CometClient } from '@cosmjs/tendermint-rpc';
4
+ import { type AltVM } from '@recoillink/provider-sdk';
5
+ import type { ChainMetadataForAltVM } from '@recoillink/provider-sdk/chain';
6
+ import { CosmosNativeProvider } from './provider.js';
7
+ type TxOptions = {
8
+ fee: StdFee | 'auto' | number;
9
+ memo?: string;
10
+ };
11
+ export declare class CosmosNativeSigner extends CosmosNativeProvider implements AltVM.ISigner<EncodeObject, DeliverTxResponse> {
12
+ private readonly signer;
13
+ private readonly account;
14
+ private readonly options;
15
+ static connectWithSigner(metadata: ChainMetadataForAltVM, privateKey: string | OfflineSigner): Promise<CosmosNativeSigner>;
16
+ protected constructor(cometClient: CometClient, signer: SigningStargateClient, account: AccountData, rpcUrls: [string, ...string[]], chainMetadata: ChainMetadataForAltVM, options: TxOptions);
17
+ getSignerAddress(): string;
18
+ disconnect(): void;
19
+ supportsTransactionBatching(): boolean;
20
+ transactionToPrintableJson(transaction: EncodeObject): Promise<object>;
21
+ sendAndConfirmTransaction(transaction: EncodeObject): Promise<DeliverTxResponse>;
22
+ sendAndConfirmBatchTransactions(transactions: EncodeObject[]): Promise<DeliverTxResponse>;
23
+ }
24
+ export {};
25
+ //# sourceMappingURL=signer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signer.d.ts","sourceRoot":"","sources":["../../src/clients/signer.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,WAAW,EAGhB,KAAK,YAAY,EACjB,KAAK,aAAa,EACnB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAEL,KAAK,iBAAiB,EAEtB,qBAAqB,EACrB,KAAK,MAAM,EAEZ,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,KAAK,WAAW,EAAgB,MAAM,wBAAwB,CAAC;AAExE,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAK5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAErD,KAAK,SAAS,GAAG;IACf,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,qBAAa,kBACX,SAAQ,oBACR,YAAW,KAAK,CAAC,OAAO,CAAC,YAAY,EAAE,iBAAiB,CAAC;IAEzD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAwB;IAC/C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAc;IACtC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAY;IAEpC,OAAa,iBAAiB,CAC5B,QAAQ,EAAE,qBAAqB,EAC/B,UAAU,EAAE,MAAM,GAAG,aAAa,GACjC,OAAO,CAAC,kBAAkB,CAAC,CAqF7B;IAED,SAAS,aACP,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,qBAAqB,EAC7B,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,EAC9B,aAAa,EAAE,qBAAqB,EACpC,OAAO,EAAE,SAAS,EAMnB;IAED,gBAAgB,IAAI,MAAM,CAEzB;IAEQ,UAAU,IAAI,IAAI,CAG1B;IAED,2BAA2B,IAAI,OAAO,CAErC;IAEK,0BAA0B,CAAC,WAAW,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAE3E;IAEK,yBAAyB,CAC7B,WAAW,EAAE,YAAY,GACxB,OAAO,CAAC,iBAAiB,CAAC,CAU5B;IAEK,+BAA+B,CACnC,YAAY,EAAE,YAAY,EAAE,GAC3B,OAAO,CAAC,iBAAiB,CAAC,CAU5B;CACF"}
@@ -0,0 +1,92 @@
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 '@recoillink/utils';
5
+ import { COSMOS_MODULE_MESSAGE_REGISTRY as R } from '../registry.js';
6
+ import { CosmosNativeProvider } from './provider.js';
7
+ export class CosmosNativeSigner extends CosmosNativeProvider {
8
+ signer;
9
+ account;
10
+ options;
11
+ static async connectWithSigner(metadata, privateKey) {
12
+ const rpcUrls = (metadata.rpcUrls ?? []).map((rpc) => rpc.http);
13
+ const [rpcUrl, ...otherRpcUrls] = rpcUrls;
14
+ assert(rpcUrl, `${CosmosNativeSigner.name} got no rpcUrls`);
15
+ assert(rpcUrls.every((rpc) => isUrl(rpc)), `invalid rpc urls: ${rpcUrls.join(', ')}`);
16
+ assert(metadata.gasPrice, `gasPrice not defined in chain metadata`);
17
+ let wallet;
18
+ if (typeof privateKey === 'string') {
19
+ assert(metadata.bech32Prefix, `bech32Prefix not defined in chain metadata`);
20
+ const isPrivateKey = new RegExp(/(^|\b)(0x)?[0-9a-fA-F]{64}(\b|$)/).test(privateKey);
21
+ if (isPrivateKey) {
22
+ wallet = await DirectSecp256k1Wallet.fromKey(new Uint8Array(Buffer.from(strip0x(privateKey), 'hex')), metadata.bech32Prefix);
23
+ }
24
+ else {
25
+ wallet = await DirectSecp256k1HdWallet.fromMnemonic(privateKey, {
26
+ prefix: metadata.bech32Prefix,
27
+ });
28
+ }
29
+ }
30
+ else {
31
+ wallet = privateKey;
32
+ }
33
+ // register all the custom amino tx types
34
+ const aminoTypes = Object.values(R)
35
+ .filter((r) => !!r.amino?.type) // filter out tx responses which have no amino type
36
+ .reduce((types, { proto, amino }) => ({
37
+ ...types,
38
+ [proto.type]: {
39
+ aminoType: amino?.type,
40
+ toAmino: amino?.converter?.toJSON ?? proto.converter.toJSON,
41
+ fromAmino: amino?.converter?.fromJSON ?? proto.converter.fromJSON,
42
+ },
43
+ }), {});
44
+ const signer = await SigningStargateClient.connectWithSigner(rpcUrl, wallet, {
45
+ aminoTypes: new AminoTypes({
46
+ ...aminoTypes,
47
+ }),
48
+ gasPrice: GasPrice.fromString(`${metadata.gasPrice.amount}${metadata.gasPrice.denom}`),
49
+ });
50
+ // register all the custom tx types
51
+ Object.values(R).forEach(({ proto }) => {
52
+ signer.registry.register(proto.type, proto.converter);
53
+ });
54
+ const cometClient = await connectComet(rpcUrl);
55
+ const [account] = await wallet.getAccounts();
56
+ assert(account, 'Expected to retrieve at least one account');
57
+ return new CosmosNativeSigner(cometClient, signer, account, [rpcUrl, ...otherRpcUrls], metadata, {
58
+ fee: 2,
59
+ memo: '',
60
+ });
61
+ }
62
+ constructor(cometClient, signer, account, rpcUrls, chainMetadata, options) {
63
+ super(cometClient, rpcUrls, chainMetadata);
64
+ this.signer = signer;
65
+ this.account = account;
66
+ this.options = options;
67
+ }
68
+ getSignerAddress() {
69
+ return this.account.address;
70
+ }
71
+ disconnect() {
72
+ super.disconnect();
73
+ this.signer.disconnect();
74
+ }
75
+ supportsTransactionBatching() {
76
+ return true;
77
+ }
78
+ async transactionToPrintableJson(transaction) {
79
+ return transaction;
80
+ }
81
+ async sendAndConfirmTransaction(transaction) {
82
+ const receipt = await this.signer.signAndBroadcast(this.account.address, [transaction], this.options.fee, this.options.memo);
83
+ assertIsDeliverTxSuccess(receipt);
84
+ return receipt;
85
+ }
86
+ async sendAndConfirmBatchTransactions(transactions) {
87
+ const receipt = await this.signer.signAndBroadcast(this.account.address, transactions, this.options.fee, this.options.memo);
88
+ assertIsDeliverTxSuccess(receipt);
89
+ return receipt;
90
+ }
91
+ }
92
+ //# 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,15 @@
1
+ import { StargateClient } from '@cosmjs/stargate';
2
+ export declare function shouldCacheStargateClient(url: string): boolean;
3
+ export declare function disconnectStargateClient(client: Promise<StargateClient>): void;
4
+ export declare class StargateClientCache {
5
+ private readonly maxSize;
6
+ private readonly clients;
7
+ private readonly entries;
8
+ constructor(maxSize: number);
9
+ get(url: string): Promise<StargateClient>;
10
+ evict(url: string, client?: Promise<StargateClient>): void;
11
+ release(client: Promise<StargateClient>): void;
12
+ clear(): void;
13
+ private disconnectIfIdle;
14
+ }
15
+ //# sourceMappingURL=stargate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stargate.d.ts","sourceRoot":"","sources":["../../src/clients/stargate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAIlD,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAE9D;AAED,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,OAAO,CAAC,cAAc,CAAC,GAC9B,IAAI,CAMN;AAQD,qBAAa,mBAAmB;IAOlB,OAAO,CAAC,QAAQ,CAAC,OAAO;IANpC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA+C;IACvE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAGpB;IAEJ,YAA6B,OAAO,EAAE,MAAM,EAAI;IAEhD,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CA8BxC;IAED,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,IAAI,CAOzD;IAED,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,IAAI,CAM7C;IAED,KAAK,IAAI,IAAI,CAMZ;IAED,OAAO,CAAC,gBAAgB;CAMzB"}
@@ -0,0 +1,81 @@
1
+ import { StargateClient } from '@cosmjs/stargate';
2
+ import { rootLogger } from '@recoillink/utils';
3
+ export function shouldCacheStargateClient(url) {
4
+ return !url.startsWith('ws://') && !url.startsWith('wss://');
5
+ }
6
+ export function disconnectStargateClient(client) {
7
+ void client
8
+ .then((stargateClient) => stargateClient.disconnect())
9
+ .catch((error) => {
10
+ rootLogger.debug({ error }, 'Failed to disconnect Stargate client');
11
+ });
12
+ }
13
+ export class StargateClientCache {
14
+ maxSize;
15
+ clients = new Map();
16
+ entries = new Map();
17
+ constructor(maxSize) {
18
+ this.maxSize = maxSize;
19
+ }
20
+ get(url) {
21
+ if (!shouldCacheStargateClient(url))
22
+ return StargateClient.connect(url);
23
+ let entry = this.clients.get(url);
24
+ if (!entry) {
25
+ let pendingEntry;
26
+ const client = StargateClient.connect(url).catch((error) => {
27
+ const entry = pendingEntry;
28
+ entry.evicted = true;
29
+ if (this.clients.get(url) === entry) {
30
+ this.clients.delete(url);
31
+ }
32
+ this.disconnectIfIdle(entry);
33
+ throw error;
34
+ });
35
+ pendingEntry = { client, evicted: false, leases: 0 };
36
+ entry = pendingEntry;
37
+ this.entries.set(client, entry);
38
+ }
39
+ else {
40
+ this.clients.delete(url);
41
+ }
42
+ entry.leases += 1;
43
+ this.clients.set(url, entry);
44
+ while (this.clients.size > this.maxSize) {
45
+ const oldestUrl = this.clients.keys().next().value;
46
+ if (!oldestUrl)
47
+ break;
48
+ this.evict(oldestUrl);
49
+ }
50
+ return entry.client;
51
+ }
52
+ evict(url, client) {
53
+ const entry = this.clients.get(url);
54
+ if (!entry || (client && entry.client !== client))
55
+ return;
56
+ this.clients.delete(url);
57
+ entry.evicted = true;
58
+ this.disconnectIfIdle(entry);
59
+ }
60
+ release(client) {
61
+ const entry = this.entries.get(client);
62
+ if (!entry)
63
+ return;
64
+ entry.leases -= 1;
65
+ this.disconnectIfIdle(entry);
66
+ }
67
+ clear() {
68
+ for (const entry of this.clients.values()) {
69
+ entry.evicted = true;
70
+ this.disconnectIfIdle(entry);
71
+ }
72
+ this.clients.clear();
73
+ }
74
+ disconnectIfIdle(entry) {
75
+ if (!entry.evicted || entry.leases > 0)
76
+ return;
77
+ this.entries.delete(entry.client);
78
+ disconnectStargateClient(entry.client);
79
+ }
80
+ }
81
+ //# sourceMappingURL=stargate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stargate.js","sourceRoot":"","sources":["../../src/clients/stargate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,72 @@
1
+ import { type ArtifactReader, type ArtifactWriter } from '@recoillink/provider-sdk/artifact';
2
+ import { type DeployedHookAddress, type DeployedHookArtifact, type HookType, type IRawHookArtifactManager, type RawHookArtifactConfigs } from '@recoillink/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,mCAAmC,CAAC;AAC3C,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,KAAK,QAAQ,EACb,KAAK,uBAAuB,EAC5B,KAAK,sBAAsB,EAG5B,MAAM,+BAA+B,CAAC;AAGvC,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;IAEjE,YACmB,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,EACC;IAEJ;;;OAGG;IACH,OAAO,CAAC,QAAQ;IAIhB;;OAEG;YACW,WAAW;IAKzB;;;;;OAKG;IACG,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAQ7D;IAED;;;;;OAKG;IACH,YAAY,CAAC,CAAC,SAAS,QAAQ,EAC7B,IAAI,EAAE,CAAC,GACN,cAAc,CAAC,sBAAsB,CAAC,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAShE;IAED;;;;;;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,CAmBhE;IAED;;;;;;;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 '@recoillink/provider-sdk';
4
+ import { altVmHookTypeToProviderHookType, throwUnsupportedHookType, } from '@recoillink/provider-sdk/hook';
5
+ import { LazyAsync, assert } from '@recoillink/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":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEtD,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAKjD,OAAO,EAML,+BAA+B,EAC/B,wBAAwB,GACzB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAGtD,OAAO,EAAE,0BAA0B,EAAE,MAAM,qCAAqC,CAAC;AAEjF,OAAO,EAA8B,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC1E,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACzE,OAAO,EACL,0BAA0B,EAC1B,0BAA0B,GAC3B,MAAM,uBAAuB,CAAC;AAE/B;;;;;;;;;;GAUG;AACH,MAAM,OAAO,yBAAyB;IAIjB,MAAM;IAHR,KAAK,GAAG,IAAI,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;IAEjE,YACmB,MAKhB;sBALgB,MAAM;IAMtB,CAAC;IAEJ;;;OAGG;IACK,QAAQ;QACd,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;IAC1B,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,WAAW;QACvB,MAAM,WAAW,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/D,OAAO,WAAW,CAAC,cAAc,CAAC,WAAW,EAAE,0BAA0B,CAAC,CAAC;IAC7E,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,QAAQ,CAAC,OAAe;QAC5B,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;QACpC,MAAM,SAAS,GAAG,MAAM,WAAW,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACpD,MAAM,MAAM,GAAG,IAAI,CAAC,qBAAqB,CACvC,+BAA+B,CAAC,SAAS,CAAC,EAC1C,KAAK,CACN,CAAC;QACF,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC9B,CAAC;IAED;;;;;OAKG;IACH,YAAY,CACV,IAAO;QAEP,gFAAgF;QAChF,OAAO;YACL,IAAI,EAAE,KAAK,EAAE,OAAe,EAAE,EAAE;gBAC9B,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACpC,MAAM,MAAM,GAAG,IAAI,CAAC,qBAAqB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;gBACvD,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC9B,CAAC;SACuE,CAAC;IAC7E,CAAC;IAED;;;;;;OAMG;IACK,qBAAqB,CAC3B,IAAO,EACP,KAA4B;QAE5B,MAAM,OAAO,GAKR;YACH,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,0BAA0B,CAAC,KAAK,CAAC;YACzE,CAAC,KAAK,CAAC,QAAQ,CAAC,wBAAwB,CAAC,EAAE,GAAG,EAAE,CAC9C,IAAI,mBAAmB,CAAC,KAAK,CAAC;SACjC,CAAC;QAEF,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QAC7B,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,wBAAwB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAClD,CAAC;QACD,OAAO,MAAM,EAAE,CAAC;IAClB,CAAC;IAED;;;;;;OAMG;IACH,YAAY,CACV,IAAO,EACP,MAA0B;QAE1B,gFAAgF;QAChF,OAAO;YACL,IAAI,EAAE,KAAK,EAAE,OAAe,EAAE,EAAE;gBAC9B,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACpC,MAAM,MAAM,GAAG,IAAI,CAAC,qBAAqB,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;gBAC/D,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC9B,CAAC;YACD,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;gBACzB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACpC,MAAM,MAAM,GAAG,IAAI,CAAC,qBAAqB,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;gBAC/D,OAAO,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACjC,CAAC;YACD,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;gBACzB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACpC,MAAM,MAAM,GAAG,IAAI,CAAC,qBAAqB,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;gBAC/D,OAAO,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACjC,CAAC;SACuE,CAAC;IAC7E,CAAC;IAED;;;;;;;OAOG;IACK,qBAAqB,CAC3B,IAAO,EACP,KAA4B,EAC5B,MAA0B;QAE1B,MAAM,OAAO,GAKR;YACH,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,GAAG,EAAE;gBACjC,MAAM,CACJ,IAAI,CAAC,MAAM,CAAC,cAAc,EAC1B,2CAA2C,KAAK,CAAC,QAAQ,CAAC,WAAW,OAAO,CAC7E,CAAC;gBACF,OAAO,IAAI,0BAA0B,CACnC,KAAK,EACL,MAAM,EACN,IAAI,CAAC,MAAM,CAAC,cAAc,CAC3B,CAAC;YACJ,CAAC;YACD,CAAC,KAAK,CAAC,QAAQ,CAAC,wBAAwB,CAAC,EAAE,GAAG,EAAE;gBAC9C,OAAO,IAAI,mBAAmB,CAC5B,KAAK,EACL,MAAM,EACN,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAC7B,CAAC;YACJ,CAAC;SACF,CAAC;QAEF,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QAC7B,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,wBAAwB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAClD,CAAC;QACD,OAAO,MAAM,EAAE,CAAC;IAClB,CAAC;CACF"}
@@ -0,0 +1,42 @@
1
+ import { type QueryClient } from '@cosmjs/stargate';
2
+ import { AltVM } from '@recoillink/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,0BAA0B,CAAC;AAGjD,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"}
@@ -0,0 +1,95 @@
1
+ import { AltVM } from '@recoillink/provider-sdk';
2
+ import { assert } from '@recoillink/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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"}