@bananapus/nana-sdk-core 1.0.0 → 1.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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.js +89 -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.js +94 -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.js +17 -13
- package/dist/cjs/utils/deploy.js.map +1 -1
- package/dist/cjs/utils/deploy.test.js +15 -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 +88 -0
- package/dist/cjs/v6/cashOut.d.ts.map +1 -0
- package/dist/cjs/v6/cashOut.js +77 -0
- package/dist/cjs/v6/cashOut.js.map +1 -0
- package/dist/cjs/v6/cashOut.test.d.ts +2 -0
- package/dist/cjs/v6/cashOut.test.d.ts.map +1 -0
- package/dist/cjs/v6/cashOut.test.js +102 -0
- package/dist/cjs/v6/cashOut.test.js.map +1 -0
- package/dist/cjs/v6/currency.d.ts +43 -0
- package/dist/cjs/v6/currency.d.ts.map +1 -0
- package/dist/cjs/v6/currency.js +48 -0
- package/dist/cjs/v6/currency.js.map +1 -0
- package/dist/cjs/v6/currency.test.d.ts +2 -0
- package/dist/cjs/v6/currency.test.d.ts.map +1 -0
- package/dist/cjs/v6/currency.test.js +26 -0
- package/dist/cjs/v6/currency.test.js.map +1 -0
- package/dist/cjs/v6/fees.d.ts +43 -0
- package/dist/cjs/v6/fees.d.ts.map +1 -0
- package/dist/cjs/v6/fees.js +56 -0
- package/dist/cjs/v6/fees.js.map +1 -0
- package/dist/cjs/v6/fees.test.d.ts +2 -0
- package/dist/cjs/v6/fees.test.d.ts.map +1 -0
- package/dist/cjs/v6/fees.test.js +40 -0
- package/dist/cjs/v6/fees.test.js.map +1 -0
- package/dist/cjs/v6/index.d.ts +16 -0
- package/dist/cjs/v6/index.d.ts.map +1 -0
- package/dist/cjs/v6/index.js +32 -0
- package/dist/cjs/v6/index.js.map +1 -0
- package/dist/cjs/v6/launch.d.ts +2754 -0
- package/dist/cjs/v6/launch.d.ts.map +1 -0
- package/dist/cjs/v6/launch.js +184 -0
- package/dist/cjs/v6/launch.js.map +1 -0
- package/dist/cjs/v6/launch.test.d.ts +2 -0
- package/dist/cjs/v6/launch.test.d.ts.map +1 -0
- package/dist/cjs/v6/launch.test.js +137 -0
- package/dist/cjs/v6/launch.test.js.map +1 -0
- package/dist/cjs/v6/loans.d.ts +176 -0
- package/dist/cjs/v6/loans.d.ts.map +1 -0
- package/dist/cjs/v6/loans.js +177 -0
- package/dist/cjs/v6/loans.js.map +1 -0
- package/dist/cjs/v6/loans.test.d.ts +2 -0
- package/dist/cjs/v6/loans.test.d.ts.map +1 -0
- package/dist/cjs/v6/loans.test.js +129 -0
- package/dist/cjs/v6/loans.test.js.map +1 -0
- package/dist/cjs/v6/omnichain.d.ts +10997 -0
- package/dist/cjs/v6/omnichain.d.ts.map +1 -0
- package/dist/cjs/v6/omnichain.js +120 -0
- package/dist/cjs/v6/omnichain.js.map +1 -0
- package/dist/cjs/v6/omnichain.test.d.ts +2 -0
- package/dist/cjs/v6/omnichain.test.d.ts.map +1 -0
- package/dist/cjs/v6/omnichain.test.js +145 -0
- package/dist/cjs/v6/omnichain.test.js.map +1 -0
- package/dist/cjs/v6/pay.d.ts +110 -0
- package/dist/cjs/v6/pay.d.ts.map +1 -0
- package/dist/cjs/v6/pay.js +111 -0
- package/dist/cjs/v6/pay.js.map +1 -0
- package/dist/cjs/v6/pay.test.d.ts +2 -0
- package/dist/cjs/v6/pay.test.d.ts.map +1 -0
- package/dist/cjs/v6/pay.test.js +130 -0
- package/dist/cjs/v6/pay.test.js.map +1 -0
- package/dist/cjs/v6/permissions.d.ts +128 -0
- package/dist/cjs/v6/permissions.d.ts.map +1 -0
- package/dist/cjs/v6/permissions.js +125 -0
- package/dist/cjs/v6/permissions.js.map +1 -0
- package/dist/cjs/v6/permissions.test.d.ts +2 -0
- package/dist/cjs/v6/permissions.test.d.ts.map +1 -0
- package/dist/cjs/v6/permissions.test.js +117 -0
- package/dist/cjs/v6/permissions.test.js.map +1 -0
- package/dist/cjs/v6/revnets.d.ts +4459 -0
- package/dist/cjs/v6/revnets.d.ts.map +1 -0
- package/dist/cjs/v6/revnets.js +178 -0
- package/dist/cjs/v6/revnets.js.map +1 -0
- package/dist/cjs/v6/revnets.test.d.ts +2 -0
- package/dist/cjs/v6/revnets.test.d.ts.map +1 -0
- package/dist/cjs/v6/revnets.test.js +233 -0
- package/dist/cjs/v6/revnets.test.js.map +1 -0
- package/dist/cjs/v6/rulesets.d.ts +2700 -0
- package/dist/cjs/v6/rulesets.d.ts.map +1 -0
- package/dist/cjs/v6/rulesets.js +76 -0
- package/dist/cjs/v6/rulesets.js.map +1 -0
- package/dist/cjs/v6/rulesets.test.d.ts +2 -0
- package/dist/cjs/v6/rulesets.test.d.ts.map +1 -0
- package/dist/cjs/v6/rulesets.test.js +106 -0
- package/dist/cjs/v6/rulesets.test.js.map +1 -0
- package/dist/cjs/v6/splits.d.ts +2671 -0
- package/dist/cjs/v6/splits.d.ts.map +1 -0
- package/dist/cjs/v6/splits.js +116 -0
- package/dist/cjs/v6/splits.js.map +1 -0
- package/dist/cjs/v6/splits.test.d.ts +2 -0
- package/dist/cjs/v6/splits.test.d.ts.map +1 -0
- package/dist/cjs/v6/splits.test.js +135 -0
- package/dist/cjs/v6/splits.test.js.map +1 -0
- package/dist/cjs/v6/suckers.d.ts +247 -0
- package/dist/cjs/v6/suckers.d.ts.map +1 -0
- package/dist/cjs/v6/suckers.js +163 -0
- package/dist/cjs/v6/suckers.js.map +1 -0
- package/dist/cjs/v6/suckers.test.d.ts +2 -0
- package/dist/cjs/v6/suckers.test.d.ts.map +1 -0
- package/dist/cjs/v6/suckers.test.js +134 -0
- package/dist/cjs/v6/suckers.test.js.map +1 -0
- package/dist/cjs/v6/terminals.d.ts +67 -0
- package/dist/cjs/v6/terminals.d.ts.map +1 -0
- package/dist/cjs/v6/terminals.js +54 -0
- package/dist/cjs/v6/terminals.js.map +1 -0
- package/dist/cjs/v6/terminals.test.d.ts +2 -0
- package/dist/cjs/v6/terminals.test.d.ts.map +1 -0
- package/dist/cjs/v6/terminals.test.js +59 -0
- package/dist/cjs/v6/terminals.test.js.map +1 -0
- package/dist/cjs/v6/tokens.d.ts +194 -0
- package/dist/cjs/v6/tokens.d.ts.map +1 -0
- package/dist/cjs/v6/tokens.js +170 -0
- package/dist/cjs/v6/tokens.js.map +1 -0
- package/dist/cjs/v6/tokens.test.d.ts +2 -0
- package/dist/cjs/v6/tokens.test.d.ts.map +1 -0
- package/dist/cjs/v6/tokens.test.js +141 -0
- package/dist/cjs/v6/tokens.test.js.map +1 -0
- package/dist/cjs/v6/types.d.ts +12 -0
- package/dist/cjs/v6/types.d.ts.map +1 -0
- package/dist/cjs/v6/types.js +15 -0
- package/dist/cjs/v6/types.js.map +1 -0
- package/dist/esm/v6/cashOut.d.ts +88 -0
- package/dist/esm/v6/cashOut.d.ts.map +1 -0
- package/dist/esm/v6/cashOut.js +73 -0
- package/dist/esm/v6/cashOut.js.map +1 -0
- package/dist/esm/v6/cashOut.test.d.ts +2 -0
- package/dist/esm/v6/cashOut.test.d.ts.map +1 -0
- package/dist/esm/v6/cashOut.test.js +100 -0
- package/dist/esm/v6/cashOut.test.js.map +1 -0
- package/dist/esm/v6/currency.d.ts +43 -0
- package/dist/esm/v6/currency.d.ts.map +1 -0
- package/dist/esm/v6/currency.js +44 -0
- package/dist/esm/v6/currency.js.map +1 -0
- package/dist/esm/v6/currency.test.d.ts +2 -0
- package/dist/esm/v6/currency.test.d.ts.map +1 -0
- package/dist/esm/v6/currency.test.js +24 -0
- package/dist/esm/v6/currency.test.js.map +1 -0
- package/dist/esm/v6/fees.d.ts +43 -0
- package/dist/esm/v6/fees.d.ts.map +1 -0
- package/dist/esm/v6/fees.js +51 -0
- package/dist/esm/v6/fees.js.map +1 -0
- package/dist/esm/v6/fees.test.d.ts +2 -0
- package/dist/esm/v6/fees.test.d.ts.map +1 -0
- package/dist/esm/v6/fees.test.js +38 -0
- package/dist/esm/v6/fees.test.js.map +1 -0
- package/dist/esm/v6/index.d.ts +16 -0
- package/dist/esm/v6/index.d.ts.map +1 -0
- package/dist/esm/v6/index.js +16 -0
- package/dist/esm/v6/index.js.map +1 -0
- package/dist/esm/v6/launch.d.ts +2754 -0
- package/dist/esm/v6/launch.d.ts.map +1 -0
- package/dist/esm/v6/launch.js +176 -0
- package/dist/esm/v6/launch.js.map +1 -0
- package/dist/esm/v6/launch.test.d.ts +2 -0
- package/dist/esm/v6/launch.test.d.ts.map +1 -0
- package/dist/esm/v6/launch.test.js +135 -0
- package/dist/esm/v6/launch.test.js.map +1 -0
- package/dist/esm/v6/loans.d.ts +176 -0
- package/dist/esm/v6/loans.d.ts.map +1 -0
- package/dist/esm/v6/loans.js +170 -0
- package/dist/esm/v6/loans.js.map +1 -0
- package/dist/esm/v6/loans.test.d.ts +2 -0
- package/dist/esm/v6/loans.test.d.ts.map +1 -0
- package/dist/esm/v6/loans.test.js +127 -0
- package/dist/esm/v6/loans.test.js.map +1 -0
- package/dist/esm/v6/omnichain.d.ts +10997 -0
- package/dist/esm/v6/omnichain.d.ts.map +1 -0
- package/dist/esm/v6/omnichain.js +116 -0
- package/dist/esm/v6/omnichain.js.map +1 -0
- package/dist/esm/v6/omnichain.test.d.ts +2 -0
- package/dist/esm/v6/omnichain.test.d.ts.map +1 -0
- package/dist/esm/v6/omnichain.test.js +143 -0
- package/dist/esm/v6/omnichain.test.js.map +1 -0
- package/dist/esm/v6/pay.d.ts +110 -0
- package/dist/esm/v6/pay.d.ts.map +1 -0
- package/dist/esm/v6/pay.js +106 -0
- package/dist/esm/v6/pay.js.map +1 -0
- package/dist/esm/v6/pay.test.d.ts +2 -0
- package/dist/esm/v6/pay.test.d.ts.map +1 -0
- package/dist/esm/v6/pay.test.js +128 -0
- package/dist/esm/v6/pay.test.js.map +1 -0
- package/dist/esm/v6/permissions.d.ts +128 -0
- package/dist/esm/v6/permissions.d.ts.map +1 -0
- package/dist/esm/v6/permissions.js +120 -0
- package/dist/esm/v6/permissions.js.map +1 -0
- package/dist/esm/v6/permissions.test.d.ts +2 -0
- package/dist/esm/v6/permissions.test.d.ts.map +1 -0
- package/dist/esm/v6/permissions.test.js +115 -0
- package/dist/esm/v6/permissions.test.js.map +1 -0
- package/dist/esm/v6/revnets.d.ts +4459 -0
- package/dist/esm/v6/revnets.d.ts.map +1 -0
- package/dist/esm/v6/revnets.js +169 -0
- package/dist/esm/v6/revnets.js.map +1 -0
- package/dist/esm/v6/revnets.test.d.ts +2 -0
- package/dist/esm/v6/revnets.test.d.ts.map +1 -0
- package/dist/esm/v6/revnets.test.js +231 -0
- package/dist/esm/v6/revnets.test.js.map +1 -0
- package/dist/esm/v6/rulesets.d.ts +2700 -0
- package/dist/esm/v6/rulesets.d.ts.map +1 -0
- package/dist/esm/v6/rulesets.js +70 -0
- package/dist/esm/v6/rulesets.js.map +1 -0
- package/dist/esm/v6/rulesets.test.d.ts +2 -0
- package/dist/esm/v6/rulesets.test.d.ts.map +1 -0
- package/dist/esm/v6/rulesets.test.js +104 -0
- package/dist/esm/v6/rulesets.test.js.map +1 -0
- package/dist/esm/v6/splits.d.ts +2671 -0
- package/dist/esm/v6/splits.d.ts.map +1 -0
- package/dist/esm/v6/splits.js +109 -0
- package/dist/esm/v6/splits.js.map +1 -0
- package/dist/esm/v6/splits.test.d.ts +2 -0
- package/dist/esm/v6/splits.test.d.ts.map +1 -0
- package/dist/esm/v6/splits.test.js +133 -0
- package/dist/esm/v6/splits.test.js.map +1 -0
- package/dist/esm/v6/suckers.d.ts +247 -0
- package/dist/esm/v6/suckers.d.ts.map +1 -0
- package/dist/esm/v6/suckers.js +156 -0
- package/dist/esm/v6/suckers.js.map +1 -0
- package/dist/esm/v6/suckers.test.d.ts +2 -0
- package/dist/esm/v6/suckers.test.d.ts.map +1 -0
- package/dist/esm/v6/suckers.test.js +132 -0
- package/dist/esm/v6/suckers.test.js.map +1 -0
- package/dist/esm/v6/terminals.d.ts +67 -0
- package/dist/esm/v6/terminals.d.ts.map +1 -0
- package/dist/esm/v6/terminals.js +50 -0
- package/dist/esm/v6/terminals.js.map +1 -0
- package/dist/esm/v6/terminals.test.d.ts +2 -0
- package/dist/esm/v6/terminals.test.d.ts.map +1 -0
- package/dist/esm/v6/terminals.test.js +57 -0
- package/dist/esm/v6/terminals.test.js.map +1 -0
- package/dist/esm/v6/tokens.d.ts +194 -0
- package/dist/esm/v6/tokens.d.ts.map +1 -0
- package/dist/esm/v6/tokens.js +161 -0
- package/dist/esm/v6/tokens.js.map +1 -0
- package/dist/esm/v6/tokens.test.d.ts +2 -0
- package/dist/esm/v6/tokens.test.d.ts.map +1 -0
- package/dist/esm/v6/tokens.test.js +139 -0
- package/dist/esm/v6/tokens.test.js.map +1 -0
- package/dist/esm/v6/types.d.ts +12 -0
- package/dist/esm/v6/types.d.ts.map +1 -0
- package/dist/esm/v6/types.js +12 -0
- package/dist/esm/v6/types.js.map +1 -0
- package/dist/tsconfig.cjs.tsbuildinfo +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +8 -2
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"}
|
package/dist/cjs/utils/token.js
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getTokenCashOutQuoteEth = exports.getTokenBtoAQuote = exports.getTokenBPrice = exports.getTokenAToBQuote = void 0;
|
|
4
|
+
const fpnum_1 = require("fpnum");
|
|
5
|
+
const viem_1 = require("viem");
|
|
6
|
+
const constants_js_1 = require("../constants.js");
|
|
4
7
|
/**
|
|
5
8
|
* Return a quote for how much Token B to mint for a given `tokenAAmount`.
|
|
6
9
|
*
|
|
@@ -13,13 +16,13 @@ import { ONE_ETHER, MAX_CASH_OUT_TAX_RATE, MAX_RESERVED_PERCENT, } from "../cons
|
|
|
13
16
|
* - tokens reserved for project.
|
|
14
17
|
* - tokens minted for the payer.
|
|
15
18
|
*/
|
|
16
|
-
|
|
19
|
+
const getTokenAToBQuote = (tokenAAmount, // wei
|
|
17
20
|
cycleParams) => {
|
|
18
21
|
const { weight, reservedPercent } = cycleParams;
|
|
19
22
|
const weightRatio = BigInt(10 ** tokenAAmount.decimals);
|
|
20
23
|
const totalTokens = (weight.value * tokenAAmount.value) / weightRatio;
|
|
21
24
|
const reservedTokens = (weight.value * reservedPercent.value * tokenAAmount.value) /
|
|
22
|
-
BigInt(MAX_RESERVED_PERCENT) /
|
|
25
|
+
BigInt(constants_js_1.MAX_RESERVED_PERCENT) /
|
|
23
26
|
weightRatio;
|
|
24
27
|
const payerTokens = totalTokens - reservedTokens;
|
|
25
28
|
return {
|
|
@@ -29,21 +32,23 @@ cycleParams) => {
|
|
|
29
32
|
totalTokens,
|
|
30
33
|
};
|
|
31
34
|
};
|
|
35
|
+
exports.getTokenAToBQuote = getTokenAToBQuote;
|
|
32
36
|
/**
|
|
33
37
|
* Return the amount of Token A it costs to buy 1 Token B.
|
|
34
38
|
*
|
|
35
39
|
* Accounts for the ruleset's `weight` and `reservedPercent`.
|
|
36
40
|
*/
|
|
37
|
-
|
|
38
|
-
const oneTokenA = FixedInt.parse("1", tokenADecimals);
|
|
41
|
+
const getTokenBPrice = (tokenADecimals, cycleParams) => {
|
|
42
|
+
const oneTokenA = fpnum_1.FixedInt.parse("1", tokenADecimals);
|
|
39
43
|
const weightRatio = BigInt(10 ** tokenADecimals);
|
|
40
44
|
// 1 Token A = x Token B
|
|
41
|
-
const tokenBQuote = getTokenAToBQuote(oneTokenA, cycleParams);
|
|
45
|
+
const tokenBQuote = (0, exports.getTokenAToBQuote)(oneTokenA, cycleParams);
|
|
42
46
|
if (tokenBQuote.payerTokens === 0n)
|
|
43
|
-
return new FixedInt(0n, tokenADecimals);
|
|
44
|
-
const tokenBPrice = (ONE_ETHER * weightRatio) / tokenBQuote.payerTokens;
|
|
45
|
-
return new FixedInt(tokenBPrice, tokenADecimals);
|
|
47
|
+
return new fpnum_1.FixedInt(0n, tokenADecimals);
|
|
48
|
+
const tokenBPrice = (constants_js_1.ONE_ETHER * weightRatio) / tokenBQuote.payerTokens;
|
|
49
|
+
return new fpnum_1.FixedInt(tokenBPrice, tokenADecimals);
|
|
46
50
|
};
|
|
51
|
+
exports.getTokenBPrice = getTokenBPrice;
|
|
47
52
|
/**
|
|
48
53
|
* Return the amount of Token A it costs to mint a given `tokenBAmount`.
|
|
49
54
|
*
|
|
@@ -51,13 +56,14 @@ export const getTokenBPrice = (tokenADecimals, cycleParams) => {
|
|
|
51
56
|
*
|
|
52
57
|
* Useful for when users specify the outcome they want (how much Token B they want).
|
|
53
58
|
*/
|
|
54
|
-
|
|
59
|
+
const getTokenBtoAQuote = (tokenBAmount, // wei
|
|
55
60
|
tokenADecimals, cycleParams) => {
|
|
56
|
-
const tokenBPrice = getTokenBPrice(tokenADecimals, cycleParams);
|
|
57
|
-
const oneTokenA = parseUnits("1", tokenADecimals);
|
|
61
|
+
const tokenBPrice = (0, exports.getTokenBPrice)(tokenADecimals, cycleParams);
|
|
62
|
+
const oneTokenA = (0, viem_1.parseUnits)("1", tokenADecimals);
|
|
58
63
|
const tokenAQuote = (tokenBPrice.value * tokenBAmount.value) / oneTokenA;
|
|
59
|
-
return new FixedInt(tokenAQuote, tokenADecimals);
|
|
64
|
+
return new fpnum_1.FixedInt(tokenAQuote, tokenADecimals);
|
|
60
65
|
};
|
|
66
|
+
exports.getTokenBtoAQuote = getTokenBtoAQuote;
|
|
61
67
|
/**
|
|
62
68
|
* Returns the ETH value (in wei) that a given [tokensAmount] can be redeemed for.
|
|
63
69
|
*
|
|
@@ -78,13 +84,13 @@ tokenADecimals, cycleParams) => {
|
|
|
78
84
|
* @see https://www.desmos.com/calculator/sp9ru6zbpk
|
|
79
85
|
* @returns amount in ETH
|
|
80
86
|
*/
|
|
81
|
-
|
|
87
|
+
const getTokenCashOutQuoteEth = (tokensAmount, { overflowWei, // surplus
|
|
82
88
|
totalSupply, cashOutTaxRate, tokensReserved, }) => {
|
|
83
89
|
// alias names, to match the contract's implementation for easier manual comparison.
|
|
84
90
|
const surplus = overflowWei;
|
|
85
91
|
const cashOutCount = tokensAmount;
|
|
86
92
|
// If the cash out tax rate is the max, no surplus can be reclaimed.
|
|
87
|
-
if (cashOutTaxRate === MAX_CASH_OUT_TAX_RATE) {
|
|
93
|
+
if (cashOutTaxRate === constants_js_1.MAX_CASH_OUT_TAX_RATE) {
|
|
88
94
|
return 0;
|
|
89
95
|
}
|
|
90
96
|
// If the total supply is being cashed out, return the entire surplus.
|
|
@@ -117,13 +123,14 @@ totalSupply, cashOutTaxRate, tokensReserved, }) => {
|
|
|
117
123
|
* numerator = (1 - r) + (x * r / s)
|
|
118
124
|
* ```
|
|
119
125
|
*/
|
|
120
|
-
const numerator = BigInt(MAX_CASH_OUT_TAX_RATE - cashOutTaxRate) + frac;
|
|
126
|
+
const numerator = BigInt(constants_js_1.MAX_CASH_OUT_TAX_RATE - cashOutTaxRate) + frac;
|
|
121
127
|
/**
|
|
122
128
|
* ```
|
|
123
129
|
* y = base * numerator ==> ox/s * ( (1 - r) + (x * r / s) )
|
|
124
130
|
* ```
|
|
125
131
|
*/
|
|
126
|
-
const y = (base * numerator) / BigInt(MAX_CASH_OUT_TAX_RATE);
|
|
132
|
+
const y = (base * numerator) / BigInt(constants_js_1.MAX_CASH_OUT_TAX_RATE);
|
|
127
133
|
return y;
|
|
128
134
|
};
|
|
135
|
+
exports.getTokenCashOutQuoteEth = getTokenCashOutQuoteEth;
|
|
129
136
|
//# sourceMappingURL=token.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"token.js","sourceRoot":"","sources":["../../../src/utils/token.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"token.js","sourceRoot":"","sources":["../../../src/utils/token.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,37 +1,39 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const fpnum_1 = require("fpnum");
|
|
4
|
+
const viem_1 = require("viem");
|
|
5
|
+
const vitest_1 = require("vitest");
|
|
6
|
+
const data_js_1 = require("./data.js");
|
|
7
|
+
const token_js_1 = require("./token.js");
|
|
8
|
+
(0, vitest_1.describe)("token", () => {
|
|
9
|
+
(0, vitest_1.describe)("getTokenAToBQuote", () => {
|
|
10
|
+
vitest_1.test.each `
|
|
9
11
|
tokenAAmount | tokenADecimals | expectedPayerTokens
|
|
10
|
-
${1000000n} | ${6} | ${parseUnits("1", 18)}
|
|
11
|
-
${parseEther("1")} | ${18} | ${parseUnits("1", 18)}
|
|
12
|
+
${1000000n} | ${6} | ${(0, viem_1.parseUnits)("1", 18)}
|
|
13
|
+
${(0, viem_1.parseEther)("1")} | ${18} | ${(0, viem_1.parseUnits)("1", 18)}
|
|
12
14
|
`("should return the correct token B quote when amount is $tokenAAmount and decimals is $tokenADecimals", ({ tokenAAmount, tokenADecimals, expectedPayerTokens }) => {
|
|
13
|
-
const weight = FixedInt.parse("1", 18); // 1 token per USDC
|
|
14
|
-
const reservedPercent = new ReservedPercent(0);
|
|
15
|
-
const { payerTokens } = getTokenAToBQuote(new FixedInt(tokenAAmount, tokenADecimals), {
|
|
15
|
+
const weight = fpnum_1.FixedInt.parse("1", 18); // 1 token per USDC
|
|
16
|
+
const reservedPercent = new data_js_1.ReservedPercent(0);
|
|
17
|
+
const { payerTokens } = (0, token_js_1.getTokenAToBQuote)(new fpnum_1.FixedInt(tokenAAmount, tokenADecimals), {
|
|
16
18
|
weight,
|
|
17
19
|
reservedPercent,
|
|
18
20
|
});
|
|
19
|
-
expect(payerTokens).toEqual(expectedPayerTokens);
|
|
21
|
+
(0, vitest_1.expect)(payerTokens).toEqual(expectedPayerTokens);
|
|
20
22
|
});
|
|
21
|
-
test.each `
|
|
23
|
+
vitest_1.test.each `
|
|
22
24
|
tokenADecimals | weight | expectedTokenBPrice
|
|
23
|
-
${18} | ${FixedInt.parse("1", 18)} | ${parseUnits("1", 18)}
|
|
24
|
-
${6} | ${FixedInt.parse("1", 18)} | ${parseUnits("1", 6)}
|
|
25
|
-
${18} | ${FixedInt.parse("0.5", 18)} | ${parseUnits("2", 18)}
|
|
26
|
-
${6} | ${FixedInt.parse("0.5", 18)} | ${parseUnits("2", 6)}
|
|
27
|
-
${6} | ${FixedInt.parse("0.8", 18)} | ${parseUnits("1.25", 6)}
|
|
25
|
+
${18} | ${fpnum_1.FixedInt.parse("1", 18)} | ${(0, viem_1.parseUnits)("1", 18)}
|
|
26
|
+
${6} | ${fpnum_1.FixedInt.parse("1", 18)} | ${(0, viem_1.parseUnits)("1", 6)}
|
|
27
|
+
${18} | ${fpnum_1.FixedInt.parse("0.5", 18)} | ${(0, viem_1.parseUnits)("2", 18)}
|
|
28
|
+
${6} | ${fpnum_1.FixedInt.parse("0.5", 18)} | ${(0, viem_1.parseUnits)("2", 6)}
|
|
29
|
+
${6} | ${fpnum_1.FixedInt.parse("0.8", 18)} | ${(0, viem_1.parseUnits)("1.25", 6)}
|
|
28
30
|
`("should return the correct token A quote when amount is $tokenBAmount and decimals is $tokenADecimals", ({ tokenADecimals, expectedTokenBPrice, weight }) => {
|
|
29
|
-
const reservedPercent = new ReservedPercent(0);
|
|
30
|
-
const tokenBPrice = getTokenBPrice(tokenADecimals, {
|
|
31
|
+
const reservedPercent = new data_js_1.ReservedPercent(0);
|
|
32
|
+
const tokenBPrice = (0, token_js_1.getTokenBPrice)(tokenADecimals, {
|
|
31
33
|
weight,
|
|
32
34
|
reservedPercent,
|
|
33
35
|
});
|
|
34
|
-
expect(tokenBPrice.value).toBe(expectedTokenBPrice);
|
|
36
|
+
(0, vitest_1.expect)(tokenBPrice.value).toBe(expectedTokenBPrice);
|
|
35
37
|
});
|
|
36
38
|
});
|
|
37
39
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"token.test.js","sourceRoot":"","sources":["../../../src/utils/token.test.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"token.test.js","sourceRoot":"","sources":["../../../src/utils/token.test.ts"],"names":[],"mappings":";;AAAA,iCAAiC;AACjC,+BAA8C;AAC9C,mCAAgD;AAChD,uCAA4C;AAC5C,yCAA+D;AAE/D,IAAA,iBAAQ,EAAC,OAAO,EAAE,GAAG,EAAE;IACrB,IAAA,iBAAQ,EAAC,mBAAmB,EAAE,GAAG,EAAE;QACjC,aAAI,CAAC,IAAI,CAAA;;QAEL,QAAQ,aAAa,CAAC,gBAAgB,IAAA,iBAAU,EAAC,GAAG,EAAE,EAAE,CAAC;QACzD,IAAA,iBAAU,EAAC,GAAG,CAAC,MAAM,EAAE,eAAe,IAAA,iBAAU,EAAC,GAAG,EAAE,EAAE,CAAC;KAC5D,CACC,sGAAsG,EACtG,CAAC,EAAE,YAAY,EAAE,cAAc,EAAE,mBAAmB,EAAE,EAAE,EAAE;YACxD,MAAM,MAAM,GAAG,gBAAQ,CAAC,KAAK,CAAK,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,mBAAmB;YAC/D,MAAM,eAAe,GAAG,IAAI,yBAAe,CAAC,CAAC,CAAC,CAAC;YAC/C,MAAM,EAAE,WAAW,EAAE,GAAG,IAAA,4BAAiB,EACvC,IAAI,gBAAQ,CAAC,YAAY,EAAE,cAAc,CAAC,EAC1C;gBACE,MAAM;gBACN,eAAe;aAChB,CACF,CAAC;YACF,IAAA,eAAM,EAAC,WAAW,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;QACnD,CAAC,CACF,CAAC;QAEF,aAAI,CAAC,IAAI,CAAA;;QAEL,EAAE,eAAe,gBAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,IAAA,iBAAU,EAAC,GAAG,EAAE,EAAE,CAAC;QACnE,CAAC,gBAAgB,gBAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,IAAA,iBAAU,EAAC,GAAG,EAAE,CAAC,CAAC;QAClE,EAAE,eAAe,gBAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,IAAA,iBAAU,EAAC,GAAG,EAAE,EAAE,CAAC;QACnE,CAAC,gBAAgB,gBAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,IAAA,iBAAU,EAAC,GAAG,EAAE,CAAC,CAAC;QAClE,CAAC,gBAAgB,gBAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,IAAA,iBAAU,EAAC,MAAM,EAAE,CAAC,CAAC;KACxE,CACC,sGAAsG,EACtG,CAAC,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,EAAE,EAAE,EAAE;YAClD,MAAM,eAAe,GAAG,IAAI,yBAAe,CAAC,CAAC,CAAC,CAAC;YAC/C,MAAM,WAAW,GAAG,IAAA,yBAAc,EAAC,cAAc,EAAE;gBACjD,MAAM;gBACN,eAAe;aAChB,CAAC,CAAC;YAEH,IAAA,eAAM,EAAC,WAAW,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QACtD,CAAC,CACF,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
package/dist/cjs/utils/tx.js
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createSalt = createSalt;
|
|
4
|
+
const viem_1 = require("viem");
|
|
5
|
+
function createSalt() {
|
|
3
6
|
const base = "0x" + Math.random().toString(16).slice(2); // idk lol
|
|
4
|
-
const salt = toHex(toBytes(base, { size: 32 }));
|
|
7
|
+
const salt = (0, viem_1.toHex)((0, viem_1.toBytes)(base, { size: 32 }));
|
|
5
8
|
return salt;
|
|
6
9
|
}
|
|
7
10
|
//# sourceMappingURL=tx.js.map
|
package/dist/cjs/utils/tx.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tx.js","sourceRoot":"","sources":["../../../src/utils/tx.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tx.js","sourceRoot":"","sources":["../../../src/utils/tx.ts"],"names":[],"mappings":";;AAEA,gCAKC;AAPD,+BAAsC;AAEtC,SAAgB,UAAU;IACxB,MAAM,IAAI,GAAW,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU;IAC3E,MAAM,IAAI,GAAG,IAAA,YAAK,EAAC,IAAA,cAAO,EAAC,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IAEhD,OAAO,IAAI,CAAC;AACd,CAAC"}
|