@bananapus/nana-sdk-core 1.1.1 → 1.3.0

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 (95) hide show
  1. package/dist/cjs/constants.d.ts +8 -2
  2. package/dist/cjs/constants.d.ts.map +1 -1
  3. package/dist/cjs/constants.js +9 -1
  4. package/dist/cjs/constants.js.map +1 -1
  5. package/dist/cjs/generated/juicebox.d.ts +36 -0
  6. package/dist/cjs/generated/juicebox.d.ts.map +1 -1
  7. package/dist/cjs/generated/juicebox.js +37 -1
  8. package/dist/cjs/generated/juicebox.js.map +1 -1
  9. package/dist/cjs/utils/deploy.d.ts +17 -0
  10. package/dist/cjs/utils/deploy.d.ts.map +1 -1
  11. package/dist/cjs/utils/deploy.js +49 -17
  12. package/dist/cjs/utils/deploy.js.map +1 -1
  13. package/dist/cjs/utils/deploy.test.js +41 -0
  14. package/dist/cjs/utils/deploy.test.js.map +1 -1
  15. package/dist/cjs/utils/hook.d.ts +15 -0
  16. package/dist/cjs/utils/hook.d.ts.map +1 -1
  17. package/dist/cjs/utils/hook.js +20 -0
  18. package/dist/cjs/utils/hook.js.map +1 -1
  19. package/dist/cjs/v6/cashOut.d.ts +23 -0
  20. package/dist/cjs/v6/cashOut.d.ts.map +1 -1
  21. package/dist/cjs/v6/cashOut.js +35 -0
  22. package/dist/cjs/v6/cashOut.js.map +1 -1
  23. package/dist/cjs/v6/cashOut.test.js +20 -0
  24. package/dist/cjs/v6/cashOut.test.js.map +1 -1
  25. package/dist/cjs/v6/index.d.ts +1 -0
  26. package/dist/cjs/v6/index.d.ts.map +1 -1
  27. package/dist/cjs/v6/index.js +1 -0
  28. package/dist/cjs/v6/index.js.map +1 -1
  29. package/dist/cjs/v6/nft.d.ts +98 -0
  30. package/dist/cjs/v6/nft.d.ts.map +1 -0
  31. package/dist/cjs/v6/nft.js +166 -0
  32. package/dist/cjs/v6/nft.js.map +1 -0
  33. package/dist/cjs/v6/nft.test.d.ts +2 -0
  34. package/dist/cjs/v6/nft.test.d.ts.map +1 -0
  35. package/dist/cjs/v6/nft.test.js +206 -0
  36. package/dist/cjs/v6/nft.test.js.map +1 -0
  37. package/dist/cjs/v6/omnichain.d.ts +6 -1
  38. package/dist/cjs/v6/omnichain.d.ts.map +1 -1
  39. package/dist/cjs/v6/omnichain.js +5 -1
  40. package/dist/cjs/v6/omnichain.js.map +1 -1
  41. package/dist/cjs/v6/pay.d.ts +13 -5
  42. package/dist/cjs/v6/pay.d.ts.map +1 -1
  43. package/dist/cjs/v6/pay.js +15 -18
  44. package/dist/cjs/v6/pay.js.map +1 -1
  45. package/dist/cjs/v6/pay.test.js +7 -0
  46. package/dist/cjs/v6/pay.test.js.map +1 -1
  47. package/dist/esm/constants.d.ts +8 -2
  48. package/dist/esm/constants.d.ts.map +1 -1
  49. package/dist/esm/constants.js +9 -1
  50. package/dist/esm/constants.js.map +1 -1
  51. package/dist/esm/generated/juicebox.d.ts +36 -0
  52. package/dist/esm/generated/juicebox.d.ts.map +1 -1
  53. package/dist/esm/generated/juicebox.js +36 -0
  54. package/dist/esm/generated/juicebox.js.map +1 -1
  55. package/dist/esm/utils/deploy.d.ts +17 -0
  56. package/dist/esm/utils/deploy.d.ts.map +1 -1
  57. package/dist/esm/utils/deploy.js +50 -18
  58. package/dist/esm/utils/deploy.js.map +1 -1
  59. package/dist/esm/utils/deploy.test.js +41 -0
  60. package/dist/esm/utils/deploy.test.js.map +1 -1
  61. package/dist/esm/utils/hook.d.ts +15 -0
  62. package/dist/esm/utils/hook.d.ts.map +1 -1
  63. package/dist/esm/utils/hook.js +20 -1
  64. package/dist/esm/utils/hook.js.map +1 -1
  65. package/dist/esm/v6/cashOut.d.ts +23 -0
  66. package/dist/esm/v6/cashOut.d.ts.map +1 -1
  67. package/dist/esm/v6/cashOut.js +34 -0
  68. package/dist/esm/v6/cashOut.js.map +1 -1
  69. package/dist/esm/v6/cashOut.test.js +22 -2
  70. package/dist/esm/v6/cashOut.test.js.map +1 -1
  71. package/dist/esm/v6/index.d.ts +1 -0
  72. package/dist/esm/v6/index.d.ts.map +1 -1
  73. package/dist/esm/v6/index.js +1 -0
  74. package/dist/esm/v6/index.js.map +1 -1
  75. package/dist/esm/v6/nft.d.ts +98 -0
  76. package/dist/esm/v6/nft.d.ts.map +1 -0
  77. package/dist/esm/v6/nft.js +160 -0
  78. package/dist/esm/v6/nft.js.map +1 -0
  79. package/dist/esm/v6/nft.test.d.ts +2 -0
  80. package/dist/esm/v6/nft.test.d.ts.map +1 -0
  81. package/dist/esm/v6/nft.test.js +204 -0
  82. package/dist/esm/v6/nft.test.js.map +1 -0
  83. package/dist/esm/v6/omnichain.d.ts +6 -1
  84. package/dist/esm/v6/omnichain.d.ts.map +1 -1
  85. package/dist/esm/v6/omnichain.js +6 -2
  86. package/dist/esm/v6/omnichain.js.map +1 -1
  87. package/dist/esm/v6/pay.d.ts +13 -5
  88. package/dist/esm/v6/pay.d.ts.map +1 -1
  89. package/dist/esm/v6/pay.js +17 -20
  90. package/dist/esm/v6/pay.js.map +1 -1
  91. package/dist/esm/v6/pay.test.js +7 -0
  92. package/dist/esm/v6/pay.test.js.map +1 -1
  93. package/dist/tsconfig.cjs.tsbuildinfo +1 -1
  94. package/dist/tsconfig.tsbuildinfo +1 -1
  95. package/package.json +1 -1
@@ -0,0 +1,166 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DISCOUNT_DENOMINATOR = void 0;
4
+ exports.effectiveTierPrice = effectiveTierPrice;
5
+ exports.get721MetadataIdTarget = get721MetadataIdTarget;
6
+ exports.getProject721Shop = getProject721Shop;
7
+ const viem_1 = require("viem");
8
+ const contracts_js_1 = require("../contracts.js");
9
+ const juicebox_js_1 = require("../generated/juicebox.js");
10
+ const revnets_js_1 = require("./revnets.js");
11
+ const rulesets_js_1 = require("./rulesets.js");
12
+ /**
13
+ * JB721TiersHookStore's `DISCOUNT_DENOMINATOR`: a tier's `discountPercent` is
14
+ * out of 200, so the shopper-facing "% off" is `discountPercent / 2`.
15
+ */
16
+ exports.DISCOUNT_DENOMINATOR = 200n;
17
+ /**
18
+ * A tier's effective (discounted) price, matching the on-chain formula in
19
+ * JB721TiersHookStore: `price - mulDiv(price, discountPercent, 200)` with
20
+ * integer-floor division.
21
+ *
22
+ * @param price The tier's full (undiscounted) price.
23
+ * @param discountPercent The tier's discount, out of 200 (`DISCOUNT_DENOMINATOR`).
24
+ */
25
+ function effectiveTierPrice(price, discountPercent) {
26
+ let discount = BigInt(discountPercent);
27
+ if (discount <= 0n)
28
+ return price;
29
+ if (discount > exports.DISCOUNT_DENOMINATOR)
30
+ discount = exports.DISCOUNT_DENOMINATOR;
31
+ return price - (price * discount) / exports.DISCOUNT_DENOMINATOR;
32
+ }
33
+ /**
34
+ * Read a JB721 hook's `METADATA_ID_TARGET` — the shared *implementation* address
35
+ * that pay/cash-out metadata ids must key off (a delegatecall clone reports the
36
+ * implementation, not itself). Falls back to `hook` if the read reverts (e.g. an
37
+ * older hook without the getter), which is only correct for a non-clone hook.
38
+ *
39
+ * @param client A viem public client on the given chain.
40
+ * @param args.hook The project's 721 tiers hook (clone) address.
41
+ */
42
+ async function get721MetadataIdTarget(client, { hook }) {
43
+ return client
44
+ .readContract({
45
+ address: hook,
46
+ abi: juicebox_js_1.jb721TiersHookAbi,
47
+ functionName: "METADATA_ID_TARGET",
48
+ })
49
+ .catch(() => hook);
50
+ }
51
+ /**
52
+ * Resolve a project's 721 tiers hook, its store, metadata id target, pricing
53
+ * context, and tiers in one call.
54
+ *
55
+ * Hook resolution mirrors the app patterns: revnets read
56
+ * `REVOwner.tiered721HookOf`; custom projects read the current ruleset's pay
57
+ * data hook — either the omnichain deployer (the real hook lives in
58
+ * `JBOmnichainDeployer.tiered721HookOf(projectId, rulesetId)`) or the 721 hook
59
+ * itself, verified by probing `STORE()` (a revert means it is not a 721 hook, so
60
+ * the project has no shop).
61
+ *
62
+ * Returns `null` when the project authoritatively has no 721 shop. RPC failures
63
+ * on authoritative reads throw, so a transient error surfaces as an error rather
64
+ * than a false "no shop".
65
+ *
66
+ * @param client A viem public client on the given chain.
67
+ * @param args.projectId The project (or revnet) id.
68
+ * @param args.isRevnet Whether the project is a revnet (changes hook resolution).
69
+ * @param args.tierLimit Max tiers to read from `tiersOf`. Defaults to 100.
70
+ * @param args.categories Tier categories to filter by (empty = all). Defaults to `[]`.
71
+ */
72
+ async function getProject721Shop(client, { chainId, projectId, isRevnet, tierLimit = 100, categories = [], }) {
73
+ // 1. Resolve the 721 hook.
74
+ let hook = null;
75
+ // A non-authoritative candidate is the ruleset data hook, which might be some
76
+ // other kind of hook; the STORE() probe below decides.
77
+ let authoritative = true;
78
+ if (isRevnet) {
79
+ const revnetHook = await (0, revnets_js_1.getRevnetTiered721Hook)(client, {
80
+ chainId,
81
+ revnetId: projectId,
82
+ });
83
+ hook = revnetHook !== viem_1.zeroAddress ? revnetHook : null;
84
+ }
85
+ else {
86
+ const { ruleset, metadata } = await (0, rulesets_js_1.getCurrentRuleset)(client, {
87
+ chainId,
88
+ projectId,
89
+ });
90
+ const dataHook = metadata.dataHook;
91
+ if (metadata.useDataHookForPay && dataHook && dataHook !== viem_1.zeroAddress) {
92
+ const omni = juicebox_js_1.jbContractAddress["6"][contracts_js_1.JBOmnichainDeployerContracts.JBOmnichainDeployer]?.[chainId];
93
+ if (omni && dataHook.toLowerCase() === omni.toLowerCase()) {
94
+ // Omnichain project: the real 721 hook lives in the deployer's
95
+ // per-ruleset mapping.
96
+ const [omniHook] = await client.readContract({
97
+ address: omni,
98
+ abi: juicebox_js_1.jbOmnichainDeployerAbi,
99
+ functionName: "tiered721HookOf",
100
+ args: [projectId, BigInt(ruleset.id)],
101
+ });
102
+ hook = omniHook !== viem_1.zeroAddress ? omniHook : null;
103
+ }
104
+ else {
105
+ // Single-chain custom project: the data hook may be the 721 hook itself.
106
+ hook = dataHook;
107
+ authoritative = false;
108
+ }
109
+ }
110
+ }
111
+ if (!hook)
112
+ return null;
113
+ // 2. The hook's store. For a non-authoritative candidate a revert means "not a
114
+ // 721 hook" (no shop); for an authoritative one, let failures throw.
115
+ const readStore = () => client.readContract({
116
+ address: hook,
117
+ abi: juicebox_js_1.jb721TiersHookAbi,
118
+ functionName: "STORE",
119
+ });
120
+ const store = authoritative
121
+ ? await readStore()
122
+ : await readStore().catch(() => null);
123
+ if (!store)
124
+ return null;
125
+ // 3. Metadata id target + pricing context. Pricing is meaningless without the
126
+ // hook's exact currency + decimals, so a failure here is an error, not a
127
+ // fallback.
128
+ const [metadataIdTarget, pricingRaw] = await Promise.all([
129
+ get721MetadataIdTarget(client, { chainId, hook }),
130
+ client.readContract({
131
+ address: hook,
132
+ abi: juicebox_js_1.jb721TiersHookAbi,
133
+ functionName: "pricingContext",
134
+ }),
135
+ ]);
136
+ // 4. The tiers, with resolver URIs included so callers can name tiers without
137
+ // a per-tier resolver read.
138
+ const raw = await client.readContract({
139
+ address: store,
140
+ abi: juicebox_js_1.jb721TiersHookStoreAbi,
141
+ functionName: "tiersOf",
142
+ args: [hook, categories, true, 0n, BigInt(tierLimit)],
143
+ });
144
+ const tiers = raw
145
+ .filter((tier) => tier.initialSupply > 0)
146
+ .map((tier) => ({
147
+ id: tier.id,
148
+ price: tier.price,
149
+ remainingSupply: tier.remainingSupply,
150
+ initialSupply: tier.initialSupply,
151
+ votingUnits: tier.votingUnits,
152
+ reserveFrequency: tier.reserveFrequency,
153
+ category: tier.category,
154
+ discountPercent: tier.discountPercent,
155
+ encodedIpfsUri: tier.encodedIpfsUri,
156
+ resolvedUri: tier.resolvedUri ?? "",
157
+ }));
158
+ return {
159
+ hook,
160
+ store,
161
+ metadataIdTarget,
162
+ pricing: { currency: Number(pricingRaw[0]), decimals: Number(pricingRaw[1]) },
163
+ tiers,
164
+ };
165
+ }
166
+ //# sourceMappingURL=nft.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nft.js","sourceRoot":"","sources":["../../../src/v6/nft.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=nft.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nft.test.d.ts","sourceRoot":"","sources":["../../../src/v6/nft.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,206 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const viem_1 = require("viem");
4
+ const vitest_1 = require("vitest");
5
+ const contracts_js_1 = require("../contracts.js");
6
+ const juicebox_js_1 = require("../generated/juicebox.js");
7
+ const nft_js_1 = require("./nft.js");
8
+ const chainId = 11155111;
9
+ const hook = "0x1111111111111111111111111111111111111111";
10
+ const impl = "0x2222222222222222222222222222222222222222";
11
+ const store = "0x3333333333333333333333333333333333333333";
12
+ (0, vitest_1.describe)("effectiveTierPrice", () => {
13
+ (0, vitest_1.test)("floors like on-chain mulDiv(price, discountPercent, 200)", () => {
14
+ // 100 - floor(100 * 25 / 200) = 100 - 12 = 88.
15
+ (0, vitest_1.expect)((0, nft_js_1.effectiveTierPrice)(100n, 25)).toEqual(88n);
16
+ });
17
+ (0, vitest_1.test)("no discount returns the full price", () => {
18
+ (0, vitest_1.expect)((0, nft_js_1.effectiveTierPrice)(1000n, 0)).toEqual(1000n);
19
+ });
20
+ (0, vitest_1.test)("full discount (denominator) is free", () => {
21
+ (0, vitest_1.expect)((0, nft_js_1.effectiveTierPrice)(1000n, Number(nft_js_1.DISCOUNT_DENOMINATOR))).toEqual(0n);
22
+ });
23
+ (0, vitest_1.test)("clamps discounts above the denominator to free", () => {
24
+ (0, vitest_1.expect)((0, nft_js_1.effectiveTierPrice)(1000n, 500)).toEqual(0n);
25
+ });
26
+ });
27
+ (0, vitest_1.describe)("get721MetadataIdTarget", () => {
28
+ (0, vitest_1.test)("returns METADATA_ID_TARGET (the implementation, not the clone)", async () => {
29
+ const client = {
30
+ readContract: async () => impl,
31
+ };
32
+ (0, vitest_1.expect)(await (0, nft_js_1.get721MetadataIdTarget)(client, { chainId, hook })).toEqual(impl);
33
+ });
34
+ (0, vitest_1.test)("falls back to the hook address if the getter reverts", async () => {
35
+ const client = {
36
+ readContract: async () => {
37
+ throw new Error("no such function");
38
+ },
39
+ };
40
+ (0, vitest_1.expect)(await (0, nft_js_1.get721MetadataIdTarget)(client, { chainId, hook })).toEqual(hook);
41
+ });
42
+ });
43
+ (0, vitest_1.describe)("getProject721Shop", () => {
44
+ (0, vitest_1.test)("returns null when a revnet has no 721 hook", async () => {
45
+ const client = {
46
+ // getRevnetTiered721Hook -> zero address.
47
+ readContract: async () => viem_1.zeroAddress,
48
+ };
49
+ (0, vitest_1.expect)(await (0, nft_js_1.getProject721Shop)(client, {
50
+ chainId,
51
+ projectId: 1n,
52
+ isRevnet: true,
53
+ })).toBeNull();
54
+ });
55
+ (0, vitest_1.test)("resolves a revnet shop: hook, store, target, pricing, tiers", async () => {
56
+ const client = {
57
+ readContract: async ({ address, functionName, }) => {
58
+ if (functionName === "tiered721HookOf")
59
+ return hook; // REVOwner
60
+ if (address === hook && functionName === "STORE")
61
+ return store;
62
+ if (functionName === "METADATA_ID_TARGET")
63
+ return impl;
64
+ if (functionName === "pricingContext")
65
+ return [61166n, 18n];
66
+ if (functionName === "tiersOf") {
67
+ return [
68
+ {
69
+ id: 1,
70
+ price: 1000n,
71
+ remainingSupply: 5,
72
+ initialSupply: 10,
73
+ votingUnits: 0n,
74
+ reserveFrequency: 0,
75
+ reserveBeneficiary: viem_1.zeroAddress,
76
+ encodedIpfsUri: `0x${"11".repeat(32)}`,
77
+ category: 0,
78
+ discountPercent: 0,
79
+ flags: {},
80
+ splitPercent: 0,
81
+ resolvedUri: "",
82
+ },
83
+ // Filtered out: initialSupply 0.
84
+ {
85
+ id: 2,
86
+ price: 0n,
87
+ remainingSupply: 0,
88
+ initialSupply: 0,
89
+ votingUnits: 0n,
90
+ reserveFrequency: 0,
91
+ reserveBeneficiary: viem_1.zeroAddress,
92
+ encodedIpfsUri: `0x${"00".repeat(32)}`,
93
+ category: 0,
94
+ discountPercent: 0,
95
+ flags: {},
96
+ splitPercent: 0,
97
+ resolvedUri: "",
98
+ },
99
+ ];
100
+ }
101
+ throw new Error(`unexpected read ${functionName}`);
102
+ },
103
+ };
104
+ const shop = await (0, nft_js_1.getProject721Shop)(client, {
105
+ chainId,
106
+ projectId: 1n,
107
+ isRevnet: true,
108
+ });
109
+ (0, vitest_1.expect)(shop).not.toBeNull();
110
+ (0, vitest_1.expect)(shop.hook).toEqual(hook);
111
+ (0, vitest_1.expect)(shop.store).toEqual(store);
112
+ (0, vitest_1.expect)(shop.metadataIdTarget).toEqual(impl);
113
+ (0, vitest_1.expect)(shop.pricing).toEqual({ currency: 61166, decimals: 18 });
114
+ (0, vitest_1.expect)(shop.tiers).toHaveLength(1);
115
+ (0, vitest_1.expect)(shop.tiers[0]).toMatchObject({ id: 1, price: 1000n });
116
+ });
117
+ const tiersOfOne = () => [
118
+ {
119
+ id: 1,
120
+ price: 1000n,
121
+ remainingSupply: 5,
122
+ initialSupply: 10,
123
+ votingUnits: 0n,
124
+ reserveFrequency: 0,
125
+ reserveBeneficiary: viem_1.zeroAddress,
126
+ encodedIpfsUri: `0x${"11".repeat(32)}`,
127
+ category: 0,
128
+ discountPercent: 0,
129
+ flags: {},
130
+ splitPercent: 0,
131
+ resolvedUri: "",
132
+ },
133
+ ];
134
+ // The custom-project omnichain deployer address on chain 11155111, read from
135
+ // the SDK's own address book so the branch matches real wiring.
136
+ const omniDeployer = juicebox_js_1.jbContractAddress["6"][contracts_js_1.JBOmnichainDeployerContracts.JBOmnichainDeployer]["11155111"];
137
+ (0, vitest_1.test)("custom project: resolves the real hook via the omnichain deployer", async () => {
138
+ const client = {
139
+ readContract: async ({ address, functionName, }) => {
140
+ // currentRulesetOf -> [ruleset, metadata] with the deployer as data hook.
141
+ if (functionName === "currentRulesetOf") {
142
+ return [
143
+ { id: 7 },
144
+ { useDataHookForPay: true, dataHook: omniDeployer },
145
+ ];
146
+ }
147
+ // The deployer maps to the real clone hook.
148
+ if (address.toLowerCase() === omniDeployer.toLowerCase() &&
149
+ functionName === "tiered721HookOf") {
150
+ return [hook, false];
151
+ }
152
+ if (address === hook && functionName === "STORE")
153
+ return store;
154
+ if (functionName === "METADATA_ID_TARGET")
155
+ return impl;
156
+ if (functionName === "pricingContext")
157
+ return [1n, 18n];
158
+ if (functionName === "tiersOf")
159
+ return tiersOfOne();
160
+ throw new Error(`unexpected read ${functionName} @ ${address}`);
161
+ },
162
+ };
163
+ const shop = await (0, nft_js_1.getProject721Shop)(client, {
164
+ chainId: 11155111,
165
+ projectId: 9n,
166
+ isRevnet: false,
167
+ });
168
+ (0, vitest_1.expect)(shop.hook).toEqual(hook);
169
+ (0, vitest_1.expect)(shop.metadataIdTarget).toEqual(impl);
170
+ });
171
+ (0, vitest_1.test)("custom project: data hook that is not a 721 hook is no shop", async () => {
172
+ const notAHook = "0x4444444444444444444444444444444444444444";
173
+ const client = {
174
+ readContract: async ({ functionName }) => {
175
+ if (functionName === "currentRulesetOf") {
176
+ return [{ id: 7 }, { useDataHookForPay: true, dataHook: notAHook }];
177
+ }
178
+ // Non-authoritative candidate: STORE() reverts => not a 721 hook.
179
+ if (functionName === "STORE")
180
+ throw new Error("no STORE");
181
+ throw new Error(`unexpected read ${functionName}`);
182
+ },
183
+ };
184
+ (0, vitest_1.expect)(await (0, nft_js_1.getProject721Shop)(client, {
185
+ chainId: 11155111,
186
+ projectId: 9n,
187
+ isRevnet: false,
188
+ })).toBeNull();
189
+ });
190
+ (0, vitest_1.test)("custom project: no pay data hook is no shop", async () => {
191
+ const client = {
192
+ readContract: async ({ functionName }) => {
193
+ if (functionName === "currentRulesetOf") {
194
+ return [{ id: 7 }, { useDataHookForPay: false, dataHook: viem_1.zeroAddress }];
195
+ }
196
+ throw new Error(`unexpected read ${functionName}`);
197
+ },
198
+ };
199
+ (0, vitest_1.expect)(await (0, nft_js_1.getProject721Shop)(client, {
200
+ chainId: 11155111,
201
+ projectId: 9n,
202
+ isRevnet: false,
203
+ })).toBeNull();
204
+ });
205
+ });
206
+ //# sourceMappingURL=nft.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nft.test.js","sourceRoot":"","sources":["../../../src/v6/nft.test.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { Address, ContractFunctionArgs, Hex } from "viem";
2
2
  import { jbOmnichainDeployerAbi } from "../generated/juicebox.js";
3
3
  import { JBChainId } from "../types.js";
4
- import { MappableAsset } from "../utils/deploy.js";
4
+ import { JBSuckerBridge, MappableAsset } from "../utils/deploy.js";
5
5
  import { JBTerminalConfig } from "./launch.js";
6
6
  import { JBRulesetConfig } from "./rulesets.js";
7
7
  type OmnichainLaunchArgs = ContractFunctionArgs<typeof jbOmnichainDeployerAbi, "payable", "launchProjectFor">;
@@ -45,6 +45,10 @@ export type JBSuckerDeploymentConfig = OmnichainLaunchArgs6[5];
45
45
  * `chainId`); sucker deployer configs are built for every other chain.
46
46
  * @param args.assets The assets to bridge between chains. Defaults to the
47
47
  * native token only.
48
+ * @param args.bridge The bridge infrastructure the suckers use: "ccip" (any
49
+ * chain pair, any asset — the default), "native" (OP/Base/Arbitrum standard
50
+ * bridges: Ethereum<->L2 pairs and the native token only), or "both" (a
51
+ * native AND a CCIP sucker per pair where both exist, for redundancy).
48
52
  * @param args.salt The shared salt (use the same value on every chain).
49
53
  * @param args.deploy721Config Optional tiered 721 hook to deploy with the
50
54
  * project (uses the 7-arg overload when given).
@@ -62,6 +66,7 @@ export declare function buildOmnichainLaunchProjectTx(args: {
62
66
  creationFee: bigint;
63
67
  salt: Hex;
64
68
  assets?: MappableAsset[];
69
+ bridge?: JBSuckerBridge;
65
70
  deploy721Config?: JBDeploy721TiersHookConfig;
66
71
  }): {
67
72
  chainId: 1 | 10 | 11155111 | 11155420 | 421614 | 84532 | 42161 | 8453;
@@ -1 +1 @@
1
- {"version":3,"file":"omnichain.d.ts","sourceRoot":"","sources":["../../../src/v6/omnichain.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,oBAAoB,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AAC1D,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,aAAa,EAA6B,MAAM,oBAAoB,CAAC;AAC9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAGhD,KAAK,mBAAmB,GAAG,oBAAoB,CAC7C,OAAO,sBAAsB,EAC7B,SAAS,EACT,kBAAkB,CACnB,CAAC;AAEF,KAAK,oBAAoB,GAAG,OAAO,CACjC,mBAAmB,EACnB,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CACzE,CAAC;AAEF,KAAK,oBAAoB,GAAG,OAAO,CAAC,mBAAmB,EAAE,oBAAoB,CAAC,CAAC;AAE/E;;;;GAIG;AACH,MAAM,MAAM,0BAA0B,GAAG,oBAAoB,CAAC,CAAC,CAAC,CAAC;AAEjE;;;;GAIG;AACH,MAAM,MAAM,wBAAwB,GAAG,oBAAoB,CAAC,CAAC,CAAC,CAAC;AAE/D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAgB,6BAA6B,CAAC,IAAI,EAAE;IAClD,OAAO,EAAE,SAAS,CAAC;IACnB,QAAQ,EAAE,SAAS,EAAE,CAAC;IACtB,KAAK,EAAE,OAAO,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,qBAAqB,EAAE,SAAS,eAAe,EAAE,CAAC;IAClD,sBAAsB,EAAE,SAAS,gBAAgB,EAAE,CAAC;IACpD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,GAAG,CAAC;IACV,MAAM,CAAC,EAAE,aAAa,EAAE,CAAC;IACzB,eAAe,CAAC,EAAE,0BAA0B,CAAC;CAC9C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+CA;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,6BAA6B,CAAC,IAAI,EAAE;IAClD,OAAO,EAAE,SAAS,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,qBAAqB,EAAE,SAAS,eAAe,EAAE,CAAC;IAClD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,eAAe,CAAC,EAAE,0BAA0B,CAAC;CAC9C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyBA"}
1
+ {"version":3,"file":"omnichain.d.ts","sourceRoot":"","sources":["../../../src/v6/omnichain.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,oBAAoB,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AAC1D,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EACL,cAAc,EACd,aAAa,EAEd,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAGhD,KAAK,mBAAmB,GAAG,oBAAoB,CAC7C,OAAO,sBAAsB,EAC7B,SAAS,EACT,kBAAkB,CACnB,CAAC;AAEF,KAAK,oBAAoB,GAAG,OAAO,CACjC,mBAAmB,EACnB,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CACzE,CAAC;AAEF,KAAK,oBAAoB,GAAG,OAAO,CAAC,mBAAmB,EAAE,oBAAoB,CAAC,CAAC;AAE/E;;;;GAIG;AACH,MAAM,MAAM,0BAA0B,GAAG,oBAAoB,CAAC,CAAC,CAAC,CAAC;AAEjE;;;;GAIG;AACH,MAAM,MAAM,wBAAwB,GAAG,oBAAoB,CAAC,CAAC,CAAC,CAAC;AAE/D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,wBAAgB,6BAA6B,CAAC,IAAI,EAAE;IAClD,OAAO,EAAE,SAAS,CAAC;IACnB,QAAQ,EAAE,SAAS,EAAE,CAAC;IACtB,KAAK,EAAE,OAAO,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,qBAAqB,EAAE,SAAS,eAAe,EAAE,CAAC;IAClD,sBAAsB,EAAE,SAAS,gBAAgB,EAAE,CAAC;IACpD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,GAAG,CAAC;IACV,MAAM,CAAC,EAAE,aAAa,EAAE,CAAC;IACzB,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,eAAe,CAAC,EAAE,0BAA0B,CAAC;CAC9C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+CA;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,6BAA6B,CAAC,IAAI,EAAE;IAClD,OAAO,EAAE,SAAS,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,qBAAqB,EAAE,SAAS,eAAe,EAAE,CAAC;IAClD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,eAAe,CAAC,EAAE,0BAA0B,CAAC;CAC9C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyBA"}
@@ -31,6 +31,10 @@ const types_js_1 = require("./types.js");
31
31
  * `chainId`); sucker deployer configs are built for every other chain.
32
32
  * @param args.assets The assets to bridge between chains. Defaults to the
33
33
  * native token only.
34
+ * @param args.bridge The bridge infrastructure the suckers use: "ccip" (any
35
+ * chain pair, any asset — the default), "native" (OP/Base/Arbitrum standard
36
+ * bridges: Ethereum<->L2 pairs and the native token only), or "both" (a
37
+ * native AND a CCIP sucker per pair where both exist, for redundancy).
34
38
  * @param args.salt The shared salt (use the same value on every chain).
35
39
  * @param args.deploy721Config Optional tiered 721 hook to deploy with the
36
40
  * project (uses the 7-arg overload when given).
@@ -41,7 +45,7 @@ function buildOmnichainLaunchProjectTx(args) {
41
45
  // parseSuckerDeployerConfig's return type is a v5/v6 union that TS cannot
42
46
  // narrow on the `version` option; passing `version: 6` guarantees the v6
43
47
  // shape at runtime.
44
- const suckerDeploymentConfiguration = (0, deploy_js_1.parseSuckerDeployerConfig)(args.chainId, args.chainIds, args.assets ?? [deploy_js_1.MappableAsset.NATIVE], { salt: args.salt, version: 6 });
48
+ const suckerDeploymentConfiguration = (0, deploy_js_1.parseSuckerDeployerConfig)(args.chainId, args.chainIds, args.assets ?? [deploy_js_1.MappableAsset.NATIVE], { salt: args.salt, version: 6, bridge: args.bridge });
45
49
  const address = (0, types_js_1.v6Address)("JBOmnichainDeployer", args.chainId);
46
50
  const memo = args.memo ?? "";
47
51
  if (args.deploy721Config) {
@@ -1 +1 @@
1
- {"version":3,"file":"omnichain.js","sourceRoot":"","sources":["../../../src/v6/omnichain.ts"],"names":[],"mappings":";;AAmEA,sEA2DC;AAgBD,sEA+BC;AA5KD,0DAAkE;AAElE,kDAA8E;AAG9E,yCAAuC;AA6BvC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,SAAgB,6BAA6B,CAAC,IAY7C;IACC,0EAA0E;IAC1E,yEAAyE;IACzE,oBAAoB;IACpB,MAAM,6BAA6B,GAAG,IAAA,qCAAyB,EAC7D,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,MAAM,IAAI,CAAC,yBAAa,CAAC,MAAM,CAAC,EACrC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,CACO,CAAC;IAEzC,MAAM,OAAO,GAAG,IAAA,oBAAS,EAAC,qBAAqB,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAC/D,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;IAE7B,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;QACzB,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,OAAO;YACP,GAAG,EAAE,oCAAsB;YAC3B,YAAY,EAAE,kBAA2B;YACzC,IAAI,EAAE;gBACJ,IAAI,CAAC,KAAK;gBACV,IAAI,CAAC,UAAU;gBACf,IAAI,CAAC,eAAe;gBACpB,IAAI,CAAC,qBAAqB;gBAC1B,IAAI,CAAC,sBAAsB;gBAC3B,IAAI;gBACJ,6BAA6B;aACrB;YACV,KAAK,EAAE,IAAI,CAAC,WAAW;SACxB,CAAC;IACJ,CAAC;IACD,OAAO;QACL,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,OAAO;QACP,GAAG,EAAE,oCAAsB;QAC3B,YAAY,EAAE,kBAA2B;QACzC,IAAI,EAAE;YACJ,IAAI,CAAC,KAAK;YACV,IAAI,CAAC,UAAU;YACf,IAAI,CAAC,qBAAqB;YAC1B,IAAI,CAAC,sBAAsB;YAC3B,IAAI;YACJ,6BAA6B;SACrB;QACV,KAAK,EAAE,IAAI,CAAC,WAAW;KACxB,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,SAAgB,6BAA6B,CAAC,IAM7C;IACC,MAAM,OAAO,GAAG,IAAA,oBAAS,EAAC,qBAAqB,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAC/D,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;IAE7B,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;QACzB,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,OAAO;YACP,GAAG,EAAE,oCAAsB;YAC3B,YAAY,EAAE,iBAA0B;YACxC,IAAI,EAAE;gBACJ,IAAI,CAAC,SAAS;gBACd,IAAI,CAAC,eAAe;gBACpB,IAAI,CAAC,qBAAqB;gBAC1B,IAAI;aACI;SACX,CAAC;IACJ,CAAC;IACD,OAAO;QACL,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,OAAO;QACP,GAAG,EAAE,oCAAsB;QAC3B,YAAY,EAAE,iBAA0B;QACxC,IAAI,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,qBAAqB,EAAE,IAAI,CAAU;KAClE,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"omnichain.js","sourceRoot":"","sources":["../../../src/v6/omnichain.ts"],"names":[],"mappings":";;AA2EA,sEA4DC;AAgBD,sEA+BC;AArLD,0DAAkE;AAElE,kDAI4B;AAG5B,yCAAuC;AA6BvC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,SAAgB,6BAA6B,CAAC,IAa7C;IACC,0EAA0E;IAC1E,yEAAyE;IACzE,oBAAoB;IACpB,MAAM,6BAA6B,GAAG,IAAA,qCAAyB,EAC7D,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,MAAM,IAAI,CAAC,yBAAa,CAAC,MAAM,CAAC,EACrC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CACd,CAAC;IAEzC,MAAM,OAAO,GAAG,IAAA,oBAAS,EAAC,qBAAqB,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAC/D,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;IAE7B,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;QACzB,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,OAAO;YACP,GAAG,EAAE,oCAAsB;YAC3B,YAAY,EAAE,kBAA2B;YACzC,IAAI,EAAE;gBACJ,IAAI,CAAC,KAAK;gBACV,IAAI,CAAC,UAAU;gBACf,IAAI,CAAC,eAAe;gBACpB,IAAI,CAAC,qBAAqB;gBAC1B,IAAI,CAAC,sBAAsB;gBAC3B,IAAI;gBACJ,6BAA6B;aACrB;YACV,KAAK,EAAE,IAAI,CAAC,WAAW;SACxB,CAAC;IACJ,CAAC;IACD,OAAO;QACL,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,OAAO;QACP,GAAG,EAAE,oCAAsB;QAC3B,YAAY,EAAE,kBAA2B;QACzC,IAAI,EAAE;YACJ,IAAI,CAAC,KAAK;YACV,IAAI,CAAC,UAAU;YACf,IAAI,CAAC,qBAAqB;YAC1B,IAAI,CAAC,sBAAsB;YAC3B,IAAI;YACJ,6BAA6B;SACrB;QACV,KAAK,EAAE,IAAI,CAAC,WAAW;KACxB,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,SAAgB,6BAA6B,CAAC,IAM7C;IACC,MAAM,OAAO,GAAG,IAAA,oBAAS,EAAC,qBAAqB,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAC/D,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;IAE7B,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;QACzB,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,OAAO;YACP,GAAG,EAAE,oCAAsB;YAC3B,YAAY,EAAE,iBAA0B;YACxC,IAAI,EAAE;gBACJ,IAAI,CAAC,SAAS;gBACd,IAAI,CAAC,eAAe;gBACpB,IAAI,CAAC,qBAAqB;gBAC1B,IAAI;aACI;SACX,CAAC;IACJ,CAAC;IACD,OAAO;QACL,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,OAAO;QACP,GAAG,EAAE,oCAAsB;QAC3B,YAAY,EAAE,iBAA0B;QACxC,IAAI,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,qBAAqB,EAAE,IAAI,CAAU;KAClE,CAAC;AACJ,CAAC"}
@@ -92,18 +92,26 @@ export declare function previewPay(client: PublicClient, { terminal, projectId,
92
92
  * Build pay metadata instructing a project's JB721 tiers hook to mint specific tiers.
93
93
  *
94
94
  * The tier payload is `abi.encode(bool allowOverspending, uint16[] tierIdsToMint)`,
95
- * keyed by the hook's metadata id (`bytes4(bytes20(hookAddress) ^
95
+ * keyed by the hook's metadata id (`bytes4(bytes20(metadataIdTarget) ^
96
96
  * bytes20(keccak256("pay")))`) and packed into the JBMetadataResolver
97
97
  * word-offset-table format.
98
98
  *
99
- * @param args.hookAddress The project's JB721 tiers hook (the ruleset's data hook).
99
+ * @param args.metadataIdTarget The hook's `METADATA_ID_TARGET` — the shared
100
+ * *implementation* address, NOT the project's clone hook address (see
101
+ * {@link get721MetadataIdTarget}). Passing the clone address makes the hook ignore
102
+ * the tiers and the payment mints ZERO NFTs (it succeeds, minting only tokens).
103
+ * @param args.hookAddress Deprecated alias for `metadataIdTarget`. Only correct
104
+ * when it already holds `METADATA_ID_TARGET`; prefer `metadataIdTarget`.
100
105
  * @param args.tierIdsToMint The tier ids to mint, one entry per NFT.
101
106
  * @param args.allowOverspending Whether payment beyond the tiers' total price is
102
- * allowed (excess mints no NFT). Defaults to true.
107
+ * allowed (excess mints no NFT). Defaults to true. Note the hook still gates this
108
+ * on its store's `preventOverspending` flag.
103
109
  * @returns The metadata to pass as `pay`'s `metadata` argument.
104
110
  */
105
- export declare function build721PayMetadata({ hookAddress, tierIdsToMint, allowOverspending, }: {
106
- hookAddress: Address;
111
+ export declare function build721PayMetadata({ metadataIdTarget, hookAddress, tierIdsToMint, allowOverspending, }: {
112
+ metadataIdTarget?: Address;
113
+ /** @deprecated Use `metadataIdTarget`. */
114
+ hookAddress?: Address;
107
115
  tierIdsToMint: bigint[];
108
116
  allowOverspending?: boolean;
109
117
  }): Hex;
@@ -1 +1 @@
1
- {"version":3,"file":"pay.d.ts","sourceRoot":"","sources":["../../../src/v6/pay.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,GAAG,EACH,YAAY,EAKb,MAAM,MAAM,CAAC;AAEd,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGxC;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,SAAS,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,GAAG,EAAE,OAAO,kBAAkB,CAAC;IAC/B,YAAY,EAAE,KAAK,CAAC;IACpB,IAAI,EAAE,SAAS,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;IACvE,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,UAAU,CAAC,EACzB,OAAO,EACP,QAAQ,EACR,SAAS,EACT,KAAK,EACL,MAAM,EACN,WAAW,EACX,iBAAsB,EACtB,IAAS,EACT,QAAe,GAChB,EAAE;IACD,OAAO,EAAE,SAAS,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,OAAO,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,GAAG,CAAC;CAChB,GAAG,cAAc,CAmBjB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB;;OAEG;IACH,qBAAqB,EAAE,MAAM,CAAC;IAC9B;;OAEG;IACH,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,UAAU,CAC9B,MAAM,EAAE,YAAY,EACpB,EACE,QAAQ,EACR,SAAS,EACT,KAAK,EACL,MAAM,EACN,WAAW,EACX,QAAe,GAChB,EAAE;IACD,OAAO,EAAE,SAAS,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,GAAG,CAAC;CAChB,GACA,OAAO,CAAC,UAAU,CAAC,CAUrB;AAkBD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,mBAAmB,CAAC,EAClC,WAAW,EACX,aAAa,EACb,iBAA8C,GAC/C,EAAE;IACD,WAAW,EAAE,OAAO,CAAC;IACrB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B,GAAG,GAAG,CAUN"}
1
+ {"version":3,"file":"pay.d.ts","sourceRoot":"","sources":["../../../src/v6/pay.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,GAAG,EACH,YAAY,EAEb,MAAM,MAAM,CAAC;AAEd,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGxC;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,SAAS,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,GAAG,EAAE,OAAO,kBAAkB,CAAC;IAC/B,YAAY,EAAE,KAAK,CAAC;IACpB,IAAI,EAAE,SAAS,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;IACvE,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,UAAU,CAAC,EACzB,OAAO,EACP,QAAQ,EACR,SAAS,EACT,KAAK,EACL,MAAM,EACN,WAAW,EACX,iBAAsB,EACtB,IAAS,EACT,QAAe,GAChB,EAAE;IACD,OAAO,EAAE,SAAS,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,OAAO,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,GAAG,CAAC;CAChB,GAAG,cAAc,CAmBjB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB;;OAEG;IACH,qBAAqB,EAAE,MAAM,CAAC;IAC9B;;OAEG;IACH,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,UAAU,CAC9B,MAAM,EAAE,YAAY,EACpB,EACE,QAAQ,EACR,SAAS,EACT,KAAK,EACL,MAAM,EACN,WAAW,EACX,QAAe,GAChB,EAAE;IACD,OAAO,EAAE,SAAS,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,GAAG,CAAC;CAChB,GACA,OAAO,CAAC,UAAU,CAAC,CAUrB;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,mBAAmB,CAAC,EAClC,gBAAgB,EAChB,WAAW,EACX,aAAa,EACb,iBAA8C,GAC/C,EAAE;IACD,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,0CAA0C;IAC1C,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B,GAAG,GAAG,CAeN"}
@@ -77,35 +77,32 @@ async function previewPay(client, { terminal, projectId, token, amount, benefici
77
77
  });
78
78
  return { beneficiaryTokenCount, reservedTokenCount };
79
79
  }
80
- /**
81
- * The metadata id a JB721 hook looks up in pay metadata:
82
- * `bytes4(bytes20(target) ^ bytes20(keccak256("pay")))`, where the target is the hook's
83
- * own address (`JB721Hook.METADATA_ID_TARGET` is `address(this)`).
84
- *
85
- * @link https://github.com/Bananapus/nana-core-v6/blob/main/src/libraries/JBMetadataResolver.sol (`getId`)
86
- */
87
- function pay721MetadataId(hookAddress) {
88
- const targetBytes = (0, viem_1.toBytes)(hookAddress).slice(0, 20);
89
- const purposeBytes = (0, viem_1.toBytes)((0, viem_1.keccak256)((0, viem_1.toBytes)("pay"))).slice(0, 20);
90
- const xorResult = targetBytes.map((byte, i) => byte ^ purposeBytes[i]);
91
- return (0, viem_1.bytesToHex)(xorResult.slice(0, 4));
92
- }
93
80
  /**
94
81
  * Build pay metadata instructing a project's JB721 tiers hook to mint specific tiers.
95
82
  *
96
83
  * The tier payload is `abi.encode(bool allowOverspending, uint16[] tierIdsToMint)`,
97
- * keyed by the hook's metadata id (`bytes4(bytes20(hookAddress) ^
84
+ * keyed by the hook's metadata id (`bytes4(bytes20(metadataIdTarget) ^
98
85
  * bytes20(keccak256("pay")))`) and packed into the JBMetadataResolver
99
86
  * word-offset-table format.
100
87
  *
101
- * @param args.hookAddress The project's JB721 tiers hook (the ruleset's data hook).
88
+ * @param args.metadataIdTarget The hook's `METADATA_ID_TARGET` — the shared
89
+ * *implementation* address, NOT the project's clone hook address (see
90
+ * {@link get721MetadataIdTarget}). Passing the clone address makes the hook ignore
91
+ * the tiers and the payment mints ZERO NFTs (it succeeds, minting only tokens).
92
+ * @param args.hookAddress Deprecated alias for `metadataIdTarget`. Only correct
93
+ * when it already holds `METADATA_ID_TARGET`; prefer `metadataIdTarget`.
102
94
  * @param args.tierIdsToMint The tier ids to mint, one entry per NFT.
103
95
  * @param args.allowOverspending Whether payment beyond the tiers' total price is
104
- * allowed (excess mints no NFT). Defaults to true.
96
+ * allowed (excess mints no NFT). Defaults to true. Note the hook still gates this
97
+ * on its store's `preventOverspending` flag.
105
98
  * @returns The metadata to pass as `pay`'s `metadata` argument.
106
99
  */
107
- function build721PayMetadata({ hookAddress, tierIdsToMint, allowOverspending = constants_js_1.DEFAULT_ALLOW_OVERSPENDING, }) {
100
+ function build721PayMetadata({ metadataIdTarget, hookAddress, tierIdsToMint, allowOverspending = constants_js_1.DEFAULT_ALLOW_OVERSPENDING, }) {
101
+ const target = metadataIdTarget ?? hookAddress;
102
+ if (!target) {
103
+ throw new Error("build721PayMetadata requires metadataIdTarget");
104
+ }
108
105
  const tierPayload = (0, viem_1.encodeAbiParameters)([{ type: "bool" }, { type: "uint16[]" }], [allowOverspending, tierIdsToMint.map(Number)]);
109
- return (0, hook_js_1.createHookMetadata)([pay721MetadataId(hookAddress)], [tierPayload]);
106
+ return (0, hook_js_1.createHookMetadata)([(0, hook_js_1.hookMetadataId)(target, "pay")], [tierPayload]);
110
107
  }
111
108
  //# sourceMappingURL=pay.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pay.js","sourceRoot":"","sources":["../../../src/v6/pay.ts"],"names":[],"mappings":";;AAiDA,gCAuCC;AAoCD,gCA4BC;AAgCD,kDAkBC;AA1MD,+BAQc;AACd,kDAA2E;AAC3E,0DAA8D;AAE9D,8CAAsD;AAetD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,SAAgB,UAAU,CAAC,EACzB,OAAO,EACP,QAAQ,EACR,SAAS,EACT,KAAK,EACL,MAAM,EACN,WAAW,EACX,iBAAiB,GAAG,EAAE,EACtB,IAAI,GAAG,EAAE,EACT,QAAQ,GAAG,IAAI,GAWhB;IACC,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,EAAE,KAAK,2BAAY,CAAC,WAAW,EAAE,CAAC;IAEpE,OAAO;QACL,OAAO;QACP,OAAO,EAAE,QAAQ;QACjB,GAAG,EAAE,gCAAkB;QACvB,YAAY,EAAE,KAAK;QACnB,IAAI,EAAE;YACJ,SAAS;YACT,KAAK;YACL,MAAM;YACN,WAAW;YACX,iBAAiB;YACjB,IAAI;YACJ,QAAQ;SACT;QACD,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;KAC9B,CAAC;AACJ,CAAC;AAgBD;;;;;;;;;;;;;;;;;;;GAmBG;AACI,KAAK,UAAU,UAAU,CAC9B,MAAoB,EACpB,EACE,QAAQ,EACR,SAAS,EACT,KAAK,EACL,MAAM,EACN,WAAW,EACX,QAAQ,GAAG,IAAI,GAShB;IAED,MAAM,CAAC,EAAE,qBAAqB,EAAE,kBAAkB,CAAC,GACjD,MAAM,MAAM,CAAC,YAAY,CAAC;QACxB,OAAO,EAAE,QAAQ;QACjB,GAAG,EAAE,gCAAkB;QACvB,YAAY,EAAE,eAAe;QAC7B,IAAI,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,CAAC;KACxD,CAAC,CAAC;IAEL,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,CAAC;AACvD,CAAC;AAED;;;;;;GAMG;AACH,SAAS,gBAAgB,CAAC,WAAoB;IAC5C,MAAM,WAAW,GAAG,IAAA,cAAO,EAAC,WAAW,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACtD,MAAM,YAAY,GAAG,IAAA,cAAO,EAAC,IAAA,gBAAS,EAAC,IAAA,cAAO,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAErE,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;IAEvE,OAAO,IAAA,iBAAU,EAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC3C,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,SAAgB,mBAAmB,CAAC,EAClC,WAAW,EACX,aAAa,EACb,iBAAiB,GAAG,yCAA0B,GAK/C;IACC,MAAM,WAAW,GAAG,IAAA,0BAAmB,EACrC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EACxC,CAAC,iBAAiB,EAAE,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAC/C,CAAC;IAEF,OAAO,IAAA,4BAAkB,EACvB,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC,EAC/B,CAAC,WAAW,CAAC,CACP,CAAC;AACX,CAAC"}
1
+ {"version":3,"file":"pay.js","sourceRoot":"","sources":["../../../src/v6/pay.ts"],"names":[],"mappings":";;AA8CA,gCAuCC;AAoCD,gCA4BC;AAsBD,kDA0BC;AArMD,+BAKc;AACd,kDAA2E;AAC3E,0DAA8D;AAE9D,8CAAsE;AAetE;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,SAAgB,UAAU,CAAC,EACzB,OAAO,EACP,QAAQ,EACR,SAAS,EACT,KAAK,EACL,MAAM,EACN,WAAW,EACX,iBAAiB,GAAG,EAAE,EACtB,IAAI,GAAG,EAAE,EACT,QAAQ,GAAG,IAAI,GAWhB;IACC,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,EAAE,KAAK,2BAAY,CAAC,WAAW,EAAE,CAAC;IAEpE,OAAO;QACL,OAAO;QACP,OAAO,EAAE,QAAQ;QACjB,GAAG,EAAE,gCAAkB;QACvB,YAAY,EAAE,KAAK;QACnB,IAAI,EAAE;YACJ,SAAS;YACT,KAAK;YACL,MAAM;YACN,WAAW;YACX,iBAAiB;YACjB,IAAI;YACJ,QAAQ;SACT;QACD,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;KAC9B,CAAC;AACJ,CAAC;AAgBD;;;;;;;;;;;;;;;;;;;GAmBG;AACI,KAAK,UAAU,UAAU,CAC9B,MAAoB,EACpB,EACE,QAAQ,EACR,SAAS,EACT,KAAK,EACL,MAAM,EACN,WAAW,EACX,QAAQ,GAAG,IAAI,GAShB;IAED,MAAM,CAAC,EAAE,qBAAqB,EAAE,kBAAkB,CAAC,GACjD,MAAM,MAAM,CAAC,YAAY,CAAC;QACxB,OAAO,EAAE,QAAQ;QACjB,GAAG,EAAE,gCAAkB;QACvB,YAAY,EAAE,eAAe;QAC7B,IAAI,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,CAAC;KACxD,CAAC,CAAC;IAEL,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,CAAC;AACvD,CAAC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,SAAgB,mBAAmB,CAAC,EAClC,gBAAgB,EAChB,WAAW,EACX,aAAa,EACb,iBAAiB,GAAG,yCAA0B,GAO/C;IACC,MAAM,MAAM,GAAG,gBAAgB,IAAI,WAAW,CAAC;IAC/C,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;IACnE,CAAC;IAED,MAAM,WAAW,GAAG,IAAA,0BAAmB,EACrC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EACxC,CAAC,iBAAiB,EAAE,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAC/C,CAAC;IAEF,OAAO,IAAA,4BAAkB,EACvB,CAAC,IAAA,wBAAc,EAAC,MAAM,EAAE,KAAK,CAAC,CAAC,EAC/B,CAAC,WAAW,CAAC,CACP,CAAC;AACX,CAAC"}