@bananapus/nana-sdk-core 1.1.0 → 1.2.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.
- package/dist/cjs/actions/JBSuckerAbi.js +4 -1
- package/dist/cjs/actions/JBSuckerAbi.js.map +1 -1
- package/dist/cjs/actions/dataHook.js +26 -22
- package/dist/cjs/actions/dataHook.js.map +1 -1
- package/dist/cjs/actions/projectMetadata.js +12 -8
- package/dist/cjs/actions/projectMetadata.js.map +1 -1
- package/dist/cjs/actions/suckerPairs.js +21 -17
- package/dist/cjs/actions/suckerPairs.js.map +1 -1
- package/dist/cjs/constants.d.ts +8 -2
- package/dist/cjs/constants.d.ts.map +1 -1
- package/dist/cjs/constants.js +97 -85
- package/dist/cjs/constants.js.map +1 -1
- package/dist/cjs/contracts.js +22 -19
- package/dist/cjs/contracts.js.map +1 -1
- package/dist/cjs/generated/juicebox.d.ts +36 -0
- package/dist/cjs/generated/juicebox.d.ts.map +1 -1
- package/dist/cjs/generated/juicebox.js +130 -90
- package/dist/cjs/generated/juicebox.js.map +1 -1
- package/dist/cjs/index.js +24 -8
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/package.json +1 -0
- package/dist/cjs/types.js +15 -4
- package/dist/cjs/types.js.map +1 -1
- package/dist/cjs/utils/contracts.js +19 -14
- package/dist/cjs/utils/contracts.js.map +1 -1
- package/dist/cjs/utils/data.js +23 -13
- package/dist/cjs/utils/data.js.map +1 -1
- package/dist/cjs/utils/data.test.js +19 -17
- package/dist/cjs/utils/data.test.js.map +1 -1
- package/dist/cjs/utils/debug.js +4 -1
- package/dist/cjs/utils/debug.js.map +1 -1
- package/dist/cjs/utils/deploy.d.ts +17 -0
- package/dist/cjs/utils/deploy.d.ts.map +1 -1
- package/dist/cjs/utils/deploy.js +63 -27
- package/dist/cjs/utils/deploy.js.map +1 -1
- package/dist/cjs/utils/deploy.test.js +56 -13
- package/dist/cjs/utils/deploy.test.js.map +1 -1
- package/dist/cjs/utils/fee.js +6 -3
- package/dist/cjs/utils/fee.js.map +1 -1
- package/dist/cjs/utils/fee.test.js +8 -6
- package/dist/cjs/utils/fee.test.js.map +1 -1
- package/dist/cjs/utils/format.js +11 -6
- package/dist/cjs/utils/format.js.map +1 -1
- package/dist/cjs/utils/format.test.js +11 -9
- package/dist/cjs/utils/format.test.js.map +1 -1
- package/dist/cjs/utils/hook.js +9 -6
- package/dist/cjs/utils/hook.js.map +1 -1
- package/dist/cjs/utils/index.js +28 -12
- package/dist/cjs/utils/index.js.map +1 -1
- package/dist/cjs/utils/ipfs.js +14 -6
- package/dist/cjs/utils/ipfs.js.map +1 -1
- package/dist/cjs/utils/ipfs.test.js +23 -18
- package/dist/cjs/utils/ipfs.test.js.map +1 -1
- package/dist/cjs/utils/revnet.js +9 -5
- package/dist/cjs/utils/revnet.js.map +1 -1
- package/dist/cjs/utils/revnet.test.js +9 -7
- package/dist/cjs/utils/revnet.test.js.map +1 -1
- package/dist/cjs/utils/ruleset.js +11 -7
- package/dist/cjs/utils/ruleset.js.map +1 -1
- package/dist/cjs/utils/ruleset.test.js +9 -7
- package/dist/cjs/utils/ruleset.test.js.map +1 -1
- package/dist/cjs/utils/token.js +26 -19
- package/dist/cjs/utils/token.js.map +1 -1
- package/dist/cjs/utils/token.test.js +25 -23
- package/dist/cjs/utils/token.test.js.map +1 -1
- package/dist/cjs/utils/tx.js +6 -3
- package/dist/cjs/utils/tx.js.map +1 -1
- package/dist/cjs/utils/urn.js +9 -5
- package/dist/cjs/utils/urn.js.map +1 -1
- package/dist/cjs/utils/urn.test.js +71 -69
- package/dist/cjs/utils/urn.test.js.map +1 -1
- package/dist/cjs/v6/cashOut.d.ts +5 -0
- package/dist/cjs/v6/cashOut.d.ts.map +1 -1
- package/dist/cjs/v6/cashOut.js +19 -10
- package/dist/cjs/v6/cashOut.js.map +1 -1
- package/dist/cjs/v6/cashOut.test.js +42 -40
- package/dist/cjs/v6/cashOut.test.js.map +1 -1
- package/dist/cjs/v6/currency.js +8 -4
- package/dist/cjs/v6/currency.js.map +1 -1
- package/dist/cjs/v6/currency.test.js +18 -16
- package/dist/cjs/v6/currency.test.js.map +1 -1
- package/dist/cjs/v6/fees.js +11 -6
- package/dist/cjs/v6/fees.js.map +1 -1
- package/dist/cjs/v6/fees.test.js +29 -27
- package/dist/cjs/v6/fees.test.js.map +1 -1
- package/dist/cjs/v6/index.js +31 -15
- package/dist/cjs/v6/index.js.map +1 -1
- package/dist/cjs/v6/launch.js +31 -23
- package/dist/cjs/v6/launch.js.map +1 -1
- package/dist/cjs/v6/launch.test.js +85 -83
- package/dist/cjs/v6/launch.test.js.map +1 -1
- package/dist/cjs/v6/loans.js +26 -19
- package/dist/cjs/v6/loans.js.map +1 -1
- package/dist/cjs/v6/loans.test.js +52 -50
- package/dist/cjs/v6/loans.test.js.map +1 -1
- package/dist/cjs/v6/omnichain.d.ts +6 -1
- package/dist/cjs/v6/omnichain.d.ts.map +1 -1
- package/dist/cjs/v6/omnichain.js +20 -12
- package/dist/cjs/v6/omnichain.js.map +1 -1
- package/dist/cjs/v6/omnichain.test.js +63 -61
- package/dist/cjs/v6/omnichain.test.js.map +1 -1
- package/dist/cjs/v6/pay.js +20 -15
- package/dist/cjs/v6/pay.js.map +1 -1
- package/dist/cjs/v6/pay.test.js +49 -47
- package/dist/cjs/v6/pay.test.js.map +1 -1
- package/dist/cjs/v6/permissions.js +14 -9
- package/dist/cjs/v6/permissions.js.map +1 -1
- package/dist/cjs/v6/permissions.test.js +47 -45
- package/dist/cjs/v6/permissions.test.js.map +1 -1
- package/dist/cjs/v6/revnets.d.ts +5 -3
- package/dist/cjs/v6/revnets.d.ts.map +1 -1
- package/dist/cjs/v6/revnets.js +43 -26
- package/dist/cjs/v6/revnets.js.map +1 -1
- package/dist/cjs/v6/revnets.test.js +80 -78
- package/dist/cjs/v6/revnets.test.js.map +1 -1
- package/dist/cjs/v6/rulesets.js +20 -14
- package/dist/cjs/v6/rulesets.js.map +1 -1
- package/dist/cjs/v6/rulesets.test.js +50 -48
- package/dist/cjs/v6/rulesets.test.js.map +1 -1
- package/dist/cjs/v6/splits.d.ts +3 -2
- package/dist/cjs/v6/splits.d.ts.map +1 -1
- package/dist/cjs/v6/splits.js +29 -18
- package/dist/cjs/v6/splits.js.map +1 -1
- package/dist/cjs/v6/splits.test.js +84 -80
- package/dist/cjs/v6/splits.test.js.map +1 -1
- package/dist/cjs/v6/suckers.js +22 -15
- package/dist/cjs/v6/suckers.js.map +1 -1
- package/dist/cjs/v6/suckers.test.js +57 -55
- package/dist/cjs/v6/suckers.test.js.map +1 -1
- package/dist/cjs/v6/terminals.js +15 -11
- package/dist/cjs/v6/terminals.js.map +1 -1
- package/dist/cjs/v6/terminals.test.js +30 -28
- package/dist/cjs/v6/terminals.test.js.map +1 -1
- package/dist/cjs/v6/tokens.js +34 -25
- package/dist/cjs/v6/tokens.js.map +1 -1
- package/dist/cjs/v6/tokens.test.js +66 -64
- package/dist/cjs/v6/tokens.test.js.map +1 -1
- package/dist/cjs/v6/types.js +6 -3
- package/dist/cjs/v6/types.js.map +1 -1
- package/dist/esm/constants.d.ts +8 -2
- package/dist/esm/constants.d.ts.map +1 -1
- package/dist/esm/constants.js +9 -1
- package/dist/esm/constants.js.map +1 -1
- package/dist/esm/generated/juicebox.d.ts +36 -0
- package/dist/esm/generated/juicebox.d.ts.map +1 -1
- package/dist/esm/generated/juicebox.js +36 -0
- package/dist/esm/generated/juicebox.js.map +1 -1
- package/dist/esm/utils/deploy.d.ts +17 -0
- package/dist/esm/utils/deploy.d.ts.map +1 -1
- package/dist/esm/utils/deploy.js +50 -18
- package/dist/esm/utils/deploy.js.map +1 -1
- package/dist/esm/utils/deploy.test.js +41 -0
- package/dist/esm/utils/deploy.test.js.map +1 -1
- package/dist/esm/v6/cashOut.d.ts +5 -0
- package/dist/esm/v6/cashOut.d.ts.map +1 -1
- package/dist/esm/v6/cashOut.js +5 -0
- package/dist/esm/v6/cashOut.js.map +1 -1
- package/dist/esm/v6/omnichain.d.ts +6 -1
- package/dist/esm/v6/omnichain.d.ts.map +1 -1
- package/dist/esm/v6/omnichain.js +6 -2
- package/dist/esm/v6/omnichain.js.map +1 -1
- package/dist/esm/v6/revnets.d.ts +5 -3
- package/dist/esm/v6/revnets.d.ts.map +1 -1
- package/dist/esm/v6/revnets.js +12 -4
- package/dist/esm/v6/revnets.js.map +1 -1
- package/dist/esm/v6/splits.d.ts +3 -2
- package/dist/esm/v6/splits.d.ts.map +1 -1
- package/dist/esm/v6/splits.js +9 -5
- package/dist/esm/v6/splits.js.map +1 -1
- package/dist/esm/v6/splits.test.js +8 -6
- package/dist/esm/v6/splits.test.js.map +1 -1
- package/dist/tsconfig.cjs.tsbuildinfo +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +2 -2
package/dist/cjs/v6/pay.test.js
CHANGED
|
@@ -1,40 +1,42 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const viem_1 = require("viem");
|
|
4
|
+
const vitest_1 = require("vitest");
|
|
5
|
+
const constants_js_1 = require("../constants.js");
|
|
6
|
+
const juicebox_js_1 = require("../generated/juicebox.js");
|
|
7
|
+
const pay_js_1 = require("./pay.js");
|
|
6
8
|
const chainId = 11155111;
|
|
7
9
|
const terminal = "0x1111111111111111111111111111111111111111";
|
|
8
10
|
const projectId = 3n;
|
|
9
11
|
const beneficiary = "0x2222222222222222222222222222222222222222";
|
|
10
12
|
const usdc = "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48";
|
|
11
|
-
describe("pay", () => {
|
|
12
|
-
test("buildPayTx sets value for native token payments", () => {
|
|
13
|
-
const tx = buildPayTx({
|
|
13
|
+
(0, vitest_1.describe)("pay", () => {
|
|
14
|
+
(0, vitest_1.test)("buildPayTx sets value for native token payments", () => {
|
|
15
|
+
const tx = (0, pay_js_1.buildPayTx)({
|
|
14
16
|
chainId,
|
|
15
17
|
terminal,
|
|
16
18
|
projectId,
|
|
17
|
-
token: NATIVE_TOKEN,
|
|
19
|
+
token: constants_js_1.NATIVE_TOKEN,
|
|
18
20
|
amount: 1000n,
|
|
19
21
|
beneficiary,
|
|
20
22
|
});
|
|
21
|
-
expect(tx.chainId).toEqual(chainId);
|
|
22
|
-
expect(tx.address).toEqual(terminal);
|
|
23
|
-
expect(tx.functionName).toEqual("pay");
|
|
24
|
-
expect(tx.value).toEqual(1000n);
|
|
25
|
-
expect(tx.args).toEqual([
|
|
23
|
+
(0, vitest_1.expect)(tx.chainId).toEqual(chainId);
|
|
24
|
+
(0, vitest_1.expect)(tx.address).toEqual(terminal);
|
|
25
|
+
(0, vitest_1.expect)(tx.functionName).toEqual("pay");
|
|
26
|
+
(0, vitest_1.expect)(tx.value).toEqual(1000n);
|
|
27
|
+
(0, vitest_1.expect)(tx.args).toEqual([
|
|
26
28
|
projectId,
|
|
27
|
-
NATIVE_TOKEN,
|
|
29
|
+
constants_js_1.NATIVE_TOKEN,
|
|
28
30
|
1000n,
|
|
29
31
|
beneficiary,
|
|
30
32
|
0n,
|
|
31
33
|
"",
|
|
32
34
|
"0x",
|
|
33
35
|
]);
|
|
34
|
-
expect(() => encodeFunctionData(tx)).not.toThrow();
|
|
36
|
+
(0, vitest_1.expect)(() => (0, viem_1.encodeFunctionData)(tx)).not.toThrow();
|
|
35
37
|
});
|
|
36
|
-
test("buildPayTx sets no value for ERC-20 payments", () => {
|
|
37
|
-
const tx = buildPayTx({
|
|
38
|
+
(0, vitest_1.test)("buildPayTx sets no value for ERC-20 payments", () => {
|
|
39
|
+
const tx = (0, pay_js_1.buildPayTx)({
|
|
38
40
|
chainId,
|
|
39
41
|
terminal,
|
|
40
42
|
projectId,
|
|
@@ -45,8 +47,8 @@ describe("pay", () => {
|
|
|
45
47
|
memo: "gm",
|
|
46
48
|
metadata: "0x1234",
|
|
47
49
|
});
|
|
48
|
-
expect(tx.value).toEqual(0n);
|
|
49
|
-
expect(tx.args).toEqual([
|
|
50
|
+
(0, vitest_1.expect)(tx.value).toEqual(0n);
|
|
51
|
+
(0, vitest_1.expect)(tx.args).toEqual([
|
|
50
52
|
projectId,
|
|
51
53
|
usdc,
|
|
52
54
|
1000n,
|
|
@@ -55,9 +57,9 @@ describe("pay", () => {
|
|
|
55
57
|
"gm",
|
|
56
58
|
"0x1234",
|
|
57
59
|
]);
|
|
58
|
-
expect(() => encodeFunctionData(tx)).not.toThrow();
|
|
60
|
+
(0, vitest_1.expect)(() => (0, viem_1.encodeFunctionData)(tx)).not.toThrow();
|
|
59
61
|
});
|
|
60
|
-
test("previewPay calls the terminal's previewPayFor", async () => {
|
|
62
|
+
(0, vitest_1.test)("previewPay calls the terminal's previewPayFor", async () => {
|
|
61
63
|
const calls = [];
|
|
62
64
|
const client = {
|
|
63
65
|
async readContract(params) {
|
|
@@ -65,64 +67,64 @@ describe("pay", () => {
|
|
|
65
67
|
return [{}, 100n, 25n, []];
|
|
66
68
|
},
|
|
67
69
|
};
|
|
68
|
-
const preview = await previewPay(client, {
|
|
70
|
+
const preview = await (0, pay_js_1.previewPay)(client, {
|
|
69
71
|
chainId,
|
|
70
72
|
terminal,
|
|
71
73
|
projectId,
|
|
72
|
-
token: NATIVE_TOKEN,
|
|
74
|
+
token: constants_js_1.NATIVE_TOKEN,
|
|
73
75
|
amount: 1000n,
|
|
74
76
|
beneficiary,
|
|
75
77
|
});
|
|
76
|
-
expect(preview).toEqual({
|
|
78
|
+
(0, vitest_1.expect)(preview).toEqual({
|
|
77
79
|
beneficiaryTokenCount: 100n,
|
|
78
80
|
reservedTokenCount: 25n,
|
|
79
81
|
});
|
|
80
|
-
expect(calls[0].address).toEqual(terminal);
|
|
81
|
-
expect(calls[0].abi).toBe(jbMultiTerminalAbi);
|
|
82
|
-
expect(calls[0].functionName).toEqual("previewPayFor");
|
|
83
|
-
expect(calls[0].args).toEqual([
|
|
82
|
+
(0, vitest_1.expect)(calls[0].address).toEqual(terminal);
|
|
83
|
+
(0, vitest_1.expect)(calls[0].abi).toBe(juicebox_js_1.jbMultiTerminalAbi);
|
|
84
|
+
(0, vitest_1.expect)(calls[0].functionName).toEqual("previewPayFor");
|
|
85
|
+
(0, vitest_1.expect)(calls[0].args).toEqual([
|
|
84
86
|
projectId,
|
|
85
|
-
NATIVE_TOKEN,
|
|
87
|
+
constants_js_1.NATIVE_TOKEN,
|
|
86
88
|
1000n,
|
|
87
89
|
beneficiary,
|
|
88
90
|
"0x",
|
|
89
91
|
]);
|
|
90
92
|
});
|
|
91
|
-
test("build721PayMetadata packs the hook's metadata id and tier payload", () => {
|
|
93
|
+
(0, vitest_1.test)("build721PayMetadata packs the hook's metadata id and tier payload", () => {
|
|
92
94
|
// With a hook address whose first 4 bytes are zero, the metadata id is the first
|
|
93
95
|
// 4 bytes of keccak256("pay").
|
|
94
|
-
const metadata = build721PayMetadata({
|
|
96
|
+
const metadata = (0, pay_js_1.build721PayMetadata)({
|
|
95
97
|
hookAddress: "0x00000000000000000000000000000000DeaDBeef",
|
|
96
98
|
tierIdsToMint: [1n, 2n],
|
|
97
99
|
});
|
|
98
100
|
// Word 0 is the protocol's reserved word.
|
|
99
|
-
expect(sliceHex(metadata, 0, 32)).toEqual(`0x${"00".repeat(32)}`);
|
|
101
|
+
(0, vitest_1.expect)((0, viem_1.sliceHex)(metadata, 0, 32)).toEqual(`0x${"00".repeat(32)}`);
|
|
100
102
|
// The lookup table: the hook's metadata id, then the payload's word offset (2).
|
|
101
|
-
expect(sliceHex(metadata, 32, 36)).toEqual("0xadc75680");
|
|
102
|
-
expect(sliceHex(metadata, 36, 37)).toEqual("0x02");
|
|
103
|
+
(0, vitest_1.expect)((0, viem_1.sliceHex)(metadata, 32, 36)).toEqual("0xadc75680");
|
|
104
|
+
(0, vitest_1.expect)((0, viem_1.sliceHex)(metadata, 36, 37)).toEqual("0x02");
|
|
103
105
|
// The payload starts at word 2 and decodes to (allowOverspending, tierIdsToMint).
|
|
104
|
-
const payload = sliceHex(metadata, 64);
|
|
105
|
-
const [allowOverspending, tierIds] = decodeAbiParameters([{ type: "bool" }, { type: "uint16[]" }], payload);
|
|
106
|
-
expect(allowOverspending).toEqual(true);
|
|
107
|
-
expect(tierIds).toEqual([1, 2]);
|
|
106
|
+
const payload = (0, viem_1.sliceHex)(metadata, 64);
|
|
107
|
+
const [allowOverspending, tierIds] = (0, viem_1.decodeAbiParameters)([{ type: "bool" }, { type: "uint16[]" }], payload);
|
|
108
|
+
(0, vitest_1.expect)(allowOverspending).toEqual(true);
|
|
109
|
+
(0, vitest_1.expect)(tierIds).toEqual([1, 2]);
|
|
108
110
|
});
|
|
109
|
-
test("build721PayMetadata respects allowOverspending false", () => {
|
|
110
|
-
const metadata = build721PayMetadata({
|
|
111
|
+
(0, vitest_1.test)("build721PayMetadata respects allowOverspending false", () => {
|
|
112
|
+
const metadata = (0, pay_js_1.build721PayMetadata)({
|
|
111
113
|
hookAddress: "0x00000000000000000000000000000000DeaDBeef",
|
|
112
114
|
tierIdsToMint: [5n],
|
|
113
115
|
allowOverspending: false,
|
|
114
116
|
});
|
|
115
|
-
const [allowOverspending, tierIds] = decodeAbiParameters([{ type: "bool" }, { type: "uint16[]" }], sliceHex(metadata, 64));
|
|
116
|
-
expect(allowOverspending).toEqual(false);
|
|
117
|
-
expect(tierIds).toEqual([5]);
|
|
117
|
+
const [allowOverspending, tierIds] = (0, viem_1.decodeAbiParameters)([{ type: "bool" }, { type: "uint16[]" }], (0, viem_1.sliceHex)(metadata, 64));
|
|
118
|
+
(0, vitest_1.expect)(allowOverspending).toEqual(false);
|
|
119
|
+
(0, vitest_1.expect)(tierIds).toEqual([5]);
|
|
118
120
|
});
|
|
119
|
-
test("build721PayMetadata id XORs the hook address with keccak256('pay')", () => {
|
|
120
|
-
const metadata = build721PayMetadata({
|
|
121
|
+
(0, vitest_1.test)("build721PayMetadata id XORs the hook address with keccak256('pay')", () => {
|
|
122
|
+
const metadata = (0, pay_js_1.build721PayMetadata)({
|
|
121
123
|
hookAddress: "0x1111111111111111111111111111111111111111",
|
|
122
124
|
tierIdsToMint: [1n],
|
|
123
125
|
});
|
|
124
126
|
// 0xadc75680 (first 4 bytes of keccak256("pay")) XOR 0x11111111.
|
|
125
|
-
expect(sliceHex(metadata, 32, 36)).toEqual("0xbcd64791");
|
|
127
|
+
(0, vitest_1.expect)((0, viem_1.sliceHex)(metadata, 32, 36)).toEqual("0xbcd64791");
|
|
126
128
|
});
|
|
127
129
|
});
|
|
128
130
|
//# sourceMappingURL=pay.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pay.test.js","sourceRoot":"","sources":["../../../src/v6/pay.test.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"pay.test.js","sourceRoot":"","sources":["../../../src/v6/pay.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.JBPermissionIdsV6 = void 0;
|
|
4
|
+
exports.buildSetPermissionsTx = buildSetPermissionsTx;
|
|
5
|
+
exports.hasPermissions = hasPermissions;
|
|
6
|
+
const juicebox_js_1 = require("../generated/juicebox.js");
|
|
7
|
+
const types_js_1 = require("./types.js");
|
|
3
8
|
/**
|
|
4
9
|
* The v6 permission ids, transcribed from JBPermissionIds.sol.
|
|
5
10
|
*
|
|
@@ -9,7 +14,7 @@ import { v6Address } from "./types.js";
|
|
|
9
14
|
*
|
|
10
15
|
* @link https://github.com/Bananapus/nana-permission-ids-v6/blob/main/src/JBPermissionIds.sol
|
|
11
16
|
*/
|
|
12
|
-
|
|
17
|
+
exports.JBPermissionIdsV6 = {
|
|
13
18
|
/**
|
|
14
19
|
* Grants all permissions across every Juicebox contract. Use with extreme caution.
|
|
15
20
|
*/
|
|
@@ -76,11 +81,11 @@ export const JBPermissionIdsV6 = {
|
|
|
76
81
|
* {@link JBPermissionIdsV6}).
|
|
77
82
|
* @returns The transaction request.
|
|
78
83
|
*/
|
|
79
|
-
|
|
84
|
+
function buildSetPermissionsTx({ chainId, account, operator, projectId, permissionIds, }) {
|
|
80
85
|
return {
|
|
81
86
|
chainId,
|
|
82
|
-
address: v6Address("JBPermissions", chainId),
|
|
83
|
-
abi: jbPermissionsAbi,
|
|
87
|
+
address: (0, types_js_1.v6Address)("JBPermissions", chainId),
|
|
88
|
+
abi: juicebox_js_1.jbPermissionsAbi,
|
|
84
89
|
functionName: "setPermissionsFor",
|
|
85
90
|
args: [account, { operator, projectId, permissionIds }],
|
|
86
91
|
};
|
|
@@ -102,10 +107,10 @@ export function buildSetPermissionsTx({ chainId, account, operator, projectId, p
|
|
|
102
107
|
* project id (0) should satisfy the check. Defaults to true.
|
|
103
108
|
* @returns True when the operator holds every given permission.
|
|
104
109
|
*/
|
|
105
|
-
|
|
110
|
+
async function hasPermissions(client, { chainId, operator, account, projectId, permissionIds, includeRoot = true, includeWildcardProjectId = true, }) {
|
|
106
111
|
return client.readContract({
|
|
107
|
-
address: v6Address("JBPermissions", chainId),
|
|
108
|
-
abi: jbPermissionsAbi,
|
|
112
|
+
address: (0, types_js_1.v6Address)("JBPermissions", chainId),
|
|
113
|
+
abi: juicebox_js_1.jbPermissionsAbi,
|
|
109
114
|
functionName: "hasPermissions",
|
|
110
115
|
args: [
|
|
111
116
|
operator,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"permissions.js","sourceRoot":"","sources":["../../../src/v6/permissions.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"permissions.js","sourceRoot":"","sources":["../../../src/v6/permissions.ts"],"names":[],"mappings":";;;AA4GA,sDAoBC;AAmBD,wCAiCC;AAnLD,0DAA4D;AAE5D,yCAAuC;AAEvC;;;;;;;;GAQG;AACU,QAAA,iBAAiB,GAAG;IAC/B;;OAEG;IACH,IAAI,EAAE,CAAC;IAEP,eAAe;IACf,cAAc,EAAE,CAAC;IACjB,eAAe,EAAE,CAAC;IAClB,eAAe,EAAE,CAAC;IAClB,YAAY,EAAE,CAAC;IACf,gBAAgB,EAAE,CAAC;IACnB,eAAe,EAAE,CAAC;IAClB,YAAY,EAAE,CAAC;IACf,SAAS,EAAE,CAAC;IACZ,WAAW,EAAE,EAAE;IACf,WAAW,EAAE,EAAE;IACf,YAAY,EAAE,EAAE;IAChB,gBAAgB,EAAE,EAAE;IACpB,cAAc,EAAE,EAAE;IAClB,aAAa,EAAE,EAAE;IACjB,aAAa,EAAE,EAAE;IACjB,oBAAoB,EAAE,EAAE;IACxB,aAAa,EAAE,EAAE;IACjB,gBAAgB,EAAE,EAAE;IACpB,cAAc,EAAE,EAAE;IAClB,uBAAuB,EAAE,EAAE;IAC3B,kBAAkB,EAAE,EAAE;IACtB,cAAc,EAAE,EAAE;IAElB,mBAAmB;IACnB,gBAAgB,EAAE,EAAE;IACpB,gBAAgB,EAAE,EAAE;IACpB,QAAQ,EAAE,EAAE;IACZ,wBAAwB,EAAE,EAAE;IAE5B,uBAAuB;IACvB,gBAAgB,EAAE,EAAE;IACpB,gBAAgB,EAAE,EAAE;IACpB,gBAAgB,EAAE,EAAE;IAEpB,0BAA0B;IAC1B,mBAAmB,EAAE,EAAE;IAEvB,kBAAkB;IAClB,gBAAgB,EAAE,EAAE;IACpB,cAAc,EAAE,EAAE;IAClB,eAAe,EAAE,EAAE;IACnB,aAAa,EAAE,EAAE;IACjB,sBAAsB,EAAE,EAAE;IAE1B,iBAAiB;IACjB,SAAS,EAAE,EAAE;IACb,eAAe,EAAE,EAAE;IACnB,UAAU,EAAE,EAAE;CACN,CAAC;AAsBX;;;;;;;;;;;;;;;;GAgBG;AACH,SAAgB,qBAAqB,CAAC,EACpC,OAAO,EACP,OAAO,EACP,QAAQ,EACR,SAAS,EACT,aAAa,GAOd;IACC,OAAO;QACL,OAAO;QACP,OAAO,EAAE,IAAA,oBAAS,EAAC,eAAe,EAAE,OAAO,CAAC;QAC5C,GAAG,EAAE,8BAAgB;QACrB,YAAY,EAAE,mBAAmB;QACjC,IAAI,EAAE,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC;KACxD,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACI,KAAK,UAAU,cAAc,CAClC,MAAoB,EACpB,EACE,OAAO,EACP,QAAQ,EACR,OAAO,EACP,SAAS,EACT,aAAa,EACb,WAAW,GAAG,IAAI,EAClB,wBAAwB,GAAG,IAAI,GAShC;IAED,OAAO,MAAM,CAAC,YAAY,CAAC;QACzB,OAAO,EAAE,IAAA,oBAAS,EAAC,eAAe,EAAE,OAAO,CAAC;QAC5C,GAAG,EAAE,8BAAgB;QACrB,YAAY,EAAE,gBAAgB;QAC9B,IAAI,EAAE;YACJ,QAAQ;YACR,OAAO;YACP,SAAS;YACT,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC;YACzB,WAAW;YACX,wBAAwB;SACzB;KACF,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1,62 +1,64 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const viem_1 = require("viem");
|
|
4
|
+
const vitest_1 = require("vitest");
|
|
5
|
+
const juicebox_js_1 = require("../generated/juicebox.js");
|
|
6
|
+
const permissions_js_1 = require("./permissions.js");
|
|
7
|
+
const types_js_1 = require("./types.js");
|
|
6
8
|
const chainId = 11155111;
|
|
7
9
|
const account = "0x1111111111111111111111111111111111111111";
|
|
8
10
|
const operator = "0x2222222222222222222222222222222222222222";
|
|
9
11
|
const projectId = 3n;
|
|
10
|
-
describe("permissions", () => {
|
|
11
|
-
test("JBPermissionIdsV6 transcribes all 39 ids contiguously", () => {
|
|
12
|
-
const ids = Object.values(JBPermissionIdsV6);
|
|
13
|
-
expect(ids.length).toEqual(39);
|
|
14
|
-
expect(new Set(ids).size).toEqual(39);
|
|
15
|
-
expect([...ids].sort((a, b) => a - b)).toEqual(Array.from({ length: 39 }, (_, i) => i + 1));
|
|
12
|
+
(0, vitest_1.describe)("permissions", () => {
|
|
13
|
+
(0, vitest_1.test)("JBPermissionIdsV6 transcribes all 39 ids contiguously", () => {
|
|
14
|
+
const ids = Object.values(permissions_js_1.JBPermissionIdsV6);
|
|
15
|
+
(0, vitest_1.expect)(ids.length).toEqual(39);
|
|
16
|
+
(0, vitest_1.expect)(new Set(ids).size).toEqual(39);
|
|
17
|
+
(0, vitest_1.expect)([...ids].sort((a, b) => a - b)).toEqual(Array.from({ length: 39 }, (_, i) => i + 1));
|
|
16
18
|
});
|
|
17
|
-
test("JBPermissionIdsV6 spot checks against JBPermissionIds.sol", () => {
|
|
18
|
-
expect(JBPermissionIdsV6.ROOT).toEqual(1);
|
|
19
|
-
expect(JBPermissionIdsV6.QUEUE_RULESETS).toEqual(2);
|
|
20
|
-
expect(JBPermissionIdsV6.CASH_OUT_TOKENS).toEqual(4);
|
|
21
|
-
expect(JBPermissionIdsV6.SIGN_FOR_ERC20).toEqual(23);
|
|
22
|
-
expect(JBPermissionIdsV6.ADJUST_721_TIERS).toEqual(24);
|
|
23
|
-
expect(JBPermissionIdsV6.SET_BUYBACK_HOOK).toEqual(30);
|
|
24
|
-
expect(JBPermissionIdsV6.SET_ROUTER_TERMINAL).toEqual(31);
|
|
25
|
-
expect(JBPermissionIdsV6.SET_SUCKER_DEPRECATION).toEqual(36);
|
|
26
|
-
expect(JBPermissionIdsV6.REPAY_LOAN).toEqual(39);
|
|
19
|
+
(0, vitest_1.test)("JBPermissionIdsV6 spot checks against JBPermissionIds.sol", () => {
|
|
20
|
+
(0, vitest_1.expect)(permissions_js_1.JBPermissionIdsV6.ROOT).toEqual(1);
|
|
21
|
+
(0, vitest_1.expect)(permissions_js_1.JBPermissionIdsV6.QUEUE_RULESETS).toEqual(2);
|
|
22
|
+
(0, vitest_1.expect)(permissions_js_1.JBPermissionIdsV6.CASH_OUT_TOKENS).toEqual(4);
|
|
23
|
+
(0, vitest_1.expect)(permissions_js_1.JBPermissionIdsV6.SIGN_FOR_ERC20).toEqual(23);
|
|
24
|
+
(0, vitest_1.expect)(permissions_js_1.JBPermissionIdsV6.ADJUST_721_TIERS).toEqual(24);
|
|
25
|
+
(0, vitest_1.expect)(permissions_js_1.JBPermissionIdsV6.SET_BUYBACK_HOOK).toEqual(30);
|
|
26
|
+
(0, vitest_1.expect)(permissions_js_1.JBPermissionIdsV6.SET_ROUTER_TERMINAL).toEqual(31);
|
|
27
|
+
(0, vitest_1.expect)(permissions_js_1.JBPermissionIdsV6.SET_SUCKER_DEPRECATION).toEqual(36);
|
|
28
|
+
(0, vitest_1.expect)(permissions_js_1.JBPermissionIdsV6.REPAY_LOAN).toEqual(39);
|
|
27
29
|
});
|
|
28
|
-
test("buildSetPermissionsTx encodes setPermissionsFor", () => {
|
|
29
|
-
const tx = buildSetPermissionsTx({
|
|
30
|
+
(0, vitest_1.test)("buildSetPermissionsTx encodes setPermissionsFor", () => {
|
|
31
|
+
const tx = (0, permissions_js_1.buildSetPermissionsTx)({
|
|
30
32
|
chainId,
|
|
31
33
|
account,
|
|
32
34
|
operator,
|
|
33
35
|
projectId,
|
|
34
36
|
permissionIds: [
|
|
35
|
-
JBPermissionIdsV6.QUEUE_RULESETS,
|
|
36
|
-
JBPermissionIdsV6.SET_SPLIT_GROUPS,
|
|
37
|
+
permissions_js_1.JBPermissionIdsV6.QUEUE_RULESETS,
|
|
38
|
+
permissions_js_1.JBPermissionIdsV6.SET_SPLIT_GROUPS,
|
|
37
39
|
],
|
|
38
40
|
});
|
|
39
|
-
expect(tx.chainId).toEqual(chainId);
|
|
40
|
-
expect(tx.address).toEqual(v6Address("JBPermissions", chainId));
|
|
41
|
-
expect(tx.functionName).toEqual("setPermissionsFor");
|
|
42
|
-
expect(tx.args).toEqual([
|
|
41
|
+
(0, vitest_1.expect)(tx.chainId).toEqual(chainId);
|
|
42
|
+
(0, vitest_1.expect)(tx.address).toEqual((0, types_js_1.v6Address)("JBPermissions", chainId));
|
|
43
|
+
(0, vitest_1.expect)(tx.functionName).toEqual("setPermissionsFor");
|
|
44
|
+
(0, vitest_1.expect)(tx.args).toEqual([
|
|
43
45
|
account,
|
|
44
46
|
{ operator, projectId, permissionIds: [2, 19] },
|
|
45
47
|
]);
|
|
46
|
-
expect(() => encodeFunctionData(tx)).not.toThrow();
|
|
48
|
+
(0, vitest_1.expect)(() => (0, viem_1.encodeFunctionData)(tx)).not.toThrow();
|
|
47
49
|
});
|
|
48
|
-
test("buildSetPermissionsTx with an empty array revokes everything", () => {
|
|
49
|
-
const tx = buildSetPermissionsTx({
|
|
50
|
+
(0, vitest_1.test)("buildSetPermissionsTx with an empty array revokes everything", () => {
|
|
51
|
+
const tx = (0, permissions_js_1.buildSetPermissionsTx)({
|
|
50
52
|
chainId,
|
|
51
53
|
account,
|
|
52
54
|
operator,
|
|
53
55
|
projectId,
|
|
54
56
|
permissionIds: [],
|
|
55
57
|
});
|
|
56
|
-
expect(tx.args[1].permissionIds).toEqual([]);
|
|
57
|
-
expect(() => encodeFunctionData(tx)).not.toThrow();
|
|
58
|
+
(0, vitest_1.expect)(tx.args[1].permissionIds).toEqual([]);
|
|
59
|
+
(0, vitest_1.expect)(() => (0, viem_1.encodeFunctionData)(tx)).not.toThrow();
|
|
58
60
|
});
|
|
59
|
-
test("hasPermissions reads JBPermissions.hasPermissions", async () => {
|
|
61
|
+
(0, vitest_1.test)("hasPermissions reads JBPermissions.hasPermissions", async () => {
|
|
60
62
|
const calls = [];
|
|
61
63
|
const client = {
|
|
62
64
|
async readContract(params) {
|
|
@@ -64,19 +66,19 @@ describe("permissions", () => {
|
|
|
64
66
|
return true;
|
|
65
67
|
},
|
|
66
68
|
};
|
|
67
|
-
const result = await hasPermissions(client, {
|
|
69
|
+
const result = await (0, permissions_js_1.hasPermissions)(client, {
|
|
68
70
|
chainId,
|
|
69
71
|
operator,
|
|
70
72
|
account,
|
|
71
73
|
projectId,
|
|
72
|
-
permissionIds: [JBPermissionIdsV6.MINT_TOKENS],
|
|
74
|
+
permissionIds: [permissions_js_1.JBPermissionIdsV6.MINT_TOKENS],
|
|
73
75
|
});
|
|
74
|
-
expect(result).toEqual(true);
|
|
75
|
-
expect(calls[0].address).toEqual(v6Address("JBPermissions", chainId));
|
|
76
|
-
expect(calls[0].abi).toBe(jbPermissionsAbi);
|
|
77
|
-
expect(calls[0].functionName).toEqual("hasPermissions");
|
|
76
|
+
(0, vitest_1.expect)(result).toEqual(true);
|
|
77
|
+
(0, vitest_1.expect)(calls[0].address).toEqual((0, types_js_1.v6Address)("JBPermissions", chainId));
|
|
78
|
+
(0, vitest_1.expect)(calls[0].abi).toBe(juicebox_js_1.jbPermissionsAbi);
|
|
79
|
+
(0, vitest_1.expect)(calls[0].functionName).toEqual("hasPermissions");
|
|
78
80
|
// Ids are widened to uint256; root and wildcard-project grants count by default.
|
|
79
|
-
expect(calls[0].args).toEqual([
|
|
81
|
+
(0, vitest_1.expect)(calls[0].args).toEqual([
|
|
80
82
|
operator,
|
|
81
83
|
account,
|
|
82
84
|
projectId,
|
|
@@ -85,7 +87,7 @@ describe("permissions", () => {
|
|
|
85
87
|
true,
|
|
86
88
|
]);
|
|
87
89
|
});
|
|
88
|
-
test("hasPermissions can exclude root and wildcard grants", async () => {
|
|
90
|
+
(0, vitest_1.test)("hasPermissions can exclude root and wildcard grants", async () => {
|
|
89
91
|
const calls = [];
|
|
90
92
|
const client = {
|
|
91
93
|
async readContract(params) {
|
|
@@ -93,7 +95,7 @@ describe("permissions", () => {
|
|
|
93
95
|
return false;
|
|
94
96
|
},
|
|
95
97
|
};
|
|
96
|
-
await hasPermissions(client, {
|
|
98
|
+
await (0, permissions_js_1.hasPermissions)(client, {
|
|
97
99
|
chainId,
|
|
98
100
|
operator,
|
|
99
101
|
account,
|
|
@@ -102,7 +104,7 @@ describe("permissions", () => {
|
|
|
102
104
|
includeRoot: false,
|
|
103
105
|
includeWildcardProjectId: false,
|
|
104
106
|
});
|
|
105
|
-
expect(calls[0].args).toEqual([
|
|
107
|
+
(0, vitest_1.expect)(calls[0].args).toEqual([
|
|
106
108
|
operator,
|
|
107
109
|
account,
|
|
108
110
|
projectId,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"permissions.test.js","sourceRoot":"","sources":["../../../src/v6/permissions.test.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"permissions.test.js","sourceRoot":"","sources":["../../../src/v6/permissions.test.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/v6/revnets.d.ts
CHANGED
|
@@ -75,8 +75,10 @@ export declare function buildRevnetStageConfig(args: {
|
|
|
75
75
|
* Build a `REVDeployer.deployFor` transaction request deploying a new revnet
|
|
76
76
|
* (or a 721-shop revnet when `tiered721Config` is given).
|
|
77
77
|
*
|
|
78
|
-
*
|
|
79
|
-
* creation fee — read it with `getProjectCreationFee` on the
|
|
78
|
+
* Deploying a NEW revnet (`revnetId` 0n) is payable and must send EXACTLY the
|
|
79
|
+
* current project creation fee — read it with `getProjectCreationFee` on the
|
|
80
|
+
* same chain. Deploying for an EXISTING project must send no value (the
|
|
81
|
+
* deployer reverts otherwise), so `creationFee` is ignored in that case.
|
|
80
82
|
* For omnichain revnets, send one transaction per chain with an identical
|
|
81
83
|
* `config` (shared description salt, shared absolute stage starts) and a
|
|
82
84
|
* shared sucker salt.
|
|
@@ -99,7 +101,7 @@ export declare function buildDeployRevnetTx(args: {
|
|
|
99
101
|
config: REVConfig;
|
|
100
102
|
accountingContexts: readonly JBAccountingContext[];
|
|
101
103
|
suckerConfig: REVSuckerDeploymentConfig;
|
|
102
|
-
creationFee
|
|
104
|
+
creationFee?: bigint;
|
|
103
105
|
revnetId?: bigint;
|
|
104
106
|
tiered721Config?: REVDeploy721TiersHookConfig;
|
|
105
107
|
allowedPosts?: readonly REVCroptopAllowedPost[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"revnets.d.ts","sourceRoot":"","sources":["../../../src/v6/revnets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,MAAM,CAAC;AACnE,OAAO,EAAE,cAAc,EAAe,MAAM,0BAA0B,CAAC;AACvE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAGrD,KAAK,aAAa,GAAG,oBAAoB,CACvC,OAAO,cAAc,EACrB,SAAS,EACT,WAAW,CACZ,CAAC;AAEF,KAAK,cAAc,GAAG,OAAO,CAC3B,aAAa,EACb,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAChE,CAAC;AAEF,KAAK,cAAc,GAAG,OAAO,CAC3B,aAAa,EACb,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAC9C,CAAC;AAEF;;;;;GAKG;AACH,MAAM,MAAM,SAAS,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;AAE1C;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG,SAAS,CAAC,qBAAqB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEtE;;;GAGG;AACH,MAAM,MAAM,eAAe,GAAG,cAAc,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC;AAEtE;;;GAGG;AACH,MAAM,MAAM,yBAAyB,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;AAE1D;;GAEG;AACH,MAAM,MAAM,2BAA2B,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;AAE5D;;;GAGG;AACH,MAAM,MAAM,qBAAqB,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AAE9D;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE;IAC3C,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,SAAS,eAAe,EAAE,CAAC;IAC3C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC;IAClC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,GAAG,cAAc,CAYjB;AAED
|
|
1
|
+
{"version":3,"file":"revnets.d.ts","sourceRoot":"","sources":["../../../src/v6/revnets.ts"],"names":[],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"}
|