@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/utils/fee.js
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.applyJbDaoCashOutFee = applyJbDaoCashOutFee;
|
|
4
|
+
const constants_js_1 = require("../constants.js");
|
|
5
|
+
function applyJbDaoCashOutFee(tokenAmountWei) {
|
|
6
|
+
return ((tokenAmountWei * BigInt((1 - constants_js_1.JBDAO_CASHOUT_FEE_PERCENT) * 1000)) / 1000n);
|
|
4
7
|
}
|
|
5
8
|
//# sourceMappingURL=fee.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fee.js","sourceRoot":"","sources":["../../../src/utils/fee.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"fee.js","sourceRoot":"","sources":["../../../src/utils/fee.ts"],"names":[],"mappings":";;AAEA,oDAIC;AAND,kDAA4D;AAE5D,SAAgB,oBAAoB,CAAC,cAAsB;IACzD,OAAO,CACL,CAAC,cAAc,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,wCAAyB,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,KAAK,CAC1E,CAAC;AACJ,CAAC"}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const constants_js_1 = require("../constants.js");
|
|
4
|
+
const vitest_1 = require("vitest");
|
|
5
|
+
const fee_js_1 = require("./fee.js");
|
|
6
|
+
(0, vitest_1.describe)("fee", () => {
|
|
7
|
+
(0, vitest_1.test)("applyJbDaoCashOutFee", () => {
|
|
8
|
+
(0, vitest_1.expect)((0, fee_js_1.applyJbDaoCashOutFee)(constants_js_1.ONE_ETHER)).toEqual(975000000000000000n);
|
|
7
9
|
});
|
|
8
10
|
});
|
|
9
11
|
//# sourceMappingURL=fee.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fee.test.js","sourceRoot":"","sources":["../../../src/utils/fee.test.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"fee.test.js","sourceRoot":"","sources":["../../../src/utils/fee.test.ts"],"names":[],"mappings":";;AAAA,kDAA4C;AAC5C,mCAAgD;AAChD,qCAAgD;AAEhD,IAAA,iBAAQ,EAAC,KAAK,EAAE,GAAG,EAAE;IACnB,IAAA,aAAI,EAAC,sBAAsB,EAAE,GAAG,EAAE;QAChC,IAAA,eAAM,EAAC,IAAA,6BAAoB,EAAC,wBAAS,CAAC,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
package/dist/cjs/utils/format.js
CHANGED
|
@@ -1,4 +1,9 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.formatEthAddress = formatEthAddress;
|
|
4
|
+
exports.formatEther = formatEther;
|
|
5
|
+
exports.formatUnits = formatUnits;
|
|
6
|
+
const viem_1 = require("viem");
|
|
2
7
|
const DEFAULT_TRUNCATE_TO = 4;
|
|
3
8
|
/**
|
|
4
9
|
* Format a given Ethereum address to a human-readable representation.
|
|
@@ -6,7 +11,7 @@ const DEFAULT_TRUNCATE_TO = 4;
|
|
|
6
11
|
* @param opts.truncateTo The number of characters to include either side of the elipsis (...).
|
|
7
12
|
* @returns The formatted string e.g. 0x0000...0000
|
|
8
13
|
*/
|
|
9
|
-
|
|
14
|
+
function formatEthAddress(address, { truncateTo = DEFAULT_TRUNCATE_TO, } = {
|
|
10
15
|
truncateTo: DEFAULT_TRUNCATE_TO,
|
|
11
16
|
}) {
|
|
12
17
|
const frontTruncate = truncateTo + 2; // account for 0x
|
|
@@ -22,8 +27,8 @@ export function formatEthAddress(address, { truncateTo = DEFAULT_TRUNCATE_TO, }
|
|
|
22
27
|
* @param opts.fractionDigits The number of
|
|
23
28
|
* @returns
|
|
24
29
|
*/
|
|
25
|
-
|
|
26
|
-
const formatted =
|
|
30
|
+
function formatEther(wei, opts) {
|
|
31
|
+
const formatted = (0, viem_1.formatEther)(wei);
|
|
27
32
|
if (typeof opts?.fractionDigits === "undefined")
|
|
28
33
|
return formatted;
|
|
29
34
|
// parse float again to trim trailing 0s
|
|
@@ -38,8 +43,8 @@ export function formatEther(wei, opts) {
|
|
|
38
43
|
* @param opts.fractionDigits The number of fraction digits (i.e. decimal places) to format to.
|
|
39
44
|
* @returns Formatted representation of [value].
|
|
40
45
|
*/
|
|
41
|
-
|
|
42
|
-
const formatted =
|
|
46
|
+
function formatUnits(value, units, opts) {
|
|
47
|
+
const formatted = (0, viem_1.formatUnits)(value, units);
|
|
43
48
|
if (typeof opts?.fractionDigits === "undefined")
|
|
44
49
|
return formatted;
|
|
45
50
|
// parse float again to trim trailing 0s
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"format.js","sourceRoot":"","sources":["../../../src/utils/format.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"format.js","sourceRoot":"","sources":["../../../src/utils/format.ts"],"names":[],"mappings":";;AAaA,4CAgBC;AAUD,kCAYC;AAWD,kCAaC;AA3ED,+BAGc;AAEd,MAAM,mBAAmB,GAAG,CAAC,CAAC;AAE9B;;;;;GAKG;AACH,SAAgB,gBAAgB,CAC9B,OAAe,EACf,EACE,UAAU,GAAG,mBAAmB,MAG9B;IACF,UAAU,EAAE,mBAAmB;CAChC;IAED,MAAM,aAAa,GAAG,UAAU,GAAG,CAAC,CAAC,CAAC,iBAAiB;IACvD,OAAO,CACL,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,aAAa,CAAC;QACnC,KAAK;QACL,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,GAAG,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,CAC/D,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,WAAW,CACzB,GAAW,EACX,IAAkC;IAElC,MAAM,SAAS,GAAG,IAAA,kBAAe,EAAC,GAAG,CAAC,CAAC;IAEvC,IAAI,OAAO,IAAI,EAAE,cAAc,KAAK,WAAW;QAAE,OAAO,SAAS,CAAC;IAElE,wCAAwC;IACxC,OAAO,UAAU,CACf,UAAU,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,cAAc,CAAC,CACpD,CAAC,QAAQ,EAAE,CAAC;AACf,CAAC;AAED;;;;;;;;GAQG;AACH,SAAgB,WAAW,CACzB,KAAa,EACb,KAAa,EACb,IAAkC;IAElC,MAAM,SAAS,GAAG,IAAA,kBAAe,EAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAEhD,IAAI,OAAO,IAAI,EAAE,cAAc,KAAK,WAAW;QAAE,OAAO,SAAS,CAAC;IAElE,wCAAwC;IACxC,OAAO,UAAU,CACf,UAAU,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,cAAc,CAAC,CACpD,CAAC,QAAQ,EAAE,CAAC;AACf,CAAC"}
|
|
@@ -1,25 +1,27 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const vitest_1 = require("vitest");
|
|
4
|
+
const format_js_1 = require("./format.js");
|
|
5
|
+
(0, vitest_1.describe)("formatting utilities", () => {
|
|
6
|
+
(0, vitest_1.test)("formats Ethereum address correctly", () => {
|
|
5
7
|
const address = "0x123456789abcdef0123456789abcdef012345678";
|
|
6
|
-
expect(formatEthAddress(address, { truncateTo: 4 })).toEqual("0x1234...5678");
|
|
8
|
+
(0, vitest_1.expect)((0, format_js_1.formatEthAddress)(address, { truncateTo: 4 })).toEqual("0x1234...5678");
|
|
7
9
|
});
|
|
8
|
-
test.each `
|
|
10
|
+
vitest_1.test.each `
|
|
9
11
|
wei | fractionDigits | expected
|
|
10
12
|
${1000000000000000000n} | ${2} | ${"1"}
|
|
11
13
|
${1234567890123456789n} | ${3} | ${"1.235"}
|
|
12
14
|
${1234567890123456789n} | ${0} | ${"1"}
|
|
13
15
|
`("formats Ether correctly", ({ wei, fractionDigits, expected }) => {
|
|
14
|
-
expect(formatEther(wei, { fractionDigits })).toEqual(expected);
|
|
16
|
+
(0, vitest_1.expect)((0, format_js_1.formatEther)(wei, { fractionDigits })).toEqual(expected);
|
|
15
17
|
});
|
|
16
|
-
test.each `
|
|
18
|
+
vitest_1.test.each `
|
|
17
19
|
value | units | fractionDigits | expected
|
|
18
20
|
${1000000000n} | ${9} | ${2} | ${"1"}
|
|
19
21
|
${1234567890n} | ${9} | ${3} | ${"1.235"}
|
|
20
22
|
${1234567890n} | ${9} | ${0} | ${"1"}
|
|
21
23
|
`("formats Units correctly", ({ value, units, fractionDigits, expected }) => {
|
|
22
|
-
expect(formatUnits(value, units, { fractionDigits })).toEqual(expected);
|
|
24
|
+
(0, vitest_1.expect)((0, format_js_1.formatUnits)(value, units, { fractionDigits })).toEqual(expected);
|
|
23
25
|
});
|
|
24
26
|
});
|
|
25
27
|
//# sourceMappingURL=format.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"format.test.js","sourceRoot":"","sources":["../../../src/utils/format.test.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"format.test.js","sourceRoot":"","sources":["../../../src/utils/format.test.ts"],"names":[],"mappings":";;AAAA,mCAAgD;AAChD,2CAAyE;AAEzE,IAAA,iBAAQ,EAAC,sBAAsB,EAAE,GAAG,EAAE;IACpC,IAAA,aAAI,EAAC,oCAAoC,EAAE,GAAG,EAAE;QAC9C,MAAM,OAAO,GAAG,4CAA4C,CAAC;QAC7D,IAAA,eAAM,EAAC,IAAA,4BAAgB,EAAC,OAAO,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAC1D,eAAe,CAChB,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,aAAI,CAAC,IAAI,CAAA;;MAEL,oBAAoB,MAAM,CAAC,gBAAgB,GAAG;MAC9C,oBAAoB,MAAM,CAAC,gBAAgB,OAAO;MAClD,oBAAoB,MAAM,CAAC,gBAAgB,GAAG;GACjD,CAAC,yBAAyB,EAAE,CAAC,EAAE,GAAG,EAAE,cAAc,EAAE,QAAQ,EAAE,EAAE,EAAE;QACjE,IAAA,eAAM,EAAC,IAAA,uBAAW,EAAC,GAAG,EAAE,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACjE,CAAC,CAAC,CAAC;IAEH,aAAI,CAAC,IAAI,CAAA;;MAEL,WAAW,MAAM,CAAC,OAAO,CAAC,gBAAgB,GAAG;MAC7C,WAAW,MAAM,CAAC,OAAO,CAAC,gBAAgB,OAAO;MACjD,WAAW,MAAM,CAAC,OAAO,CAAC,gBAAgB,GAAG;GAChD,CAAC,yBAAyB,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,EAAE,EAAE;QAC1E,IAAA,eAAM,EAAC,IAAA,uBAAW,EAAC,KAAK,EAAE,KAAK,EAAE,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC1E,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
package/dist/cjs/utils/hook.js
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createHookMetadata = createHookMetadata;
|
|
4
|
+
const viem_1 = require("viem");
|
|
2
5
|
/**
|
|
3
6
|
*
|
|
4
7
|
* Create metadata for pay or redeem hooks.
|
|
@@ -6,12 +9,12 @@ import { encodePacked, zeroHash } from "viem";
|
|
|
6
9
|
* @link https://github.com/simplemachine92/JBMetadata-Helper
|
|
7
10
|
* @attribution simplemachine92/nowonder
|
|
8
11
|
*/
|
|
9
|
-
|
|
12
|
+
function createHookMetadata(ids, metadatas) {
|
|
10
13
|
// Check lengths
|
|
11
14
|
if (ids.length !== metadatas.length)
|
|
12
15
|
throw new Error("LENGTH_MISMATCH");
|
|
13
16
|
// Initialize metadata with first 32B for the protocol reserved word
|
|
14
|
-
let metadata = encodePacked(["bytes32"], [zeroHash]);
|
|
17
|
+
let metadata = (0, viem_1.encodePacked)(["bytes32"], [viem_1.zeroHash]);
|
|
15
18
|
// Calculate offset for the data is after the first reserved word...
|
|
16
19
|
let offset = 1;
|
|
17
20
|
// ... and after the id/offset lookup table, rounding up to 32 bytes if not a multiple
|
|
@@ -19,8 +22,8 @@ export function createHookMetadata(ids, metadatas) {
|
|
|
19
22
|
// For each id, add it to the lookup table with the next free offset, then increment the offset by the data length
|
|
20
23
|
for (let i = 0; i < ids.length; i++) {
|
|
21
24
|
// Get metadata, id and offset
|
|
22
|
-
metadata += encodePacked(["bytes4"], [ids[i]]).slice(2);
|
|
23
|
-
metadata += encodePacked(["uint8"], [offset]).slice(2);
|
|
25
|
+
metadata += (0, viem_1.encodePacked)(["bytes4"], [ids[i]]).slice(2);
|
|
26
|
+
metadata += (0, viem_1.encodePacked)(["uint8"], [offset]).slice(2);
|
|
24
27
|
// increment the offset by the data length, rounded up to the nearest 32-byte word
|
|
25
28
|
offset += metadatas[i].length / 32;
|
|
26
29
|
// Overflowing a bytes1?
|
|
@@ -36,7 +39,7 @@ export function createHookMetadata(ids, metadatas) {
|
|
|
36
39
|
// Add each metadata to the array, each padded to 32 bytes
|
|
37
40
|
for (let i = 0; i < metadatas.length; i++) {
|
|
38
41
|
// Append metadata to array
|
|
39
|
-
metadata += encodePacked(["bytes"], [metadatas[i].padEnd(paddedLength, "0")]).slice(2);
|
|
42
|
+
metadata += (0, viem_1.encodePacked)(["bytes"], [metadatas[i].padEnd(paddedLength, "0")]).slice(2);
|
|
40
43
|
}
|
|
41
44
|
// Return complete metadata
|
|
42
45
|
return metadata;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hook.js","sourceRoot":"","sources":["../../../src/utils/hook.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"hook.js","sourceRoot":"","sources":["../../../src/utils/hook.ts"],"names":[],"mappings":";;AASA,gDA8CC;AAvDD,+BAAoD;AAEpD;;;;;;GAMG;AACH,SAAgB,kBAAkB,CAAC,GAAa,EAAE,SAAmB;IACnE,gBAAgB;IAChB,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IAExE,oEAAoE;IACpE,IAAI,QAAQ,GAAG,IAAA,mBAAY,EAAC,CAAC,SAAS,CAAC,EAAE,CAAC,eAAQ,CAAC,CAAC,CAAC;IAErD,oEAAoE;IACpE,IAAI,MAAM,GAAG,CAAC,CAAC;IAEf,sFAAsF;IACtF,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAEjC,kHAAkH;IAClH,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACpC,8BAA8B;QAC9B,QAAQ,IAAI,IAAA,mBAAY,EAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAEhE,QAAQ,IAAI,IAAA,mBAAY,EAAC,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACvD,kFAAkF;QAClF,MAAM,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,EAAE,CAAC;QAEnC,wBAAwB;QACxB,IAAI,MAAM,GAAG,CAAC,IAAI,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;IAC5D,CAAC;IAED,qCAAqC;IACrC,IAAI,YAAY,GACd,QAAQ,CAAC,MAAM,GAAG,EAAE,KAAK,CAAC;QACxB,CAAC,CAAC,QAAQ,CAAC,MAAM;QACjB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;IAE/C,yBAAyB;IACzB,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,YAAY,GAAG,CAAC,EAAE,GAAG,CAAS,CAAC;IAE1D,0DAA0D;IAC1D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC1C,2BAA2B;QAC3B,QAAQ,IAAI,IAAA,mBAAY,EACtB,CAAC,OAAO,CAAC,EACT,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,EAAE,GAAG,CAAS,CAAC,CACjD,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACb,CAAC;IAED,2BAA2B;IAC3B,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
package/dist/cjs/utils/index.js
CHANGED
|
@@ -1,13 +1,29 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
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("./contracts.js"), exports);
|
|
18
|
+
__exportStar(require("./data.js"), exports);
|
|
19
|
+
__exportStar(require("./debug.js"), exports);
|
|
20
|
+
__exportStar(require("./deploy.js"), exports);
|
|
21
|
+
__exportStar(require("./fee.js"), exports);
|
|
22
|
+
__exportStar(require("./format.js"), exports);
|
|
23
|
+
__exportStar(require("./hook.js"), exports);
|
|
24
|
+
__exportStar(require("./revnet.js"), exports);
|
|
25
|
+
__exportStar(require("./ruleset.js"), exports);
|
|
26
|
+
__exportStar(require("./token.js"), exports);
|
|
27
|
+
__exportStar(require("./tx.js"), exports);
|
|
28
|
+
__exportStar(require("./urn.js"), exports);
|
|
13
29
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iDAA+B;AAC/B,4CAA0B;AAC1B,6CAA2B;AAC3B,8CAA4B;AAC5B,2CAAyB;AACzB,8CAA4B;AAC5B,4CAA0B;AAC1B,8CAA4B;AAC5B,+CAA6B;AAC7B,6CAA2B;AAC3B,0CAAwB;AACxB,2CAAyB"}
|
package/dist/cjs/utils/ipfs.js
CHANGED
|
@@ -1,26 +1,34 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.ipfsGatewayUrl = ipfsGatewayUrl;
|
|
7
|
+
exports.encodeIpfsUri = encodeIpfsUri;
|
|
8
|
+
exports.decodeEncodedIpfsUri = decodeEncodedIpfsUri;
|
|
9
|
+
const bs58_1 = __importDefault(require("bs58"));
|
|
2
10
|
const PUBLIC_IPFS_GATEWAY_HOSTNAME = "ipfs.io";
|
|
3
|
-
|
|
11
|
+
function ipfsGatewayUrl(cid, gatewayHostname) {
|
|
4
12
|
return `https://${gatewayHostname ?? PUBLIC_IPFS_GATEWAY_HOSTNAME}/ipfs/${cid}`;
|
|
5
13
|
}
|
|
6
14
|
/**
|
|
7
15
|
* Return a hex-encoded CID to store on-chain.
|
|
8
16
|
* Hex-encoded CIDs are used to store some CIDs on-chain because they are more gas-efficient.
|
|
9
17
|
*/
|
|
10
|
-
|
|
11
|
-
return "0x" + Buffer.from(
|
|
18
|
+
function encodeIpfsUri(cid) {
|
|
19
|
+
return "0x" + Buffer.from(bs58_1.default.decode(cid).slice(2)).toString("hex");
|
|
12
20
|
}
|
|
13
21
|
/**
|
|
14
22
|
* Return the IPFS CID from a given hex-endoded string.
|
|
15
23
|
* Hex-encoded CIDs are used to store some CIDs on-chain because they are more gas-efficient.
|
|
16
24
|
*/
|
|
17
|
-
|
|
25
|
+
function decodeEncodedIpfsUri(hex) {
|
|
18
26
|
// Add default ipfs values for first 2 bytes:
|
|
19
27
|
// - function:0x12=sha2, size:0x20=256 bits
|
|
20
28
|
// - also cut off leading "0x"
|
|
21
29
|
const hashHex = "1220" + hex.slice(2);
|
|
22
30
|
const hashBytes = Buffer.from(hashHex, "hex");
|
|
23
|
-
const hashStr =
|
|
31
|
+
const hashStr = bs58_1.default.encode(hashBytes);
|
|
24
32
|
return hashStr;
|
|
25
33
|
}
|
|
26
34
|
//# sourceMappingURL=ipfs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ipfs.js","sourceRoot":"","sources":["../../../src/utils/ipfs.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ipfs.js","sourceRoot":"","sources":["../../../src/utils/ipfs.ts"],"names":[],"mappings":";;;;;AAIA,wCAOC;AAMD,sCAEC;AAMD,oDAQC;AAjCD,gDAAwB;AAExB,MAAM,4BAA4B,GAAG,SAAS,CAAC;AAE/C,SAAgB,cAAc,CAC5B,GAAuB,EACvB,eAAwB;IAExB,OAAO,WACL,eAAe,IAAI,4BACrB,SAAS,GAAG,EAAE,CAAC;AACjB,CAAC;AAED;;;GAGG;AACH,SAAgB,aAAa,CAAC,GAAW;IACvC,OAAO,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,cAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACvE,CAAC;AAED;;;GAGG;AACH,SAAgB,oBAAoB,CAAC,GAAW;IAC9C,6CAA6C;IAC7C,2CAA2C;IAC3C,8BAA8B;IAC9B,MAAM,OAAO,GAAG,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACtC,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC9C,MAAM,OAAO,GAAG,cAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACvC,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -1,28 +1,33 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const bs58_1 = __importDefault(require("bs58"));
|
|
7
|
+
const vitest_1 = require("vitest");
|
|
8
|
+
const ipfs_js_1 = require("./ipfs.js");
|
|
4
9
|
const cid = "QmbWqxBEKC3P8tqsKc98xmWNzrzDtRLMiMPL8wBuTGsMnR";
|
|
5
10
|
const cidCorrespondingHex = "c3c4733ec8affd06cf9e9ff50ffc6bcd2ec85a6170004bb709669c31de94391a";
|
|
6
|
-
describe("IPFS utilities", () => {
|
|
7
|
-
test("generates IPFS gateway URL correctly", () => {
|
|
8
|
-
expect(ipfsGatewayUrl(cid)).toEqual(`https://ipfs.io/ipfs/${cid}`);
|
|
9
|
-
expect(ipfsGatewayUrl(cid, "another-gateway.com")).toEqual(`https://another-gateway.com/ipfs/${cid}`);
|
|
10
|
-
expect(ipfsGatewayUrl(undefined)).toEqual("https://ipfs.io/ipfs/undefined");
|
|
11
|
+
(0, vitest_1.describe)("IPFS utilities", () => {
|
|
12
|
+
(0, vitest_1.test)("generates IPFS gateway URL correctly", () => {
|
|
13
|
+
(0, vitest_1.expect)((0, ipfs_js_1.ipfsGatewayUrl)(cid)).toEqual(`https://ipfs.io/ipfs/${cid}`);
|
|
14
|
+
(0, vitest_1.expect)((0, ipfs_js_1.ipfsGatewayUrl)(cid, "another-gateway.com")).toEqual(`https://another-gateway.com/ipfs/${cid}`);
|
|
15
|
+
(0, vitest_1.expect)((0, ipfs_js_1.ipfsGatewayUrl)(undefined)).toEqual("https://ipfs.io/ipfs/undefined");
|
|
11
16
|
});
|
|
12
|
-
test("encodes IPFS CID correctly", () => {
|
|
13
|
-
const hexEncoded = encodeIpfsUri(cid);
|
|
14
|
-
expect(hexEncoded).toEqual("0x" + cidCorrespondingHex);
|
|
17
|
+
(0, vitest_1.test)("encodes IPFS CID correctly", () => {
|
|
18
|
+
const hexEncoded = (0, ipfs_js_1.encodeIpfsUri)(cid);
|
|
19
|
+
(0, vitest_1.expect)(hexEncoded).toEqual("0x" + cidCorrespondingHex);
|
|
15
20
|
});
|
|
16
|
-
test("decodes hex-encoded IPFS CID correctly", () => {
|
|
21
|
+
(0, vitest_1.test)("decodes hex-encoded IPFS CID correctly", () => {
|
|
17
22
|
const hexEncoded = "0x" + cidCorrespondingHex;
|
|
18
|
-
const decodedCid = decodeEncodedIpfsUri(hexEncoded);
|
|
19
|
-
expect(decodedCid).toEqual(cid);
|
|
23
|
+
const decodedCid = (0, ipfs_js_1.decodeEncodedIpfsUri)(hexEncoded);
|
|
24
|
+
(0, vitest_1.expect)(decodedCid).toEqual(cid);
|
|
20
25
|
});
|
|
21
|
-
test("encodes and then decodes IPFS CID correctly", () => {
|
|
22
|
-
const expectedHex = Buffer.from(
|
|
26
|
+
(0, vitest_1.test)("encodes and then decodes IPFS CID correctly", () => {
|
|
27
|
+
const expectedHex = Buffer.from(bs58_1.default.decode(cid).slice(2)).toString("hex");
|
|
23
28
|
const hexEncoded = "0x" + expectedHex;
|
|
24
|
-
const decodedCid = decodeEncodedIpfsUri(hexEncoded);
|
|
25
|
-
expect(decodedCid).toEqual(cid);
|
|
29
|
+
const decodedCid = (0, ipfs_js_1.decodeEncodedIpfsUri)(hexEncoded);
|
|
30
|
+
(0, vitest_1.expect)(decodedCid).toEqual(cid);
|
|
26
31
|
});
|
|
27
32
|
});
|
|
28
33
|
//# sourceMappingURL=ipfs.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ipfs.test.js","sourceRoot":"","sources":["../../../src/utils/ipfs.test.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"ipfs.test.js","sourceRoot":"","sources":["../../../src/utils/ipfs.test.ts"],"names":[],"mappings":";;;;;AAAA,gDAAwB;AACxB,mCAAgD;AAChD,uCAAgF;AAEhF,MAAM,GAAG,GAAG,gDAAgD,CAAC;AAC7D,MAAM,mBAAmB,GACvB,kEAAkE,CAAC;AAErE,IAAA,iBAAQ,EAAC,gBAAgB,EAAE,GAAG,EAAE;IAC9B,IAAA,aAAI,EAAC,sCAAsC,EAAE,GAAG,EAAE;QAChD,IAAA,eAAM,EAAC,IAAA,wBAAc,EAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,wBAAwB,GAAG,EAAE,CAAC,CAAC;QACnE,IAAA,eAAM,EAAC,IAAA,wBAAc,EAAC,GAAG,EAAE,qBAAqB,CAAC,CAAC,CAAC,OAAO,CACxD,oCAAoC,GAAG,EAAE,CAC1C,CAAC;QACF,IAAA,eAAM,EAAC,IAAA,wBAAc,EAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,gCAAgC,CAAC,CAAC;IAC9E,CAAC,CAAC,CAAC;IAEH,IAAA,aAAI,EAAC,4BAA4B,EAAE,GAAG,EAAE;QACtC,MAAM,UAAU,GAAG,IAAA,uBAAa,EAAC,GAAG,CAAC,CAAC;QACtC,IAAA,eAAM,EAAC,UAAU,CAAC,CAAC,OAAO,CAAC,IAAI,GAAG,mBAAmB,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,IAAA,aAAI,EAAC,wCAAwC,EAAE,GAAG,EAAE;QAClD,MAAM,UAAU,GAAG,IAAI,GAAG,mBAAmB,CAAC;QAC9C,MAAM,UAAU,GAAG,IAAA,8BAAoB,EAAC,UAAU,CAAC,CAAC;QACpD,IAAA,eAAM,EAAC,UAAU,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IAEH,IAAA,aAAI,EAAC,6CAA6C,EAAE,GAAG,EAAE;QACvD,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,cAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC3E,MAAM,UAAU,GAAG,IAAI,GAAG,WAAW,CAAC;QACtC,MAAM,UAAU,GAAG,IAAA,8BAAoB,EAAC,UAAU,CAAC,CAAC;QACpD,IAAA,eAAM,EAAC,UAAU,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
package/dist/cjs/utils/revnet.js
CHANGED
|
@@ -1,11 +1,15 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.calcPrepaidFee = calcPrepaidFee;
|
|
4
|
+
exports.getRevnetLoanContract = getRevnetLoanContract;
|
|
5
|
+
const juicebox_js_1 = require("../generated/juicebox.js");
|
|
2
6
|
// The maximum fee percent
|
|
3
7
|
const MAX_PREPAID_FEE_PERCENT_BIGINT = 500n;
|
|
4
8
|
// Minimum prepaid fee value allowed by the contract
|
|
5
9
|
const MIN_PREPAID_FEE = 25n;
|
|
6
10
|
// The divisor (max months) as a BigInt for the calculation.
|
|
7
11
|
const MAX_PREPAYMENT_MONTHS_BIGINT = 120n;
|
|
8
|
-
|
|
12
|
+
function calcPrepaidFee(monthsToPrePay) {
|
|
9
13
|
const calcd = (BigInt(monthsToPrePay) * MAX_PREPAID_FEE_PERCENT_BIGINT) / MAX_PREPAYMENT_MONTHS_BIGINT +
|
|
10
14
|
MIN_PREPAID_FEE;
|
|
11
15
|
if (calcd < MIN_PREPAID_FEE) {
|
|
@@ -18,9 +22,9 @@ export function calcPrepaidFee(monthsToPrePay) {
|
|
|
18
22
|
return calcd;
|
|
19
23
|
}
|
|
20
24
|
}
|
|
21
|
-
|
|
25
|
+
function getRevnetLoanContract(version, chainId) {
|
|
22
26
|
return version === 4
|
|
23
|
-
? jbContractAddress[4]["REVLoans1_1"][chainId]
|
|
24
|
-
: jbContractAddress[version]["REVLoans"][chainId];
|
|
27
|
+
? juicebox_js_1.jbContractAddress[4]["REVLoans1_1"][chainId]
|
|
28
|
+
: juicebox_js_1.jbContractAddress[version]["REVLoans"][chainId];
|
|
25
29
|
}
|
|
26
30
|
//# sourceMappingURL=revnet.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"revnet.js","sourceRoot":"","sources":["../../../src/utils/revnet.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"revnet.js","sourceRoot":"","sources":["../../../src/utils/revnet.ts"],"names":[],"mappings":";;AAaA,wCAYC;AAED,sDAIC;AA7BD,0DAA6D;AAE7D,0BAA0B;AAC1B,MAAM,8BAA8B,GAAG,IAAI,CAAC;AAE5C,oDAAoD;AACpD,MAAM,eAAe,GAAG,GAAG,CAAC;AAE5B,4DAA4D;AAC5D,MAAM,4BAA4B,GAAG,IAAI,CAAC;AAE1C,SAAgB,cAAc,CAAC,cAAsB;IACnD,MAAM,KAAK,GACT,CAAC,MAAM,CAAC,cAAc,CAAC,GAAG,8BAA8B,CAAC,GAAG,4BAA4B;QACxF,eAAe,CAAC;IAElB,IAAI,KAAK,GAAG,eAAe,EAAE,CAAC;QAC5B,OAAO,eAAe,CAAC;IACzB,CAAC;SAAM,IAAI,KAAK,GAAG,8BAA8B,EAAE,CAAC;QAClD,OAAO,8BAA8B,CAAC;IACxC,CAAC;SAAM,CAAC;QACN,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,SAAgB,qBAAqB,CAAC,OAAkB,EAAE,OAAkB;IAC1E,OAAO,OAAO,KAAK,CAAC;QAClB,CAAC,CAAC,+BAAiB,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC;QAC9C,CAAC,CAAC,+BAAiB,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC;AACtD,CAAC"}
|
|
@@ -1,10 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
expect(calcPrepaidFee(
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const vitest_1 = require("vitest");
|
|
4
|
+
const revnet_js_1 = require("./revnet.js");
|
|
5
|
+
(0, vitest_1.describe)("calcPrepaidFee", () => {
|
|
6
|
+
(0, vitest_1.test)("calcPrepaidFee", () => {
|
|
7
|
+
(0, vitest_1.expect)((0, revnet_js_1.calcPrepaidFee)(1)).toEqual(29n);
|
|
8
|
+
(0, vitest_1.expect)((0, revnet_js_1.calcPrepaidFee)(0)).toEqual(25n);
|
|
9
|
+
(0, vitest_1.expect)((0, revnet_js_1.calcPrepaidFee)(121)).toEqual(500n);
|
|
8
10
|
});
|
|
9
11
|
});
|
|
10
12
|
//# sourceMappingURL=revnet.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"revnet.test.js","sourceRoot":"","sources":["../../../src/utils/revnet.test.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"revnet.test.js","sourceRoot":"","sources":["../../../src/utils/revnet.test.ts"],"names":[],"mappings":";;AAAA,mCAAgD;AAChD,2CAA6C;AAE7C,IAAA,iBAAQ,EAAC,gBAAgB,EAAE,GAAG,EAAE;IAC9B,IAAA,aAAI,EAAC,gBAAgB,EAAE,GAAG,EAAE;QAC1B,IAAA,eAAM,EAAC,IAAA,0BAAc,EAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACvC,IAAA,eAAM,EAAC,IAAA,0BAAc,EAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACvC,IAAA,eAAM,EAAC,IAAA,0BAAc,EAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1,23 +1,27 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getNextRulesetWeight = getNextRulesetWeight;
|
|
4
|
+
exports.getPrevRulesetWeight = getPrevRulesetWeight;
|
|
5
|
+
const constants_js_1 = require("../constants.js");
|
|
2
6
|
/**
|
|
3
7
|
* Derive the next ruleset's Weight value from the current ruleset.
|
|
4
8
|
*
|
|
5
9
|
* Useful when projecting a project's future Token B price.
|
|
6
10
|
* E.g. "In the next ruleset, how much will Token B cost, given the new Weight?"
|
|
7
11
|
*/
|
|
8
|
-
|
|
12
|
+
function getNextRulesetWeight(currentRuleset) {
|
|
9
13
|
const nextRulesetWeight = (currentRuleset.weight *
|
|
10
|
-
BigInt(MAX_WEIGHT_CUT_PERCENT - currentRuleset.weightCutPercent)) /
|
|
11
|
-
BigInt(MAX_WEIGHT_CUT_PERCENT);
|
|
14
|
+
BigInt(constants_js_1.MAX_WEIGHT_CUT_PERCENT - currentRuleset.weightCutPercent)) /
|
|
15
|
+
BigInt(constants_js_1.MAX_WEIGHT_CUT_PERCENT);
|
|
12
16
|
return nextRulesetWeight;
|
|
13
17
|
}
|
|
14
18
|
/**
|
|
15
19
|
* Derive the previous ruleset's Weight value from the current ruleset.
|
|
16
20
|
*/
|
|
17
|
-
|
|
21
|
+
function getPrevRulesetWeight(currentRuleset) {
|
|
18
22
|
// reverse of getNextRulesetWeight
|
|
19
|
-
const prevRulesetWeight = (currentRuleset.weight * BigInt(MAX_WEIGHT_CUT_PERCENT)) /
|
|
20
|
-
BigInt(MAX_WEIGHT_CUT_PERCENT - currentRuleset.weightCutPercent);
|
|
23
|
+
const prevRulesetWeight = (currentRuleset.weight * BigInt(constants_js_1.MAX_WEIGHT_CUT_PERCENT)) /
|
|
24
|
+
BigInt(constants_js_1.MAX_WEIGHT_CUT_PERCENT - currentRuleset.weightCutPercent);
|
|
21
25
|
return prevRulesetWeight;
|
|
22
26
|
}
|
|
23
27
|
//# sourceMappingURL=ruleset.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ruleset.js","sourceRoot":"","sources":["../../../src/utils/ruleset.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ruleset.js","sourceRoot":"","sources":["../../../src/utils/ruleset.ts"],"names":[],"mappings":";;AAQA,oDAUC;AAKD,oDAUC;AAjCD,kDAAyD;AAEzD;;;;;GAKG;AACH,SAAgB,oBAAoB,CAAC,cAGpC;IACC,MAAM,iBAAiB,GACrB,CAAC,cAAc,CAAC,MAAM;QACpB,MAAM,CAAC,qCAAsB,GAAG,cAAc,CAAC,gBAAgB,CAAC,CAAC;QACnE,MAAM,CAAC,qCAAsB,CAAC,CAAC;IAEjC,OAAO,iBAAiB,CAAC;AAC3B,CAAC;AAED;;GAEG;AACH,SAAgB,oBAAoB,CAAC,cAGpC;IACC,kCAAkC;IAClC,MAAM,iBAAiB,GACrB,CAAC,cAAc,CAAC,MAAM,GAAG,MAAM,CAAC,qCAAsB,CAAC,CAAC;QACxD,MAAM,CAAC,qCAAsB,GAAG,cAAc,CAAC,gBAAgB,CAAC,CAAC;IAEnE,OAAO,iBAAiB,CAAC;AAC3B,CAAC"}
|
|
@@ -1,21 +1,23 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const vitest_1 = require("vitest");
|
|
4
|
+
const ruleset_js_1 = require("./ruleset.js");
|
|
5
|
+
(0, vitest_1.describe)("Ruleset Weight utilities", () => {
|
|
6
|
+
vitest_1.test.each `
|
|
5
7
|
weight | weightCutPercent | expected
|
|
6
8
|
${100n} | ${200000000} | ${80n}
|
|
7
9
|
${200n} | ${300000000} | ${140n}
|
|
8
10
|
${300n} | ${0} | ${300n}
|
|
9
11
|
`("computes next ruleset weight correctly", ({ weight, weightCutPercent, expected }) => {
|
|
10
|
-
expect(getNextRulesetWeight({ weight, weightCutPercent })).toEqual(expected);
|
|
12
|
+
(0, vitest_1.expect)((0, ruleset_js_1.getNextRulesetWeight)({ weight, weightCutPercent })).toEqual(expected);
|
|
11
13
|
});
|
|
12
|
-
test.each `
|
|
14
|
+
vitest_1.test.each `
|
|
13
15
|
weight | weightCutPercent | expected
|
|
14
16
|
${80n} | ${200000000} | ${100n}
|
|
15
17
|
${160n} | ${300000000} | ${228n}
|
|
16
18
|
${300n} | ${0} | ${300n}
|
|
17
19
|
`("computes previous cycle weight correctly", ({ weight, weightCutPercent, expected }) => {
|
|
18
|
-
expect(getPrevRulesetWeight({ weight, weightCutPercent })).toEqual(expected);
|
|
20
|
+
(0, vitest_1.expect)((0, ruleset_js_1.getPrevRulesetWeight)({ weight, weightCutPercent })).toEqual(expected);
|
|
19
21
|
});
|
|
20
22
|
});
|
|
21
23
|
//# sourceMappingURL=ruleset.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ruleset.test.js","sourceRoot":"","sources":["../../../src/utils/ruleset.test.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"ruleset.test.js","sourceRoot":"","sources":["../../../src/utils/ruleset.test.ts"],"names":[],"mappings":";;AAAA,mCAAgD;AAChD,6CAA0E;AAE1E,IAAA,iBAAQ,EAAC,0BAA0B,EAAE,GAAG,EAAE;IACxC,aAAI,CAAC,IAAI,CAAA;;MAEL,IAAI,MAAM,SAAS,UAAU,GAAG;MAChC,IAAI,MAAM,SAAS,UAAU,IAAI;MACjC,IAAI,MAAM,CAAC,iBAAiB,IAAI;GACnC,CACC,wCAAwC,EACxC,CAAC,EAAE,MAAM,EAAE,gBAAgB,EAAE,QAAQ,EAAE,EAAE,EAAE;QACzC,IAAA,eAAM,EAAC,IAAA,iCAAoB,EAAC,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC,OAAO,CAChE,QAAQ,CACT,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,aAAI,CAAC,IAAI,CAAA;;MAEL,GAAG,OAAO,SAAS,UAAU,IAAI;MACjC,IAAI,MAAM,SAAS,UAAU,IAAI;MACjC,IAAI,MAAM,CAAC,iBAAiB,IAAI;GACnC,CACC,0CAA0C,EAC1C,CAAC,EAAE,MAAM,EAAE,gBAAgB,EAAE,QAAQ,EAAE,EAAE,EAAE;QACzC,IAAA,eAAM,EAAC,IAAA,iCAAoB,EAAC,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC,OAAO,CAChE,QAAQ,CACT,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC,CAAC,CAAC"}
|