@humanode-hyperlane/starknet-sdk 0.0.0-stage → 27.2.3-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 (179) hide show
  1. package/LICENSE.md +193 -0
  2. package/dist/clients/protocol.d.ts +24 -0
  3. package/dist/clients/protocol.d.ts.map +1 -0
  4. package/dist/clients/protocol.js +55 -0
  5. package/dist/clients/protocol.js.map +1 -0
  6. package/dist/clients/protocol.test.d.ts +2 -0
  7. package/dist/clients/protocol.test.d.ts.map +1 -0
  8. package/dist/clients/protocol.test.js +36 -0
  9. package/dist/clients/protocol.test.js.map +1 -0
  10. package/dist/clients/provider.d.ts +93 -0
  11. package/dist/clients/provider.d.ts.map +1 -0
  12. package/dist/clients/provider.js +746 -0
  13. package/dist/clients/provider.js.map +1 -0
  14. package/dist/clients/provider.test.d.ts +2 -0
  15. package/dist/clients/provider.test.d.ts.map +1 -0
  16. package/dist/clients/provider.test.js +493 -0
  17. package/dist/clients/provider.test.js.map +1 -0
  18. package/dist/clients/signer.d.ts +56 -0
  19. package/dist/clients/signer.d.ts.map +1 -0
  20. package/dist/clients/signer.js +486 -0
  21. package/dist/clients/signer.js.map +1 -0
  22. package/dist/clients/signer.test.d.ts +2 -0
  23. package/dist/clients/signer.test.d.ts.map +1 -0
  24. package/dist/clients/signer.test.js +245 -0
  25. package/dist/clients/signer.test.js.map +1 -0
  26. package/dist/contracts.d.ts +43 -0
  27. package/dist/contracts.d.ts.map +1 -0
  28. package/dist/contracts.js +310 -0
  29. package/dist/contracts.js.map +1 -0
  30. package/dist/contracts.test.d.ts +2 -0
  31. package/dist/contracts.test.d.ts.map +1 -0
  32. package/dist/contracts.test.js +56 -0
  33. package/dist/contracts.test.js.map +1 -0
  34. package/dist/hook/hook-artifact-manager.d.ts +18 -0
  35. package/dist/hook/hook-artifact-manager.d.ts.map +1 -0
  36. package/dist/hook/hook-artifact-manager.js +70 -0
  37. package/dist/hook/hook-artifact-manager.js.map +1 -0
  38. package/dist/hook/hook-artifact-manager.test.d.ts +2 -0
  39. package/dist/hook/hook-artifact-manager.test.d.ts.map +1 -0
  40. package/dist/hook/hook-artifact-manager.test.js +166 -0
  41. package/dist/hook/hook-artifact-manager.test.js.map +1 -0
  42. package/dist/hook/interchain-gas-paymaster-hook-artifact-manager.d.ts +5 -0
  43. package/dist/hook/interchain-gas-paymaster-hook-artifact-manager.d.ts.map +1 -0
  44. package/dist/hook/interchain-gas-paymaster-hook-artifact-manager.js +23 -0
  45. package/dist/hook/interchain-gas-paymaster-hook-artifact-manager.js.map +1 -0
  46. package/dist/hook/merkle-tree-hook-artifact-manager.d.ts +18 -0
  47. package/dist/hook/merkle-tree-hook-artifact-manager.d.ts.map +1 -0
  48. package/dist/hook/merkle-tree-hook-artifact-manager.js +43 -0
  49. package/dist/hook/merkle-tree-hook-artifact-manager.js.map +1 -0
  50. package/dist/hook/protocol-fee-hook-artifact-manager.d.ts +22 -0
  51. package/dist/hook/protocol-fee-hook-artifact-manager.d.ts.map +1 -0
  52. package/dist/hook/protocol-fee-hook-artifact-manager.js +169 -0
  53. package/dist/hook/protocol-fee-hook-artifact-manager.js.map +1 -0
  54. package/dist/hook/unknown-hook-artifact-manager.d.ts +14 -0
  55. package/dist/hook/unknown-hook-artifact-manager.d.ts.map +1 -0
  56. package/dist/hook/unknown-hook-artifact-manager.js +20 -0
  57. package/dist/hook/unknown-hook-artifact-manager.js.map +1 -0
  58. package/dist/index.d.ts +9 -0
  59. package/dist/index.d.ts.map +1 -0
  60. package/dist/index.js +9 -0
  61. package/dist/index.js.map +1 -0
  62. package/dist/ism/domain-routing-ism-artifact-manager.d.ts +20 -0
  63. package/dist/ism/domain-routing-ism-artifact-manager.d.ts.map +1 -0
  64. package/dist/ism/domain-routing-ism-artifact-manager.js +136 -0
  65. package/dist/ism/domain-routing-ism-artifact-manager.js.map +1 -0
  66. package/dist/ism/ism-artifact-manager.d.ts +14 -0
  67. package/dist/ism/ism-artifact-manager.d.ts.map +1 -0
  68. package/dist/ism/ism-artifact-manager.js +51 -0
  69. package/dist/ism/ism-artifact-manager.js.map +1 -0
  70. package/dist/ism/ism-artifact-manager.test.d.ts +2 -0
  71. package/dist/ism/ism-artifact-manager.test.d.ts.map +1 -0
  72. package/dist/ism/ism-artifact-manager.test.js +86 -0
  73. package/dist/ism/ism-artifact-manager.test.js.map +1 -0
  74. package/dist/ism/merkle-root-multisig-ism-artifact-manager.d.ts +20 -0
  75. package/dist/ism/merkle-root-multisig-ism-artifact-manager.d.ts.map +1 -0
  76. package/dist/ism/merkle-root-multisig-ism-artifact-manager.js +52 -0
  77. package/dist/ism/merkle-root-multisig-ism-artifact-manager.js.map +1 -0
  78. package/dist/ism/message-id-multisig-ism-artifact-manager.d.ts +20 -0
  79. package/dist/ism/message-id-multisig-ism-artifact-manager.d.ts.map +1 -0
  80. package/dist/ism/message-id-multisig-ism-artifact-manager.js +52 -0
  81. package/dist/ism/message-id-multisig-ism-artifact-manager.js.map +1 -0
  82. package/dist/ism/test-ism-artifact-manager.d.ts +20 -0
  83. package/dist/ism/test-ism-artifact-manager.d.ts.map +1 -0
  84. package/dist/ism/test-ism-artifact-manager.js +44 -0
  85. package/dist/ism/test-ism-artifact-manager.js.map +1 -0
  86. package/dist/mailbox/mailbox-artifact-manager.d.ts +15 -0
  87. package/dist/mailbox/mailbox-artifact-manager.d.ts.map +1 -0
  88. package/dist/mailbox/mailbox-artifact-manager.js +194 -0
  89. package/dist/mailbox/mailbox-artifact-manager.js.map +1 -0
  90. package/dist/mailbox/mailbox-artifact-manager.test.d.ts +2 -0
  91. package/dist/mailbox/mailbox-artifact-manager.test.d.ts.map +1 -0
  92. package/dist/mailbox/mailbox-artifact-manager.test.js +100 -0
  93. package/dist/mailbox/mailbox-artifact-manager.test.js.map +1 -0
  94. package/dist/testing/constants.d.ts +8 -0
  95. package/dist/testing/constants.d.ts.map +1 -0
  96. package/dist/testing/constants.js +27 -0
  97. package/dist/testing/constants.js.map +1 -0
  98. package/dist/testing/index.d.ts +4 -0
  99. package/dist/testing/index.d.ts.map +1 -0
  100. package/dist/testing/index.js +4 -0
  101. package/dist/testing/index.js.map +1 -0
  102. package/dist/testing/node.d.ts +4 -0
  103. package/dist/testing/node.d.ts.map +1 -0
  104. package/dist/testing/node.js +77 -0
  105. package/dist/testing/node.js.map +1 -0
  106. package/dist/testing/utils.d.ts +6 -0
  107. package/dist/testing/utils.d.ts.map +1 -0
  108. package/dist/testing/utils.js +20 -0
  109. package/dist/testing/utils.js.map +1 -0
  110. package/dist/tests/e2e-test.setup.d.ts +2 -0
  111. package/dist/tests/e2e-test.setup.d.ts.map +1 -0
  112. package/dist/tests/e2e-test.setup.js +24 -0
  113. package/dist/tests/e2e-test.setup.js.map +1 -0
  114. package/dist/tests/hook.e2e-test.d.ts +2 -0
  115. package/dist/tests/hook.e2e-test.d.ts.map +1 -0
  116. package/dist/tests/hook.e2e-test.js +78 -0
  117. package/dist/tests/hook.e2e-test.js.map +1 -0
  118. package/dist/tests/ism.e2e-test.d.ts +2 -0
  119. package/dist/tests/ism.e2e-test.d.ts.map +1 -0
  120. package/dist/tests/ism.e2e-test.js +116 -0
  121. package/dist/tests/ism.e2e-test.js.map +1 -0
  122. package/dist/tests/mailbox.e2e-test.d.ts +2 -0
  123. package/dist/tests/mailbox.e2e-test.d.ts.map +1 -0
  124. package/dist/tests/mailbox.e2e-test.js +112 -0
  125. package/dist/tests/mailbox.e2e-test.js.map +1 -0
  126. package/dist/tests/read-warp-token.e2e-test.d.ts +2 -0
  127. package/dist/tests/read-warp-token.e2e-test.d.ts.map +1 -0
  128. package/dist/tests/read-warp-token.e2e-test.js +67 -0
  129. package/dist/tests/read-warp-token.e2e-test.js.map +1 -0
  130. package/dist/tests/validator_announce.e2e-test.d.ts +2 -0
  131. package/dist/tests/validator_announce.e2e-test.d.ts.map +1 -0
  132. package/dist/tests/validator_announce.e2e-test.js +70 -0
  133. package/dist/tests/validator_announce.e2e-test.js.map +1 -0
  134. package/dist/tests/warp_core.e2e-test.d.ts +2 -0
  135. package/dist/tests/warp_core.e2e-test.d.ts.map +1 -0
  136. package/dist/tests/warp_core.e2e-test.js +109 -0
  137. package/dist/tests/warp_core.e2e-test.js.map +1 -0
  138. package/dist/tests/warp_transfer.e2e-test.d.ts +2 -0
  139. package/dist/tests/warp_transfer.e2e-test.d.ts.map +1 -0
  140. package/dist/tests/warp_transfer.e2e-test.js +95 -0
  141. package/dist/tests/warp_transfer.e2e-test.js.map +1 -0
  142. package/dist/types.d.ts +26 -0
  143. package/dist/types.d.ts.map +1 -0
  144. package/dist/types.js +2 -0
  145. package/dist/types.js.map +1 -0
  146. package/dist/validator-announce/validator-announce-artifact-manager.d.ts +14 -0
  147. package/dist/validator-announce/validator-announce-artifact-manager.d.ts.map +1 -0
  148. package/dist/validator-announce/validator-announce-artifact-manager.js +127 -0
  149. package/dist/validator-announce/validator-announce-artifact-manager.js.map +1 -0
  150. package/dist/validator-announce/validator-announce-artifact-manager.test.d.ts +2 -0
  151. package/dist/validator-announce/validator-announce-artifact-manager.test.d.ts.map +1 -0
  152. package/dist/validator-announce/validator-announce-artifact-manager.test.js +66 -0
  153. package/dist/validator-announce/validator-announce-artifact-manager.test.js.map +1 -0
  154. package/dist/warp/collateral-token-artifact-manager.d.ts +14 -0
  155. package/dist/warp/collateral-token-artifact-manager.d.ts.map +1 -0
  156. package/dist/warp/collateral-token-artifact-manager.js +43 -0
  157. package/dist/warp/collateral-token-artifact-manager.js.map +1 -0
  158. package/dist/warp/native-token-artifact-manager.d.ts +13 -0
  159. package/dist/warp/native-token-artifact-manager.d.ts.map +1 -0
  160. package/dist/warp/native-token-artifact-manager.js +28 -0
  161. package/dist/warp/native-token-artifact-manager.js.map +1 -0
  162. package/dist/warp/synthetic-token-artifact-manager.d.ts +15 -0
  163. package/dist/warp/synthetic-token-artifact-manager.d.ts.map +1 -0
  164. package/dist/warp/synthetic-token-artifact-manager.js +49 -0
  165. package/dist/warp/synthetic-token-artifact-manager.js.map +1 -0
  166. package/dist/warp/token-artifact-manager.d.ts +43 -0
  167. package/dist/warp/token-artifact-manager.d.ts.map +1 -0
  168. package/dist/warp/token-artifact-manager.js +241 -0
  169. package/dist/warp/token-artifact-manager.js.map +1 -0
  170. package/dist/warp/warp-artifact-manager.d.ts +14 -0
  171. package/dist/warp/warp-artifact-manager.d.ts.map +1 -0
  172. package/dist/warp/warp-artifact-manager.js +54 -0
  173. package/dist/warp/warp-artifact-manager.js.map +1 -0
  174. package/dist/warp/warp-artifact-manager.test.d.ts +2 -0
  175. package/dist/warp/warp-artifact-manager.test.d.ts.map +1 -0
  176. package/dist/warp/warp-artifact-manager.test.js +128 -0
  177. package/dist/warp/warp-artifact-manager.test.js.map +1 -0
  178. package/package.json +53 -3
  179. package/README.md +0 -3
@@ -0,0 +1,56 @@
1
+ import { expect } from 'chai';
2
+ import { CallData } from 'starknet';
3
+ import { ContractType, getCompiledContract, } from '@humanode-hyperlane/starknet-core';
4
+ import { ZERO_ADDRESS_HEX_32 } from '@humanode-hyperlane/utils';
5
+ import { StarknetContractName, callContract, extractEnumVariant, getFeeTokenAddress, normalizeStarknetAddressSafe, populateInvokeTx, toNumber, } from './contracts.js';
6
+ describe('starknet-sdk contracts helpers', () => {
7
+ it('normalizes zeroish addresses to 32-byte zero address', () => {
8
+ expect(normalizeStarknetAddressSafe('0x0')).to.equal(ZERO_ADDRESS_HEX_32);
9
+ });
10
+ it('uses native denom as fee token when provided', () => {
11
+ const nativeDenom = '0x1234';
12
+ expect(getFeeTokenAddress({ chainName: 'starknetsepolia', nativeDenom })).to.equal('0x0000000000000000000000000000000000000000000000000000000000001234');
13
+ });
14
+ it('falls back to known fee token by chain name', () => {
15
+ expect(getFeeTokenAddress({ chainName: 'starknetsepolia' })).to.equal('0x04718f5a0fc34cc1af16a1cdee98ffb20c31f5cd61d6ab07201858f4287c938d');
16
+ });
17
+ it('extracts enum variant key from starknet-like object', () => {
18
+ expect(extractEnumVariant({ MERKLE_TREE: {} })).to.equal('MERKLE_TREE');
19
+ });
20
+ it('preserves single-key enum variants with undefined payloads', () => {
21
+ expect(extractEnumVariant({ NOOP: undefined })).to.equal('NOOP');
22
+ expect(extractEnumVariant({ NOOP: null })).to.equal('NOOP');
23
+ });
24
+ it('preserves zero-like enum values instead of treating them as empty', () => {
25
+ expect(extractEnumVariant(0)).to.equal('0');
26
+ expect(extractEnumVariant(0n)).to.equal('0');
27
+ expect(extractEnumVariant({ MERKLE_TREE: 0 })).to.equal('MERKLE_TREE');
28
+ });
29
+ it('preserves contract context in callContract fallback path', async () => {
30
+ const contract = {
31
+ address: '0x1234',
32
+ abi: [{ type: 'function', name: 'balance_of' }],
33
+ call(method, args) {
34
+ return `${this.address}:${method}:${args.length}`;
35
+ },
36
+ };
37
+ const result = await callContract(contract, 'balance_of', ['0x1']);
38
+ expect(result).to.equal('0x1234:balance_of:1');
39
+ });
40
+ it('compiles calldata when populateTransaction helper is unavailable', async () => {
41
+ const { abi } = getCompiledContract(StarknetContractName.HYP_ERC20, ContractType.TOKEN);
42
+ const contract = {
43
+ address: '0x1234',
44
+ abi,
45
+ };
46
+ const tx = await populateInvokeTx(contract, 'owner');
47
+ expect(tx.kind).to.equal('invoke');
48
+ expect(tx.contractAddress).to.equal('0x0000000000000000000000000000000000000000000000000000000000001234');
49
+ expect(tx.entrypoint).to.equal('owner');
50
+ expect(tx.calldata).to.deep.equal(new CallData(abi).compile('owner', []));
51
+ });
52
+ it('throws when coercing bigint values above the safe integer range', () => {
53
+ expect(() => toNumber(BigInt(Number.MAX_SAFE_INTEGER) + 1n)).to.throw(/safe integer/i);
54
+ });
55
+ });
56
+ //# sourceMappingURL=contracts.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contracts.test.js","sourceRoot":"","sources":["../src/contracts.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import { type ChainMetadataForAltVM } from '@humanode-hyperlane/provider-sdk';
2
+ import { type ISigner } from '@humanode-hyperlane/provider-sdk/altvm';
3
+ import { type ArtifactReader, type ArtifactWriter } from '@humanode-hyperlane/provider-sdk/artifact';
4
+ import { type DeployedHookAddress, type DeployedHookArtifact, type HookType, type IRawHookArtifactManager, type RawHookArtifactConfigs } from '@humanode-hyperlane/provider-sdk/hook';
5
+ import { type AnnotatedTx, type TxReceipt } from '@humanode-hyperlane/provider-sdk/module';
6
+ export declare class StarknetHookArtifactManager implements IRawHookArtifactManager {
7
+ private readonly chainMetadata;
8
+ private readonly provider;
9
+ private readonly mailboxAddress;
10
+ constructor(chainMetadata: ChainMetadataForAltVM, context?: {
11
+ mailbox?: string;
12
+ });
13
+ private requireStarknetSigner;
14
+ readHook(address: string): Promise<DeployedHookArtifact>;
15
+ createReader<T extends HookType>(type: T): ArtifactReader<RawHookArtifactConfigs[T], DeployedHookAddress>;
16
+ createWriter<T extends HookType>(type: T, signer: ISigner<AnnotatedTx, TxReceipt>): ArtifactWriter<RawHookArtifactConfigs[T], DeployedHookAddress>;
17
+ }
18
+ //# 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":"AAAA,OAAO,EAEL,KAAK,qBAAqB,EAC3B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,wCAAwC,CAAC;AACtE,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,EAE5B,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,SAAS,EACf,MAAM,yCAAyC,CAAC;AAuBjD,qBAAa,2BAA4B,YAAW,uBAAuB;IAKvE,OAAO,CAAC,QAAQ,CAAC,aAAa;IAJhC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAmB;IAC5C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;gBAGrB,aAAa,EAAE,qBAAqB,EACrD,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE;IAYhC,OAAO,CAAC,qBAAqB;IAOvB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAiB9D,YAAY,CAAC,CAAC,SAAS,QAAQ,EAC7B,IAAI,EAAE,CAAC,GACN,cAAc,CAAC,sBAAsB,CAAC,CAAC,CAAC,EAAE,mBAAmB,CAAC;IAqBjE,YAAY,CAAC,CAAC,SAAS,QAAQ,EAC7B,IAAI,EAAE,CAAC,EACP,MAAM,EAAE,OAAO,CAAC,WAAW,EAAE,SAAS,CAAC,GACtC,cAAc,CAAC,sBAAsB,CAAC,CAAC,CAAC,EAAE,mBAAmB,CAAC;CA+BlE"}
@@ -0,0 +1,70 @@
1
+ import { AltVM, } from '@humanode-hyperlane/provider-sdk';
2
+ import { throwUnsupportedHookType, } from '@humanode-hyperlane/provider-sdk/hook';
3
+ import { assert } from '@humanode-hyperlane/utils';
4
+ import { StarknetProvider } from '../clients/provider.js';
5
+ import { StarknetSigner } from '../clients/signer.js';
6
+ import { normalizeStarknetAddressSafe } from '../contracts.js';
7
+ import { createStarknetInterchainGasPaymasterHookReader, createStarknetInterchainGasPaymasterHookWriter, } from './interchain-gas-paymaster-hook-artifact-manager.js';
8
+ import { StarknetMerkleTreeHookReader, StarknetMerkleTreeHookWriter, } from './merkle-tree-hook-artifact-manager.js';
9
+ import { StarknetProtocolFeeHookReader, StarknetProtocolFeeHookWriter, } from './protocol-fee-hook-artifact-manager.js';
10
+ import { StarknetUnknownHookReader, StarknetUnknownHookWriter, } from './unknown-hook-artifact-manager.js';
11
+ export class StarknetHookArtifactManager {
12
+ chainMetadata;
13
+ provider;
14
+ mailboxAddress;
15
+ constructor(chainMetadata, context) {
16
+ this.chainMetadata = chainMetadata;
17
+ this.provider = StarknetProvider.connect((chainMetadata.rpcUrls ?? []).map(({ http }) => http), chainMetadata.chainId, { metadata: chainMetadata });
18
+ this.mailboxAddress = context?.mailbox
19
+ ? normalizeStarknetAddressSafe(context.mailbox)
20
+ : '';
21
+ }
22
+ requireStarknetSigner(signer) {
23
+ assert(signer instanceof StarknetSigner, 'Expected StarknetSigner');
24
+ return signer;
25
+ }
26
+ async readHook(address) {
27
+ const hookType = await this.provider.getHookType({
28
+ hookAddress: address,
29
+ });
30
+ switch (hookType) {
31
+ case AltVM.HookType.CUSTOM:
32
+ return this.createReader('unknownHook').read(address);
33
+ case AltVM.HookType.MERKLE_TREE:
34
+ return this.createReader(AltVM.HookType.MERKLE_TREE).read(address);
35
+ case AltVM.HookType.PROTOCOL_FEE:
36
+ return this.createReader(AltVM.HookType.PROTOCOL_FEE).read(address);
37
+ default:
38
+ return throwUnsupportedHookType(hookType, 'Starknet');
39
+ }
40
+ }
41
+ createReader(type) {
42
+ const readers = {
43
+ merkleTreeHook: () => new StarknetMerkleTreeHookReader(),
44
+ interchainGasPaymaster: () => createStarknetInterchainGasPaymasterHookReader(),
45
+ protocolFee: () => new StarknetProtocolFeeHookReader(this.chainMetadata, this.provider),
46
+ unknownHook: () => new StarknetUnknownHookReader(),
47
+ };
48
+ const readerFactory = readers[type];
49
+ if (!readerFactory) {
50
+ return throwUnsupportedHookType(type, 'Starknet');
51
+ }
52
+ return readerFactory();
53
+ }
54
+ createWriter(type, signer) {
55
+ const starknetSigner = this.requireStarknetSigner(signer);
56
+ assert(this.mailboxAddress || type !== AltVM.HookType.MERKLE_TREE, 'mailbox address required for Starknet merkle tree hook deployment');
57
+ const writers = {
58
+ merkleTreeHook: () => new StarknetMerkleTreeHookWriter(starknetSigner, this.mailboxAddress),
59
+ interchainGasPaymaster: () => createStarknetInterchainGasPaymasterHookWriter(),
60
+ protocolFee: () => new StarknetProtocolFeeHookWriter(this.chainMetadata, this.provider, starknetSigner),
61
+ unknownHook: () => new StarknetUnknownHookWriter(),
62
+ };
63
+ const writerFactory = writers[type];
64
+ if (!writerFactory) {
65
+ return throwUnsupportedHookType(type, 'Starknet');
66
+ }
67
+ return writerFactory();
68
+ }
69
+ }
70
+ //# 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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=hook-artifact-manager.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hook-artifact-manager.test.d.ts","sourceRoot":"","sources":["../../src/hook/hook-artifact-manager.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,166 @@
1
+ import { expect } from 'chai';
2
+ import { RpcProvider } from 'starknet';
3
+ import { AltVM, ProtocolType } from '@humanode-hyperlane/provider-sdk';
4
+ import { ArtifactState } from '@humanode-hyperlane/provider-sdk/artifact';
5
+ import { StarknetSigner } from '../clients/signer.js';
6
+ import { normalizeStarknetAddressSafe } from '../contracts.js';
7
+ import { StarknetHookArtifactManager } from './hook-artifact-manager.js';
8
+ describe('StarknetHookArtifactManager', () => {
9
+ const chainMetadata = {
10
+ name: 'starknetsepolia',
11
+ protocol: ProtocolType.Starknet,
12
+ chainId: 'SN_SEPOLIA',
13
+ domainId: 421614,
14
+ rpcUrls: [{ http: 'http://localhost:9545' }],
15
+ nativeToken: {
16
+ name: 'Ether',
17
+ symbol: 'ETH',
18
+ decimals: 18,
19
+ denom: '0x04718f5a0fc34cc1af16a1cdee98ffb20c31f5cd61d6ab07201858f4287c938d',
20
+ },
21
+ };
22
+ class MockStarknetSigner extends StarknetSigner {
23
+ capturedTx;
24
+ capturedTxs = [];
25
+ constructor() {
26
+ super(new RpcProvider({ nodeUrl: 'http://localhost:9545' }), chainMetadata, ['http://localhost:9545'], '0x1', '0x1111111111111111111111111111111111111111111111111111111111111111');
27
+ }
28
+ async sendAndConfirmTransaction(tx) {
29
+ this.capturedTx = tx;
30
+ this.capturedTxs.push(tx);
31
+ return {
32
+ transactionHash: '0x123',
33
+ contractAddress: '0xabc',
34
+ };
35
+ }
36
+ }
37
+ it('rejects interchainGasPaymaster hook operations on Starknet', async () => {
38
+ const manager = new StarknetHookArtifactManager(chainMetadata);
39
+ const signer = new MockStarknetSigner();
40
+ const reader = manager.createReader('interchainGasPaymaster');
41
+ const writer = manager.createWriter('interchainGasPaymaster', signer);
42
+ let readerError;
43
+ try {
44
+ await reader.read('0x1');
45
+ }
46
+ catch (error) {
47
+ readerError = error;
48
+ }
49
+ expect(String(readerError)).to.match(/Unsupported hook artifact type .* for protocol Starknet/i);
50
+ let writerError;
51
+ try {
52
+ await writer.create({
53
+ artifactState: ArtifactState.NEW,
54
+ // @ts-expect-error runtime unsupported path; config shape is irrelevant
55
+ config: {},
56
+ });
57
+ }
58
+ catch (error) {
59
+ writerError = error;
60
+ }
61
+ expect(String(writerError)).to.match(/Unsupported hook artifact type .* for protocol Starknet/i);
62
+ });
63
+ it('deploys protocolFee hook with maxProtocolFee and protocolFee args', async () => {
64
+ const manager = new StarknetHookArtifactManager(chainMetadata);
65
+ const signer = new MockStarknetSigner();
66
+ const writer = manager.createWriter('protocolFee', signer);
67
+ const [artifact] = await writer.create({
68
+ artifactState: ArtifactState.NEW,
69
+ config: {
70
+ type: 'protocolFee',
71
+ owner: '0x1',
72
+ beneficiary: '0x2',
73
+ maxProtocolFee: '20',
74
+ protocolFee: '10',
75
+ },
76
+ });
77
+ expect(signer.capturedTx).to.not.equal(undefined);
78
+ expect(signer.capturedTx?.kind).to.equal('deploy');
79
+ if (signer.capturedTx?.kind !== 'deploy') {
80
+ throw new Error('Expected deploy transaction');
81
+ }
82
+ expect(Array.isArray(signer.capturedTx.constructorArgs)).to.equal(true);
83
+ if (!Array.isArray(signer.capturedTx.constructorArgs)) {
84
+ throw new Error('Expected constructorArgs to be an array');
85
+ }
86
+ expect(signer.capturedTx.constructorArgs[0]).to.equal('20');
87
+ expect(signer.capturedTx.constructorArgs[1]).to.equal('10');
88
+ expect(artifact.config.maxProtocolFee).to.equal('20');
89
+ expect(artifact.config.protocolFee).to.equal('10');
90
+ });
91
+ it('returns merkleTree hook deployment receipts', async () => {
92
+ const manager = new StarknetHookArtifactManager(chainMetadata, {
93
+ mailbox: '0x111',
94
+ });
95
+ const signer = new MockStarknetSigner();
96
+ const writer = manager.createWriter('merkleTreeHook', signer);
97
+ const [, receipts] = await writer.create({
98
+ artifactState: ArtifactState.NEW,
99
+ config: { type: 'merkleTreeHook' },
100
+ });
101
+ expect(receipts).to.have.length(1);
102
+ expect(signer.capturedTxs).to.have.length(1);
103
+ expect(signer.capturedTxs[0]?.kind).to.equal('deploy');
104
+ });
105
+ it('reads custom Starknet hooks as unknownHook artifacts', async () => {
106
+ const manager = new StarknetHookArtifactManager(chainMetadata);
107
+ const provider = Reflect.get(manager, 'provider');
108
+ provider.getHookType = async () => AltVM.HookType.CUSTOM;
109
+ const artifact = await manager.readHook('0xabc');
110
+ expect(artifact.config).to.deep.equal({ type: 'unknownHook' });
111
+ expect(artifact.deployed.address).to.equal(normalizeStarknetAddressSafe('0xabc'));
112
+ });
113
+ it('rejects creating unknownHook artifacts on Starknet', async () => {
114
+ const manager = new StarknetHookArtifactManager(chainMetadata);
115
+ const signer = new MockStarknetSigner();
116
+ const writer = manager.createWriter('unknownHook', signer);
117
+ let error;
118
+ try {
119
+ await writer.create({
120
+ artifactState: ArtifactState.NEW,
121
+ config: { type: 'unknownHook' },
122
+ });
123
+ }
124
+ catch (caughtError) {
125
+ error = caughtError;
126
+ }
127
+ expect(String(error)).to.match(/unknownHook artifacts are read-only on Starknet/i);
128
+ });
129
+ it('rejects protocolFee in-place updates when maxProtocolFee changes', async () => {
130
+ const manager = new StarknetHookArtifactManager(chainMetadata);
131
+ const signer = new MockStarknetSigner();
132
+ const writer = manager.createWriter('protocolFee', signer);
133
+ Object.assign(writer, {
134
+ read: async () => ({
135
+ artifactState: ArtifactState.DEPLOYED,
136
+ config: {
137
+ type: 'protocolFee',
138
+ owner: '0x1',
139
+ beneficiary: '0x2',
140
+ maxProtocolFee: '20',
141
+ protocolFee: '10',
142
+ },
143
+ deployed: { address: '0xabc' },
144
+ }),
145
+ });
146
+ let error;
147
+ try {
148
+ await writer.update({
149
+ artifactState: ArtifactState.DEPLOYED,
150
+ config: {
151
+ type: 'protocolFee',
152
+ owner: '0x1',
153
+ beneficiary: '0x2',
154
+ maxProtocolFee: '30',
155
+ protocolFee: '10',
156
+ },
157
+ deployed: { address: '0xabc' },
158
+ });
159
+ }
160
+ catch (caughtError) {
161
+ error = caughtError;
162
+ }
163
+ expect(String(error)).to.match(/Changing maxProtocolFee requires redeploying/i);
164
+ });
165
+ });
166
+ //# sourceMappingURL=hook-artifact-manager.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hook-artifact-manager.test.js","sourceRoot":"","sources":["../../src/hook/hook-artifact-manager.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { type ArtifactReader, type ArtifactWriter } from '@humanode-hyperlane/provider-sdk/artifact';
2
+ import { type DeployedHookAddress, type RawHookArtifactConfigs } from '@humanode-hyperlane/provider-sdk/hook';
3
+ export declare function createStarknetInterchainGasPaymasterHookReader(): ArtifactReader<RawHookArtifactConfigs['interchainGasPaymaster'], DeployedHookAddress>;
4
+ export declare function createStarknetInterchainGasPaymasterHookWriter(): ArtifactWriter<RawHookArtifactConfigs['interchainGasPaymaster'], DeployedHookAddress>;
5
+ //# sourceMappingURL=interchain-gas-paymaster-hook-artifact-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interchain-gas-paymaster-hook-artifact-manager.d.ts","sourceRoot":"","sources":["../../src/hook/interchain-gas-paymaster-hook-artifact-manager.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,cAAc,EACpB,MAAM,2CAA2C,CAAC;AACnD,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,sBAAsB,EAE5B,MAAM,uCAAuC,CAAC;AAE/C,wBAAgB,8CAA8C,IAAI,cAAc,CAC9E,sBAAsB,CAAC,wBAAwB,CAAC,EAChD,mBAAmB,CACpB,CASA;AAED,wBAAgB,8CAA8C,IAAI,cAAc,CAC9E,sBAAsB,CAAC,wBAAwB,CAAC,EAChD,mBAAmB,CACpB,CAqBA"}
@@ -0,0 +1,23 @@
1
+ import { AltVM } from '@humanode-hyperlane/provider-sdk';
2
+ import { throwUnsupportedHookType, } from '@humanode-hyperlane/provider-sdk/hook';
3
+ export function createStarknetInterchainGasPaymasterHookReader() {
4
+ return {
5
+ read: async () => {
6
+ return throwUnsupportedHookType(AltVM.HookType.INTERCHAIN_GAS_PAYMASTER, 'Starknet');
7
+ },
8
+ };
9
+ }
10
+ export function createStarknetInterchainGasPaymasterHookWriter() {
11
+ return {
12
+ read: async () => {
13
+ return throwUnsupportedHookType(AltVM.HookType.INTERCHAIN_GAS_PAYMASTER, 'Starknet');
14
+ },
15
+ create: async () => {
16
+ return throwUnsupportedHookType(AltVM.HookType.INTERCHAIN_GAS_PAYMASTER, 'Starknet');
17
+ },
18
+ update: async () => {
19
+ return throwUnsupportedHookType(AltVM.HookType.INTERCHAIN_GAS_PAYMASTER, 'Starknet');
20
+ },
21
+ };
22
+ }
23
+ //# sourceMappingURL=interchain-gas-paymaster-hook-artifact-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interchain-gas-paymaster-hook-artifact-manager.js","sourceRoot":"","sources":["../../src/hook/interchain-gas-paymaster-hook-artifact-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,kCAAkC,CAAC;AAKzD,OAAO,EAGL,wBAAwB,GACzB,MAAM,uCAAuC,CAAC;AAE/C,MAAM,UAAU,8CAA8C;IAI5D,OAAO;QACL,IAAI,EAAE,KAAK,IAAI,EAAE;YACf,OAAO,wBAAwB,CAC7B,KAAK,CAAC,QAAQ,CAAC,wBAAwB,EACvC,UAAU,CACX,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,8CAA8C;IAI5D,OAAO;QACL,IAAI,EAAE,KAAK,IAAI,EAAE;YACf,OAAO,wBAAwB,CAC7B,KAAK,CAAC,QAAQ,CAAC,wBAAwB,EACvC,UAAU,CACX,CAAC;QACJ,CAAC;QACD,MAAM,EAAE,KAAK,IAAI,EAAE;YACjB,OAAO,wBAAwB,CAC7B,KAAK,CAAC,QAAQ,CAAC,wBAAwB,EACvC,UAAU,CACX,CAAC;QACJ,CAAC;QACD,MAAM,EAAE,KAAK,IAAI,EAAE;YACjB,OAAO,wBAAwB,CAC7B,KAAK,CAAC,QAAQ,CAAC,wBAAwB,EACvC,UAAU,CACX,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,18 @@
1
+ import { type ArtifactDeployed, type ArtifactNew, type ArtifactReader, type ArtifactWriter } from '@humanode-hyperlane/provider-sdk/artifact';
2
+ import { type DeployedHookAddress, type RawHookArtifactConfigs } from '@humanode-hyperlane/provider-sdk/hook';
3
+ import { type AnnotatedTx, type TxReceipt } from '@humanode-hyperlane/provider-sdk/module';
4
+ import { StarknetSigner } from '../clients/signer.js';
5
+ export declare class StarknetMerkleTreeHookReader implements ArtifactReader<RawHookArtifactConfigs['merkleTreeHook'], DeployedHookAddress> {
6
+ read(address: string): Promise<ArtifactDeployed<RawHookArtifactConfigs['merkleTreeHook'], DeployedHookAddress>>;
7
+ }
8
+ export declare class StarknetMerkleTreeHookWriter extends StarknetMerkleTreeHookReader implements ArtifactWriter<RawHookArtifactConfigs['merkleTreeHook'], DeployedHookAddress> {
9
+ private readonly signer;
10
+ private readonly mailboxAddress;
11
+ constructor(signer: StarknetSigner, mailboxAddress: string);
12
+ create(artifact: ArtifactNew<RawHookArtifactConfigs['merkleTreeHook']>): Promise<[
13
+ ArtifactDeployed<RawHookArtifactConfigs['merkleTreeHook'], DeployedHookAddress>,
14
+ TxReceipt[]
15
+ ]>;
16
+ update(_artifact: ArtifactDeployed<RawHookArtifactConfigs['merkleTreeHook'], DeployedHookAddress>): Promise<AnnotatedTx[]>;
17
+ }
18
+ //# sourceMappingURL=merkle-tree-hook-artifact-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"merkle-tree-hook-artifact-manager.d.ts","sourceRoot":"","sources":["../../src/hook/merkle-tree-hook-artifact-manager.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAChB,KAAK,cAAc,EAEnB,KAAK,cAAc,EACpB,MAAM,2CAA2C,CAAC;AACnD,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,sBAAsB,EAC5B,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,SAAS,EACf,MAAM,yCAAyC,CAAC;AAGjD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAGtD,qBAAa,4BAA6B,YAAW,cAAc,CACjE,sBAAsB,CAAC,gBAAgB,CAAC,EACxC,mBAAmB,CACpB;IACO,IAAI,CACR,OAAO,EAAE,MAAM,GACd,OAAO,CACR,gBAAgB,CACd,sBAAsB,CAAC,gBAAgB,CAAC,EACxC,mBAAmB,CACpB,CACF;CAOF;AAED,qBAAa,4BACX,SAAQ,4BACR,YACE,cAAc,CACZ,sBAAsB,CAAC,gBAAgB,CAAC,EACxC,mBAAmB,CACpB;IAGD,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,cAAc;gBADd,MAAM,EAAE,cAAc,EACtB,cAAc,EAAE,MAAM;IAKnC,MAAM,CACV,QAAQ,EAAE,WAAW,CAAC,sBAAsB,CAAC,gBAAgB,CAAC,CAAC,GAC9D,OAAO,CACR;QACE,gBAAgB,CACd,sBAAsB,CAAC,gBAAgB,CAAC,EACxC,mBAAmB,CACpB;QACD,SAAS,EAAE;KACZ,CACF;IAmBK,MAAM,CACV,SAAS,EAAE,gBAAgB,CACzB,sBAAsB,CAAC,gBAAgB,CAAC,EACxC,mBAAmB,CACpB,GACA,OAAO,CAAC,WAAW,EAAE,CAAC;CAG1B"}
@@ -0,0 +1,43 @@
1
+ import { AltVM } from '@humanode-hyperlane/provider-sdk';
2
+ import { ArtifactState, } from '@humanode-hyperlane/provider-sdk/artifact';
3
+ import { assert } from '@humanode-hyperlane/utils';
4
+ import { normalizeStarknetAddressSafe } from '../contracts.js';
5
+ export class StarknetMerkleTreeHookReader {
6
+ async read(address) {
7
+ return {
8
+ artifactState: ArtifactState.DEPLOYED,
9
+ config: { type: AltVM.HookType.MERKLE_TREE },
10
+ deployed: { address: normalizeStarknetAddressSafe(address) },
11
+ };
12
+ }
13
+ }
14
+ export class StarknetMerkleTreeHookWriter extends StarknetMerkleTreeHookReader {
15
+ signer;
16
+ mailboxAddress;
17
+ constructor(signer, mailboxAddress) {
18
+ super();
19
+ this.signer = signer;
20
+ this.mailboxAddress = mailboxAddress;
21
+ }
22
+ async create(artifact) {
23
+ const tx = await this.signer.getCreateMerkleTreeHookTransaction({
24
+ signer: this.signer.getSignerAddress(),
25
+ mailboxAddress: this.mailboxAddress,
26
+ });
27
+ const receipt = await this.signer.sendAndConfirmTransaction(tx);
28
+ const hookAddress = receipt.contractAddress;
29
+ assert(hookAddress, 'failed to deploy Starknet merkle tree hook');
30
+ return [
31
+ {
32
+ artifactState: ArtifactState.DEPLOYED,
33
+ config: artifact.config,
34
+ deployed: { address: hookAddress },
35
+ },
36
+ [receipt],
37
+ ];
38
+ }
39
+ async update(_artifact) {
40
+ return [];
41
+ }
42
+ }
43
+ //# sourceMappingURL=merkle-tree-hook-artifact-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"merkle-tree-hook-artifact-manager.js","sourceRoot":"","sources":["../../src/hook/merkle-tree-hook-artifact-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,kCAAkC,CAAC;AACzD,OAAO,EAIL,aAAa,GAEd,MAAM,2CAA2C,CAAC;AASnD,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAGnD,OAAO,EAAE,4BAA4B,EAAE,MAAM,iBAAiB,CAAC;AAE/D,MAAM,OAAO,4BAA4B;IAIvC,KAAK,CAAC,IAAI,CACR,OAAe;QAOf,OAAO;YACL,aAAa,EAAE,aAAa,CAAC,QAAQ;YACrC,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,WAAW,EAAE;YAC5C,QAAQ,EAAE,EAAE,OAAO,EAAE,4BAA4B,CAAC,OAAO,CAAC,EAAE;SAC7D,CAAC;IACJ,CAAC;CACF;AAED,MAAM,OAAO,4BACX,SAAQ,4BAA4B;IAQjB;IACA;IAFnB,YACmB,MAAsB,EACtB,cAAsB;QAEvC,KAAK,EAAE,CAAC;QAHS,WAAM,GAAN,MAAM,CAAgB;QACtB,mBAAc,GAAd,cAAc,CAAQ;IAGzC,CAAC;IAED,KAAK,CAAC,MAAM,CACV,QAA+D;QAU/D,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,kCAAkC,CAAC;YAC9D,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE;YACtC,cAAc,EAAE,IAAI,CAAC,cAAc;SACpC,CAAC,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,yBAAyB,CAAC,EAAE,CAAC,CAAC;QAChE,MAAM,WAAW,GAAG,OAAO,CAAC,eAAe,CAAC;QAC5C,MAAM,CAAC,WAAW,EAAE,4CAA4C,CAAC,CAAC;QAElE,OAAO;YACL;gBACE,aAAa,EAAE,aAAa,CAAC,QAAQ;gBACrC,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,QAAQ,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE;aACnC;YACD,CAAC,OAAO,CAAC;SACV,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,MAAM,CACV,SAGC;QAED,OAAO,EAAE,CAAC;IACZ,CAAC;CACF"}
@@ -0,0 +1,22 @@
1
+ import { type ChainMetadataForAltVM } from '@humanode-hyperlane/provider-sdk';
2
+ import { type ArtifactDeployed, type ArtifactNew, type ArtifactReader, type ArtifactWriter } from '@humanode-hyperlane/provider-sdk/artifact';
3
+ import { type DeployedHookAddress, type RawHookArtifactConfigs } from '@humanode-hyperlane/provider-sdk/hook';
4
+ import { type AnnotatedTx, type TxReceipt } from '@humanode-hyperlane/provider-sdk/module';
5
+ import { StarknetProvider } from '../clients/provider.js';
6
+ import { StarknetSigner } from '../clients/signer.js';
7
+ export declare class StarknetProtocolFeeHookReader implements ArtifactReader<RawHookArtifactConfigs['protocolFee'], DeployedHookAddress> {
8
+ protected readonly chainMetadata: ChainMetadataForAltVM;
9
+ protected readonly provider: StarknetProvider;
10
+ constructor(chainMetadata: ChainMetadataForAltVM, provider: StarknetProvider);
11
+ read(address: string): Promise<ArtifactDeployed<RawHookArtifactConfigs['protocolFee'], DeployedHookAddress>>;
12
+ }
13
+ export declare class StarknetProtocolFeeHookWriter extends StarknetProtocolFeeHookReader implements ArtifactWriter<RawHookArtifactConfigs['protocolFee'], DeployedHookAddress> {
14
+ private readonly signer;
15
+ constructor(chainMetadata: ChainMetadataForAltVM, provider: StarknetProvider, signer: StarknetSigner);
16
+ create(artifact: ArtifactNew<RawHookArtifactConfigs['protocolFee']>): Promise<[
17
+ ArtifactDeployed<RawHookArtifactConfigs['protocolFee'], DeployedHookAddress>,
18
+ TxReceipt[]
19
+ ]>;
20
+ update(artifact: ArtifactDeployed<RawHookArtifactConfigs['protocolFee'], DeployedHookAddress>): Promise<AnnotatedTx[]>;
21
+ }
22
+ //# sourceMappingURL=protocol-fee-hook-artifact-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"protocol-fee-hook-artifact-manager.d.ts","sourceRoot":"","sources":["../../src/hook/protocol-fee-hook-artifact-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AAC9E,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAChB,KAAK,cAAc,EAEnB,KAAK,cAAc,EACpB,MAAM,2CAA2C,CAAC;AACnD,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,sBAAsB,EAC5B,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,SAAS,EACf,MAAM,yCAAyC,CAAC;AASjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AA2FtD,qBAAa,6BAA8B,YAAW,cAAc,CAClE,sBAAsB,CAAC,aAAa,CAAC,EACrC,mBAAmB,CACpB;IAEG,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,qBAAqB;IACvD,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,gBAAgB;gBAD1B,aAAa,EAAE,qBAAqB,EACpC,QAAQ,EAAE,gBAAgB;IAGzC,IAAI,CACR,OAAO,EAAE,MAAM,GACd,OAAO,CACR,gBAAgB,CAAC,sBAAsB,CAAC,aAAa,CAAC,EAAE,mBAAmB,CAAC,CAC7E;CA8CF;AAED,qBAAa,6BACX,SAAQ,6BACR,YACE,cAAc,CAAC,sBAAsB,CAAC,aAAa,CAAC,EAAE,mBAAmB,CAAC;IAK1E,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAFvB,aAAa,EAAE,qBAAqB,EACpC,QAAQ,EAAE,gBAAgB,EACT,MAAM,EAAE,cAAc;IAKnC,MAAM,CACV,QAAQ,EAAE,WAAW,CAAC,sBAAsB,CAAC,aAAa,CAAC,CAAC,GAC3D,OAAO,CACR;QACE,gBAAgB,CACd,sBAAsB,CAAC,aAAa,CAAC,EACrC,mBAAmB,CACpB;QACD,SAAS,EAAE;KACZ,CACF;IAoCK,MAAM,CACV,QAAQ,EAAE,gBAAgB,CACxB,sBAAsB,CAAC,aAAa,CAAC,EACrC,mBAAmB,CACpB,GACA,OAAO,CAAC,WAAW,EAAE,CAAC;CAuD1B"}