@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
|
@@ -1,78 +1,80 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
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 cashOut_js_1 = require("./cashOut.js");
|
|
8
|
+
const types_js_1 = require("./types.js");
|
|
7
9
|
const chainId = 11155111;
|
|
8
10
|
const terminal = "0x1111111111111111111111111111111111111111";
|
|
9
11
|
const holder = "0x2222222222222222222222222222222222222222";
|
|
10
12
|
const beneficiary = "0x3333333333333333333333333333333333333333";
|
|
11
13
|
const projectId = 3n;
|
|
12
|
-
describe("cashOut", () => {
|
|
13
|
-
test("buildCashOutTx encodes cashOutTokensOf", () => {
|
|
14
|
-
const tx = buildCashOutTx({
|
|
14
|
+
(0, vitest_1.describe)("cashOut", () => {
|
|
15
|
+
(0, vitest_1.test)("buildCashOutTx encodes cashOutTokensOf", () => {
|
|
16
|
+
const tx = (0, cashOut_js_1.buildCashOutTx)({
|
|
15
17
|
chainId,
|
|
16
18
|
terminal,
|
|
17
19
|
holder,
|
|
18
20
|
projectId,
|
|
19
|
-
cashOutCount: ONE_ETHER,
|
|
20
|
-
tokenToReclaim: NATIVE_TOKEN,
|
|
21
|
+
cashOutCount: constants_js_1.ONE_ETHER,
|
|
22
|
+
tokenToReclaim: constants_js_1.NATIVE_TOKEN,
|
|
21
23
|
beneficiary,
|
|
22
24
|
});
|
|
23
|
-
expect(tx.chainId).toEqual(chainId);
|
|
24
|
-
expect(tx.address).toEqual(terminal);
|
|
25
|
-
expect(tx.functionName).toEqual("cashOutTokensOf");
|
|
26
|
-
expect(tx.args).toEqual([
|
|
25
|
+
(0, vitest_1.expect)(tx.chainId).toEqual(chainId);
|
|
26
|
+
(0, vitest_1.expect)(tx.address).toEqual(terminal);
|
|
27
|
+
(0, vitest_1.expect)(tx.functionName).toEqual("cashOutTokensOf");
|
|
28
|
+
(0, vitest_1.expect)(tx.args).toEqual([
|
|
27
29
|
holder,
|
|
28
30
|
projectId,
|
|
29
|
-
ONE_ETHER,
|
|
30
|
-
NATIVE_TOKEN,
|
|
31
|
+
constants_js_1.ONE_ETHER,
|
|
32
|
+
constants_js_1.NATIVE_TOKEN,
|
|
31
33
|
0n,
|
|
32
34
|
beneficiary,
|
|
33
35
|
"0x",
|
|
34
36
|
]);
|
|
35
|
-
expect(() => encodeFunctionData(tx)).not.toThrow();
|
|
37
|
+
(0, vitest_1.expect)(() => (0, viem_1.encodeFunctionData)(tx)).not.toThrow();
|
|
36
38
|
});
|
|
37
|
-
test("buildCashOutTx passes minTokensReclaimed and metadata through", () => {
|
|
38
|
-
const tx = buildCashOutTx({
|
|
39
|
+
(0, vitest_1.test)("buildCashOutTx passes minTokensReclaimed and metadata through", () => {
|
|
40
|
+
const tx = (0, cashOut_js_1.buildCashOutTx)({
|
|
39
41
|
chainId,
|
|
40
42
|
terminal,
|
|
41
43
|
holder,
|
|
42
44
|
projectId,
|
|
43
|
-
cashOutCount: ONE_ETHER,
|
|
44
|
-
tokenToReclaim: NATIVE_TOKEN,
|
|
45
|
+
cashOutCount: constants_js_1.ONE_ETHER,
|
|
46
|
+
tokenToReclaim: constants_js_1.NATIVE_TOKEN,
|
|
45
47
|
minTokensReclaimed: 999n,
|
|
46
48
|
beneficiary,
|
|
47
49
|
metadata: "0x1234",
|
|
48
50
|
});
|
|
49
|
-
expect(tx.args[4]).toEqual(999n);
|
|
50
|
-
expect(tx.args[6]).toEqual("0x1234");
|
|
51
|
-
expect(() => encodeFunctionData(tx)).not.toThrow();
|
|
51
|
+
(0, vitest_1.expect)(tx.args[4]).toEqual(999n);
|
|
52
|
+
(0, vitest_1.expect)(tx.args[6]).toEqual("0x1234");
|
|
53
|
+
(0, vitest_1.expect)(() => (0, viem_1.encodeFunctionData)(tx)).not.toThrow();
|
|
52
54
|
});
|
|
53
|
-
test("getCashOutQuote reads the terminal store and applies the 2.5% fee", async () => {
|
|
55
|
+
(0, vitest_1.test)("getCashOutQuote reads the terminal store and applies the 2.5% fee", async () => {
|
|
54
56
|
const calls = [];
|
|
55
57
|
const client = {
|
|
56
58
|
async readContract(params) {
|
|
57
59
|
calls.push(params);
|
|
58
|
-
return ONE_ETHER;
|
|
60
|
+
return constants_js_1.ONE_ETHER;
|
|
59
61
|
},
|
|
60
62
|
};
|
|
61
|
-
const quote = await getCashOutQuote(client, {
|
|
63
|
+
const quote = await (0, cashOut_js_1.getCashOutQuote)(client, {
|
|
62
64
|
chainId,
|
|
63
65
|
projectId,
|
|
64
|
-
cashOutCount: ONE_ETHER,
|
|
66
|
+
cashOutCount: constants_js_1.ONE_ETHER,
|
|
65
67
|
});
|
|
66
|
-
expect(quote.reclaimAmount).toEqual(ONE_ETHER);
|
|
67
|
-
expect(quote.reclaimAmountAfterFee).toEqual(975000000000000000n);
|
|
68
|
-
expect(calls[0].address).toEqual(v6Address("JBTerminalStore", chainId));
|
|
69
|
-
expect(calls[0].abi).toBe(jbTerminalStoreAbi);
|
|
70
|
-
expect(calls[0].functionName).toEqual("currentReclaimableSurplusOf");
|
|
68
|
+
(0, vitest_1.expect)(quote.reclaimAmount).toEqual(constants_js_1.ONE_ETHER);
|
|
69
|
+
(0, vitest_1.expect)(quote.reclaimAmountAfterFee).toEqual(975000000000000000n);
|
|
70
|
+
(0, vitest_1.expect)(calls[0].address).toEqual((0, types_js_1.v6Address)("JBTerminalStore", chainId));
|
|
71
|
+
(0, vitest_1.expect)(calls[0].abi).toBe(juicebox_js_1.jbTerminalStoreAbi);
|
|
72
|
+
(0, vitest_1.expect)(calls[0].functionName).toEqual("currentReclaimableSurplusOf");
|
|
71
73
|
// Empty terminal/token arrays use all of the project's terminals and tokens;
|
|
72
74
|
// defaults quote 18 decimals in the native token's currency.
|
|
73
|
-
expect(calls[0].args).toEqual([projectId, ONE_ETHER, [], [], 18n, 61166n]);
|
|
75
|
+
(0, vitest_1.expect)(calls[0].args).toEqual([projectId, constants_js_1.ONE_ETHER, [], [], 18n, 61166n]);
|
|
74
76
|
});
|
|
75
|
-
test("getCashOutQuote respects custom decimals and currency", async () => {
|
|
77
|
+
(0, vitest_1.test)("getCashOutQuote respects custom decimals and currency", async () => {
|
|
76
78
|
const calls = [];
|
|
77
79
|
const client = {
|
|
78
80
|
async readContract(params) {
|
|
@@ -80,16 +82,16 @@ describe("cashOut", () => {
|
|
|
80
82
|
return 0n;
|
|
81
83
|
},
|
|
82
84
|
};
|
|
83
|
-
await getCashOutQuote(client, {
|
|
85
|
+
await (0, cashOut_js_1.getCashOutQuote)(client, {
|
|
84
86
|
chainId,
|
|
85
87
|
projectId,
|
|
86
|
-
cashOutCount: ONE_ETHER,
|
|
88
|
+
cashOutCount: constants_js_1.ONE_ETHER,
|
|
87
89
|
decimals: 6n,
|
|
88
90
|
currency: 0x3606eb48n,
|
|
89
91
|
});
|
|
90
|
-
expect(calls[0].args).toEqual([
|
|
92
|
+
(0, vitest_1.expect)(calls[0].args).toEqual([
|
|
91
93
|
projectId,
|
|
92
|
-
ONE_ETHER,
|
|
94
|
+
constants_js_1.ONE_ETHER,
|
|
93
95
|
[],
|
|
94
96
|
[],
|
|
95
97
|
6n,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cashOut.test.js","sourceRoot":"","sources":["../../../src/v6/cashOut.test.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"cashOut.test.js","sourceRoot":"","sources":["../../../src/v6/cashOut.test.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/v6/currency.js
CHANGED
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.NATIVE_TOKEN_CURRENCY_ID = exports.BASE_CURRENCY_USD = exports.BASE_CURRENCY_ETH = void 0;
|
|
4
|
+
exports.tokenCurrencyId = tokenCurrencyId;
|
|
1
5
|
/**
|
|
2
6
|
* The v6 base currency id for ETH (JBCurrencyIds.ETH).
|
|
3
7
|
*
|
|
@@ -10,7 +14,7 @@
|
|
|
10
14
|
*
|
|
11
15
|
* @link https://github.com/Bananapus/nana-core-v6/blob/main/src/libraries/JBCurrencyIds.sol
|
|
12
16
|
*/
|
|
13
|
-
|
|
17
|
+
exports.BASE_CURRENCY_ETH = 1;
|
|
14
18
|
/**
|
|
15
19
|
* The v6 base currency id for USD (JBCurrencyIds.USD).
|
|
16
20
|
*
|
|
@@ -19,14 +23,14 @@ export const BASE_CURRENCY_ETH = 1;
|
|
|
19
23
|
*
|
|
20
24
|
* @link https://github.com/Bananapus/nana-core-v6/blob/main/src/libraries/JBCurrencyIds.sol
|
|
21
25
|
*/
|
|
22
|
-
|
|
26
|
+
exports.BASE_CURRENCY_USD = 2;
|
|
23
27
|
/**
|
|
24
28
|
* The accounting-context currency id of the network's native token (e.g. ETH).
|
|
25
29
|
*
|
|
26
30
|
* Equal to `uint32(uint160(0x000000000000000000000000000000000000EEEe))` = 61166.
|
|
27
31
|
* This is what {@link tokenCurrencyId} returns for the native token address.
|
|
28
32
|
*/
|
|
29
|
-
|
|
33
|
+
exports.NATIVE_TOKEN_CURRENCY_ID = 61166;
|
|
30
34
|
/**
|
|
31
35
|
* The v6 accounting-context currency id for a token: `uint32(uint160(tokenAddress))`,
|
|
32
36
|
* i.e. the lowest 4 bytes of the token's address.
|
|
@@ -38,7 +42,7 @@ export const NATIVE_TOKEN_CURRENCY_ID = 61166;
|
|
|
38
42
|
* @param token The token address to derive a currency id from.
|
|
39
43
|
* @returns The token's accounting-context currency id (fits in a uint32).
|
|
40
44
|
*/
|
|
41
|
-
|
|
45
|
+
function tokenCurrencyId(token) {
|
|
42
46
|
return Number(BigInt(token) & 0xffffffffn);
|
|
43
47
|
}
|
|
44
48
|
//# sourceMappingURL=currency.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"currency.js","sourceRoot":"","sources":["../../../src/v6/currency.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"currency.js","sourceRoot":"","sources":["../../../src/v6/currency.ts"],"names":[],"mappings":";;;AA6CA,0CAEC;AA7CD;;;;;;;;;;;GAWG;AACU,QAAA,iBAAiB,GAAG,CAAC,CAAC;AAEnC;;;;;;;GAOG;AACU,QAAA,iBAAiB,GAAG,CAAC,CAAC;AAEnC;;;;;GAKG;AACU,QAAA,wBAAwB,GAAG,KAAK,CAAC;AAE9C;;;;;;;;;;GAUG;AACH,SAAgB,eAAe,CAAC,KAAc;IAC5C,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,WAAW,CAAC,CAAC;AAC7C,CAAC"}
|
|
@@ -1,24 +1,26 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const vitest_1 = require("vitest");
|
|
4
|
+
const constants_js_1 = require("../constants.js");
|
|
5
|
+
const currency_js_1 = require("./currency.js");
|
|
6
|
+
(0, vitest_1.describe)("currency", () => {
|
|
7
|
+
(0, vitest_1.test)("base currency ids", () => {
|
|
8
|
+
(0, vitest_1.expect)(currency_js_1.BASE_CURRENCY_ETH).toEqual(1);
|
|
9
|
+
(0, vitest_1.expect)(currency_js_1.BASE_CURRENCY_USD).toEqual(2);
|
|
8
10
|
});
|
|
9
|
-
test("tokenCurrencyId of the native token is 61166", () => {
|
|
10
|
-
expect(tokenCurrencyId(NATIVE_TOKEN)).toEqual(61166);
|
|
11
|
-
expect(tokenCurrencyId(NATIVE_TOKEN)).toEqual(NATIVE_TOKEN_CURRENCY_ID);
|
|
11
|
+
(0, vitest_1.test)("tokenCurrencyId of the native token is 61166", () => {
|
|
12
|
+
(0, vitest_1.expect)((0, currency_js_1.tokenCurrencyId)(constants_js_1.NATIVE_TOKEN)).toEqual(61166);
|
|
13
|
+
(0, vitest_1.expect)((0, currency_js_1.tokenCurrencyId)(constants_js_1.NATIVE_TOKEN)).toEqual(currency_js_1.NATIVE_TOKEN_CURRENCY_ID);
|
|
12
14
|
});
|
|
13
|
-
test("tokenCurrencyId is the low 32 bits of the address", () => {
|
|
15
|
+
(0, vitest_1.test)("tokenCurrencyId is the low 32 bits of the address", () => {
|
|
14
16
|
// Mainnet USDC; low 4 bytes are 0x3606eb48.
|
|
15
|
-
expect(tokenCurrencyId("0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48")).toEqual(0x3606eb48);
|
|
17
|
+
(0, vitest_1.expect)((0, currency_js_1.tokenCurrencyId)("0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48")).toEqual(0x3606eb48);
|
|
16
18
|
});
|
|
17
|
-
test("tokenCurrencyId of the zero address is 0", () => {
|
|
18
|
-
expect(tokenCurrencyId("0x0000000000000000000000000000000000000000")).toEqual(0);
|
|
19
|
+
(0, vitest_1.test)("tokenCurrencyId of the zero address is 0", () => {
|
|
20
|
+
(0, vitest_1.expect)((0, currency_js_1.tokenCurrencyId)("0x0000000000000000000000000000000000000000")).toEqual(0);
|
|
19
21
|
});
|
|
20
|
-
test("tokenCurrencyId fits in a uint32 even for high addresses", () => {
|
|
21
|
-
expect(tokenCurrencyId("0xffffffffffffffffffffffffffffffffffffffff")).toEqual(0xffffffff);
|
|
22
|
+
(0, vitest_1.test)("tokenCurrencyId fits in a uint32 even for high addresses", () => {
|
|
23
|
+
(0, vitest_1.expect)((0, currency_js_1.tokenCurrencyId)("0xffffffffffffffffffffffffffffffffffffffff")).toEqual(0xffffffff);
|
|
22
24
|
});
|
|
23
25
|
});
|
|
24
26
|
//# sourceMappingURL=currency.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"currency.test.js","sourceRoot":"","sources":["../../../src/v6/currency.test.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"currency.test.js","sourceRoot":"","sources":["../../../src/v6/currency.test.ts"],"names":[],"mappings":";;AAAA,mCAAgD;AAChD,kDAA+C;AAC/C,+CAKuB;AAEvB,IAAA,iBAAQ,EAAC,UAAU,EAAE,GAAG,EAAE;IACxB,IAAA,aAAI,EAAC,mBAAmB,EAAE,GAAG,EAAE;QAC7B,IAAA,eAAM,EAAC,+BAAiB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACrC,IAAA,eAAM,EAAC,+BAAiB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,IAAA,aAAI,EAAC,8CAA8C,EAAE,GAAG,EAAE;QACxD,IAAA,eAAM,EAAC,IAAA,6BAAe,EAAC,2BAAY,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACrD,IAAA,eAAM,EAAC,IAAA,6BAAe,EAAC,2BAAY,CAAC,CAAC,CAAC,OAAO,CAAC,sCAAwB,CAAC,CAAC;IAC1E,CAAC,CAAC,CAAC;IAEH,IAAA,aAAI,EAAC,mDAAmD,EAAE,GAAG,EAAE;QAC7D,4CAA4C;QAC5C,IAAA,eAAM,EACJ,IAAA,6BAAe,EAAC,4CAA4C,CAAC,CAC9D,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACxB,CAAC,CAAC,CAAC;IAEH,IAAA,aAAI,EAAC,0CAA0C,EAAE,GAAG,EAAE;QACpD,IAAA,eAAM,EACJ,IAAA,6BAAe,EAAC,4CAA4C,CAAC,CAC9D,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACf,CAAC,CAAC,CAAC;IAEH,IAAA,aAAI,EAAC,0DAA0D,EAAE,GAAG,EAAE;QACpE,IAAA,eAAM,EACJ,IAAA,6BAAe,EAAC,4CAA4C,CAAC,CAC9D,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACxB,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
package/dist/cjs/v6/fees.js
CHANGED
|
@@ -1,25 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TERMINAL_FEE_PER_BILLION = exports.MAX_FEE = exports.STANDARD_FEE = exports.PROTOCOL_FEE_PERCENT = void 0;
|
|
4
|
+
exports.feeForAmount = feeForAmount;
|
|
5
|
+
exports.amountAfterFee = amountAfterFee;
|
|
1
6
|
/**
|
|
2
7
|
* The Juicebox protocol fee, as a decimal fraction: 2.5%.
|
|
3
8
|
*
|
|
4
9
|
* Applies to payouts sent outside the protocol and to cash outs from rulesets with a
|
|
5
10
|
* non-zero cash out tax rate.
|
|
6
11
|
*/
|
|
7
|
-
|
|
12
|
+
exports.PROTOCOL_FEE_PERCENT = 0.025;
|
|
8
13
|
/**
|
|
9
14
|
* The standard protocol fee expressed out of {@link MAX_FEE}: 25 / 1000 = 2.5%.
|
|
10
15
|
*
|
|
11
16
|
* @link JBMultiTerminal.sol `FEE`
|
|
12
17
|
*/
|
|
13
|
-
|
|
18
|
+
exports.STANDARD_FEE = 25n;
|
|
14
19
|
/**
|
|
15
20
|
* The denominator for {@link STANDARD_FEE}-style fee percents.
|
|
16
21
|
*/
|
|
17
|
-
|
|
22
|
+
exports.MAX_FEE = 1000n;
|
|
18
23
|
/**
|
|
19
24
|
* The standard 2.5% protocol fee expressed per billion (out of 1e9), for legacy-style
|
|
20
25
|
* fixed-point math: 25_000_000 / 1_000_000_000 = 2.5%.
|
|
21
26
|
*/
|
|
22
|
-
|
|
27
|
+
exports.TERMINAL_FEE_PER_BILLION = 25000000n;
|
|
23
28
|
/**
|
|
24
29
|
* The per-billion fee denominator (1e9).
|
|
25
30
|
*/
|
|
@@ -32,7 +37,7 @@ const PER_BILLION = 1000000000n;
|
|
|
32
37
|
* fee ({@link TERMINAL_FEE_PER_BILLION}).
|
|
33
38
|
* @returns The fee, in the same fixed-point representation as `amount`.
|
|
34
39
|
*/
|
|
35
|
-
|
|
40
|
+
function feeForAmount(amount, feePerBillion = exports.TERMINAL_FEE_PER_BILLION) {
|
|
36
41
|
return (amount * feePerBillion) / PER_BILLION;
|
|
37
42
|
}
|
|
38
43
|
/**
|
|
@@ -45,7 +50,7 @@ export function feeForAmount(amount, feePerBillion = TERMINAL_FEE_PER_BILLION) {
|
|
|
45
50
|
* fee ({@link TERMINAL_FEE_PER_BILLION}).
|
|
46
51
|
* @returns The net amount after the fee.
|
|
47
52
|
*/
|
|
48
|
-
|
|
53
|
+
function amountAfterFee(amount, feePerBillion = exports.TERMINAL_FEE_PER_BILLION) {
|
|
49
54
|
return amount - feeForAmount(amount, feePerBillion);
|
|
50
55
|
}
|
|
51
56
|
//# sourceMappingURL=fees.js.map
|
package/dist/cjs/v6/fees.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fees.js","sourceRoot":"","sources":["../../../src/v6/fees.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"fees.js","sourceRoot":"","sources":["../../../src/v6/fees.ts"],"names":[],"mappings":";;;AAuCA,oCAKC;AAYD,wCAKC;AA7DD;;;;;GAKG;AACU,QAAA,oBAAoB,GAAG,KAAK,CAAC;AAE1C;;;;GAIG;AACU,QAAA,YAAY,GAAG,GAAG,CAAC;AAEhC;;GAEG;AACU,QAAA,OAAO,GAAG,KAAK,CAAC;AAE7B;;;GAGG;AACU,QAAA,wBAAwB,GAAG,SAAW,CAAC;AAEpD;;GAEG;AACH,MAAM,WAAW,GAAG,WAAc,CAAC;AAEnC;;;;;;;GAOG;AACH,SAAgB,YAAY,CAC1B,MAAc,EACd,gBAAwB,gCAAwB;IAEhD,OAAO,CAAC,MAAM,GAAG,aAAa,CAAC,GAAG,WAAW,CAAC;AAChD,CAAC;AAED;;;;;;;;;GASG;AACH,SAAgB,cAAc,CAC5B,MAAc,EACd,gBAAwB,gCAAwB;IAEhD,OAAO,MAAM,GAAG,YAAY,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;AACtD,CAAC"}
|
package/dist/cjs/v6/fees.test.js
CHANGED
|
@@ -1,38 +1,40 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
expect(
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const vitest_1 = require("vitest");
|
|
4
|
+
const constants_js_1 = require("../constants.js");
|
|
5
|
+
const fee_js_1 = require("../utils/fee.js");
|
|
6
|
+
const fees_js_1 = require("./fees.js");
|
|
7
|
+
(0, vitest_1.describe)("fees", () => {
|
|
8
|
+
(0, vitest_1.test)("constants agree on 2.5%", () => {
|
|
9
|
+
(0, vitest_1.expect)(fees_js_1.STANDARD_FEE).toEqual(25n);
|
|
10
|
+
(0, vitest_1.expect)(fees_js_1.MAX_FEE).toEqual(1000n);
|
|
11
|
+
(0, vitest_1.expect)((fees_js_1.STANDARD_FEE * 1000000000n) / fees_js_1.MAX_FEE).toEqual(fees_js_1.TERMINAL_FEE_PER_BILLION);
|
|
10
12
|
});
|
|
11
|
-
test("feeForAmount takes 2.5% by default", () => {
|
|
12
|
-
expect(feeForAmount(ONE_ETHER)).toEqual(25000000000000000n);
|
|
13
|
-
expect(feeForAmount(1000000000n)).toEqual(25000000n);
|
|
13
|
+
(0, vitest_1.test)("feeForAmount takes 2.5% by default", () => {
|
|
14
|
+
(0, vitest_1.expect)((0, fees_js_1.feeForAmount)(constants_js_1.ONE_ETHER)).toEqual(25000000000000000n);
|
|
15
|
+
(0, vitest_1.expect)((0, fees_js_1.feeForAmount)(1000000000n)).toEqual(25000000n);
|
|
14
16
|
});
|
|
15
|
-
test("amountAfterFee leaves 97.5% by default", () => {
|
|
16
|
-
expect(amountAfterFee(ONE_ETHER)).toEqual(975000000000000000n);
|
|
17
|
-
expect(amountAfterFee(ONE_ETHER)).toEqual(applyJbDaoCashOutFee(ONE_ETHER));
|
|
17
|
+
(0, vitest_1.test)("amountAfterFee leaves 97.5% by default", () => {
|
|
18
|
+
(0, vitest_1.expect)((0, fees_js_1.amountAfterFee)(constants_js_1.ONE_ETHER)).toEqual(975000000000000000n);
|
|
19
|
+
(0, vitest_1.expect)((0, fees_js_1.amountAfterFee)(constants_js_1.ONE_ETHER)).toEqual((0, fee_js_1.applyJbDaoCashOutFee)(constants_js_1.ONE_ETHER));
|
|
18
20
|
});
|
|
19
|
-
test("fee + net always equals the gross amount", () => {
|
|
20
|
-
for (const amount of [0n, 1n, 39n, 40n, 41n, ONE_ETHER, ONE_ETHER + 1n]) {
|
|
21
|
-
expect(feeForAmount(amount) + amountAfterFee(amount)).toEqual(amount);
|
|
21
|
+
(0, vitest_1.test)("fee + net always equals the gross amount", () => {
|
|
22
|
+
for (const amount of [0n, 1n, 39n, 40n, 41n, constants_js_1.ONE_ETHER, constants_js_1.ONE_ETHER + 1n]) {
|
|
23
|
+
(0, vitest_1.expect)((0, fees_js_1.feeForAmount)(amount) + (0, fees_js_1.amountAfterFee)(amount)).toEqual(amount);
|
|
22
24
|
}
|
|
23
25
|
});
|
|
24
|
-
test("fee rounds down; tiny amounts pay no fee", () => {
|
|
25
|
-
expect(feeForAmount(39n)).toEqual(0n);
|
|
26
|
-
expect(amountAfterFee(39n)).toEqual(39n);
|
|
27
|
-
expect(feeForAmount(40n)).toEqual(1n);
|
|
26
|
+
(0, vitest_1.test)("fee rounds down; tiny amounts pay no fee", () => {
|
|
27
|
+
(0, vitest_1.expect)((0, fees_js_1.feeForAmount)(39n)).toEqual(0n);
|
|
28
|
+
(0, vitest_1.expect)((0, fees_js_1.amountAfterFee)(39n)).toEqual(39n);
|
|
29
|
+
(0, vitest_1.expect)((0, fees_js_1.feeForAmount)(40n)).toEqual(1n);
|
|
28
30
|
});
|
|
29
|
-
test("custom fee rates", () => {
|
|
31
|
+
(0, vitest_1.test)("custom fee rates", () => {
|
|
30
32
|
// 10% per billion.
|
|
31
|
-
expect(feeForAmount(ONE_ETHER, 100000000n)).toEqual(100000000000000000n);
|
|
32
|
-
expect(amountAfterFee(ONE_ETHER, 100000000n)).toEqual(900000000000000000n);
|
|
33
|
+
(0, vitest_1.expect)((0, fees_js_1.feeForAmount)(constants_js_1.ONE_ETHER, 100000000n)).toEqual(100000000000000000n);
|
|
34
|
+
(0, vitest_1.expect)((0, fees_js_1.amountAfterFee)(constants_js_1.ONE_ETHER, 100000000n)).toEqual(900000000000000000n);
|
|
33
35
|
// Zero fee.
|
|
34
|
-
expect(feeForAmount(ONE_ETHER, 0n)).toEqual(0n);
|
|
35
|
-
expect(amountAfterFee(ONE_ETHER, 0n)).toEqual(ONE_ETHER);
|
|
36
|
+
(0, vitest_1.expect)((0, fees_js_1.feeForAmount)(constants_js_1.ONE_ETHER, 0n)).toEqual(0n);
|
|
37
|
+
(0, vitest_1.expect)((0, fees_js_1.amountAfterFee)(constants_js_1.ONE_ETHER, 0n)).toEqual(constants_js_1.ONE_ETHER);
|
|
36
38
|
});
|
|
37
39
|
});
|
|
38
40
|
//# sourceMappingURL=fees.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fees.test.js","sourceRoot":"","sources":["../../../src/v6/fees.test.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"fees.test.js","sourceRoot":"","sources":["../../../src/v6/fees.test.ts"],"names":[],"mappings":";;AAAA,mCAAgD;AAChD,kDAA4C;AAC5C,4CAAuD;AACvD,uCAMmB;AAEnB,IAAA,iBAAQ,EAAC,MAAM,EAAE,GAAG,EAAE;IACpB,IAAA,aAAI,EAAC,yBAAyB,EAAE,GAAG,EAAE;QACnC,IAAA,eAAM,EAAC,sBAAY,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAClC,IAAA,eAAM,EAAC,iBAAO,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC/B,IAAA,eAAM,EAAC,CAAC,sBAAY,GAAG,WAAc,CAAC,GAAG,iBAAO,CAAC,CAAC,OAAO,CACvD,kCAAwB,CACzB,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,IAAA,aAAI,EAAC,oCAAoC,EAAE,GAAG,EAAE;QAC9C,IAAA,eAAM,EAAC,IAAA,sBAAY,EAAC,wBAAS,CAAC,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;QAC5D,IAAA,eAAM,EAAC,IAAA,sBAAY,EAAC,WAAc,CAAC,CAAC,CAAC,OAAO,CAAC,SAAW,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;IAEH,IAAA,aAAI,EAAC,wCAAwC,EAAE,GAAG,EAAE;QAClD,IAAA,eAAM,EAAC,IAAA,wBAAc,EAAC,wBAAS,CAAC,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;QAC/D,IAAA,eAAM,EAAC,IAAA,wBAAc,EAAC,wBAAS,CAAC,CAAC,CAAC,OAAO,CAAC,IAAA,6BAAoB,EAAC,wBAAS,CAAC,CAAC,CAAC;IAC7E,CAAC,CAAC,CAAC;IAEH,IAAA,aAAI,EAAC,0CAA0C,EAAE,GAAG,EAAE;QACpD,KAAK,MAAM,MAAM,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,wBAAS,EAAE,wBAAS,GAAG,EAAE,CAAC,EAAE,CAAC;YACxE,IAAA,eAAM,EAAC,IAAA,sBAAY,EAAC,MAAM,CAAC,GAAG,IAAA,wBAAc,EAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACxE,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,IAAA,aAAI,EAAC,0CAA0C,EAAE,GAAG,EAAE;QACpD,IAAA,eAAM,EAAC,IAAA,sBAAY,EAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACtC,IAAA,eAAM,EAAC,IAAA,wBAAc,EAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACzC,IAAA,eAAM,EAAC,IAAA,sBAAY,EAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,IAAA,aAAI,EAAC,kBAAkB,EAAE,GAAG,EAAE;QAC5B,mBAAmB;QACnB,IAAA,eAAM,EAAC,IAAA,sBAAY,EAAC,wBAAS,EAAE,UAAY,CAAC,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;QAC3E,IAAA,eAAM,EAAC,IAAA,wBAAc,EAAC,wBAAS,EAAE,UAAY,CAAC,CAAC,CAAC,OAAO,CACrD,mBAAmB,CACpB,CAAC;QACF,YAAY;QACZ,IAAA,eAAM,EAAC,IAAA,sBAAY,EAAC,wBAAS,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAChD,IAAA,eAAM,EAAC,IAAA,wBAAc,EAAC,wBAAS,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,wBAAS,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
package/dist/cjs/v6/index.js
CHANGED
|
@@ -1,16 +1,32 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./types.js"), exports);
|
|
18
|
+
__exportStar(require("./currency.js"), exports);
|
|
19
|
+
__exportStar(require("./fees.js"), exports);
|
|
20
|
+
__exportStar(require("./launch.js"), exports);
|
|
21
|
+
__exportStar(require("./omnichain.js"), exports);
|
|
22
|
+
__exportStar(require("./rulesets.js"), exports);
|
|
23
|
+
__exportStar(require("./splits.js"), exports);
|
|
24
|
+
__exportStar(require("./revnets.js"), exports);
|
|
25
|
+
__exportStar(require("./terminals.js"), exports);
|
|
26
|
+
__exportStar(require("./pay.js"), exports);
|
|
27
|
+
__exportStar(require("./cashOut.js"), exports);
|
|
28
|
+
__exportStar(require("./tokens.js"), exports);
|
|
29
|
+
__exportStar(require("./permissions.js"), exports);
|
|
30
|
+
__exportStar(require("./suckers.js"), exports);
|
|
31
|
+
__exportStar(require("./loans.js"), exports);
|
|
16
32
|
//# sourceMappingURL=index.js.map
|
package/dist/cjs/v6/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/v6/index.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/v6/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAA2B;AAC3B,gDAA8B;AAC9B,4CAA0B;AAC1B,8CAA4B;AAC5B,iDAA+B;AAC/B,gDAA8B;AAC9B,8CAA4B;AAC5B,+CAA6B;AAC7B,iDAA+B;AAC/B,2CAAyB;AACzB,+CAA6B;AAC7B,8CAA4B;AAC5B,mDAAiC;AACjC,+CAA6B;AAC7B,6CAA2B"}
|
package/dist/cjs/v6/launch.js
CHANGED
|
@@ -1,8 +1,16 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getProjectCreationFee = getProjectCreationFee;
|
|
4
|
+
exports.buildAccountingContext = buildAccountingContext;
|
|
5
|
+
exports.buildTerminalConfigurations = buildTerminalConfigurations;
|
|
6
|
+
exports.buildRulesetMetadata = buildRulesetMetadata;
|
|
7
|
+
exports.buildRulesetConfiguration = buildRulesetConfiguration;
|
|
8
|
+
exports.buildLaunchProjectTx = buildLaunchProjectTx;
|
|
9
|
+
const viem_1 = require("viem");
|
|
10
|
+
const constants_js_1 = require("../constants.js");
|
|
11
|
+
const juicebox_js_1 = require("../generated/juicebox.js");
|
|
12
|
+
const currency_js_1 = require("./currency.js");
|
|
13
|
+
const types_js_1 = require("./types.js");
|
|
6
14
|
/**
|
|
7
15
|
* Read the fee (in wei) that `JBProjects` charges to create a new project.
|
|
8
16
|
*
|
|
@@ -10,10 +18,10 @@ import { v6Address } from "./types.js";
|
|
|
10
18
|
* revert. The fee is dynamic — read it per chain right before launching, and
|
|
11
19
|
* never reuse a value across chains.
|
|
12
20
|
*/
|
|
13
|
-
|
|
21
|
+
async function getProjectCreationFee(client, chainId) {
|
|
14
22
|
return client.readContract({
|
|
15
|
-
address: v6Address("JBProjects", chainId),
|
|
16
|
-
abi: jbProjectsAbi,
|
|
23
|
+
address: (0, types_js_1.v6Address)("JBProjects", chainId),
|
|
24
|
+
abi: juicebox_js_1.jbProjectsAbi,
|
|
17
25
|
functionName: "creationFee",
|
|
18
26
|
});
|
|
19
27
|
}
|
|
@@ -30,15 +38,15 @@ export async function getProjectCreationFee(client, chainId) {
|
|
|
30
38
|
* @param decimals The token's decimals. Defaults to 18 for the native token;
|
|
31
39
|
* REQUIRED for any other token (there is no safe default).
|
|
32
40
|
*/
|
|
33
|
-
|
|
34
|
-
const isNative = token.toLowerCase() === NATIVE_TOKEN.toLowerCase();
|
|
41
|
+
function buildAccountingContext(token = constants_js_1.NATIVE_TOKEN, decimals) {
|
|
42
|
+
const isNative = token.toLowerCase() === constants_js_1.NATIVE_TOKEN.toLowerCase();
|
|
35
43
|
if (decimals === undefined && !isNative) {
|
|
36
44
|
throw new Error(`decimals is required for non-native token ${token} (there is no safe default)`);
|
|
37
45
|
}
|
|
38
46
|
return {
|
|
39
47
|
token,
|
|
40
|
-
decimals: decimals ?? NATIVE_TOKEN_DECIMALS,
|
|
41
|
-
currency: tokenCurrencyId(token),
|
|
48
|
+
decimals: decimals ?? constants_js_1.NATIVE_TOKEN_DECIMALS,
|
|
49
|
+
currency: (0, currency_js_1.tokenCurrencyId)(token),
|
|
42
50
|
};
|
|
43
51
|
}
|
|
44
52
|
/**
|
|
@@ -53,10 +61,10 @@ export function buildAccountingContext(token = NATIVE_TOKEN, decimals) {
|
|
|
53
61
|
* @param args.accountingContexts The contexts the multi terminal accepts.
|
|
54
62
|
* Defaults to just the native token context.
|
|
55
63
|
*/
|
|
56
|
-
|
|
64
|
+
function buildTerminalConfigurations(args) {
|
|
57
65
|
const configurations = [
|
|
58
66
|
{
|
|
59
|
-
terminal: v6Address("JBMultiTerminal", args.chainId),
|
|
67
|
+
terminal: (0, types_js_1.v6Address)("JBMultiTerminal", args.chainId),
|
|
60
68
|
accountingContextsToAccept: args.accountingContexts ?? [
|
|
61
69
|
buildAccountingContext(),
|
|
62
70
|
],
|
|
@@ -64,7 +72,7 @@ export function buildTerminalConfigurations(args) {
|
|
|
64
72
|
];
|
|
65
73
|
try {
|
|
66
74
|
configurations.push({
|
|
67
|
-
terminal: v6Address("JBRouterTerminalRegistry", args.chainId),
|
|
75
|
+
terminal: (0, types_js_1.v6Address)("JBRouterTerminalRegistry", args.chainId),
|
|
68
76
|
accountingContextsToAccept: [],
|
|
69
77
|
});
|
|
70
78
|
}
|
|
@@ -84,11 +92,11 @@ export function buildTerminalConfigurations(args) {
|
|
|
84
92
|
*
|
|
85
93
|
* @param overrides Any metadata fields to override.
|
|
86
94
|
*/
|
|
87
|
-
|
|
95
|
+
function buildRulesetMetadata(overrides) {
|
|
88
96
|
return {
|
|
89
97
|
reservedPercent: 0,
|
|
90
98
|
cashOutTaxRate: 0,
|
|
91
|
-
baseCurrency: BASE_CURRENCY_ETH,
|
|
99
|
+
baseCurrency: currency_js_1.BASE_CURRENCY_ETH,
|
|
92
100
|
pausePay: false,
|
|
93
101
|
pauseCreditTransfers: false,
|
|
94
102
|
allowOwnerMinting: false,
|
|
@@ -103,7 +111,7 @@ export function buildRulesetMetadata(overrides) {
|
|
|
103
111
|
scopeCashOutsToLocalBalances: false,
|
|
104
112
|
useDataHookForPay: false,
|
|
105
113
|
useDataHookForCashOut: false,
|
|
106
|
-
dataHook: zeroAddress,
|
|
114
|
+
dataHook: viem_1.zeroAddress,
|
|
107
115
|
metadata: 0,
|
|
108
116
|
...overrides,
|
|
109
117
|
};
|
|
@@ -127,13 +135,13 @@ export function buildRulesetMetadata(overrides) {
|
|
|
127
135
|
* @param args.splitGroups Split groups to set alongside the ruleset.
|
|
128
136
|
* @param args.fundAccessLimitGroups Payout limits / surplus allowances.
|
|
129
137
|
*/
|
|
130
|
-
|
|
138
|
+
function buildRulesetConfiguration(args) {
|
|
131
139
|
return {
|
|
132
140
|
mustStartAtOrAfter: args?.mustStartAtOrAfter ?? 0,
|
|
133
141
|
duration: args?.duration ?? 0,
|
|
134
142
|
weight: args?.weight ?? 0n,
|
|
135
143
|
weightCutPercent: args?.weightCutPercent ?? 0,
|
|
136
|
-
approvalHook: args?.approvalHook ?? zeroAddress,
|
|
144
|
+
approvalHook: args?.approvalHook ?? viem_1.zeroAddress,
|
|
137
145
|
metadata: args?.metadata ?? buildRulesetMetadata(),
|
|
138
146
|
splitGroups: args?.splitGroups ?? [],
|
|
139
147
|
fundAccessLimitGroups: args?.fundAccessLimitGroups ?? [],
|
|
@@ -157,11 +165,11 @@ export function buildRulesetConfiguration(args) {
|
|
|
157
165
|
* @param args.memo An optional memo emitted with the launch event.
|
|
158
166
|
* @param args.creationFee The exact fee read from `JBProjects.creationFee()`.
|
|
159
167
|
*/
|
|
160
|
-
|
|
168
|
+
function buildLaunchProjectTx(args) {
|
|
161
169
|
return {
|
|
162
170
|
chainId: args.chainId,
|
|
163
|
-
address: v6Address("JBController", args.chainId),
|
|
164
|
-
abi: jbControllerAbi,
|
|
171
|
+
address: (0, types_js_1.v6Address)("JBController", args.chainId),
|
|
172
|
+
abi: juicebox_js_1.jbControllerAbi,
|
|
165
173
|
functionName: "launchProjectFor",
|
|
166
174
|
args: [
|
|
167
175
|
args.owner,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"launch.js","sourceRoot":"","sources":["../../../src/v6/launch.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"launch.js","sourceRoot":"","sources":["../../../src/v6/launch.ts"],"names":[],"mappings":"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"}
|