@bananapus/nana-sdk-core 1.3.0 → 1.4.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/utils/index.d.ts +1 -0
- package/dist/cjs/utils/index.d.ts.map +1 -1
- package/dist/cjs/utils/index.js +1 -0
- package/dist/cjs/utils/index.js.map +1 -1
- package/dist/cjs/utils/ipfs.d.ts +33 -1
- package/dist/cjs/utils/ipfs.d.ts.map +1 -1
- package/dist/cjs/utils/ipfs.js +212 -8
- package/dist/cjs/utils/ipfs.js.map +1 -1
- package/dist/cjs/utils/token.d.ts +2 -2
- package/dist/cjs/utils/token.d.ts.map +1 -1
- package/dist/cjs/utils/token.js +30 -9
- package/dist/cjs/utils/token.js.map +1 -1
- package/dist/cjs/v6/index.d.ts +2 -0
- package/dist/cjs/v6/index.d.ts.map +1 -1
- package/dist/cjs/v6/index.js +2 -0
- package/dist/cjs/v6/index.js.map +1 -1
- package/dist/cjs/v6/launch.d.ts +23 -2
- package/dist/cjs/v6/launch.d.ts.map +1 -1
- package/dist/cjs/v6/launch.js +40 -1
- package/dist/cjs/v6/launch.js.map +1 -1
- package/dist/cjs/v6/nft.d.ts +67 -0
- package/dist/cjs/v6/nft.d.ts.map +1 -1
- package/dist/cjs/v6/nft.js +192 -2
- package/dist/cjs/v6/nft.js.map +1 -1
- package/dist/cjs/v6/permissions.d.ts +21 -0
- package/dist/cjs/v6/permissions.d.ts.map +1 -1
- package/dist/cjs/v6/permissions.js +44 -1
- package/dist/cjs/v6/permissions.js.map +1 -1
- package/dist/cjs/v6/projectPayers.d.ts +178 -0
- package/dist/cjs/v6/projectPayers.d.ts.map +1 -0
- package/dist/cjs/v6/projectPayers.js +108 -0
- package/dist/cjs/v6/projectPayers.js.map +1 -0
- package/dist/cjs/v6/revnets.d.ts +3 -2
- package/dist/cjs/v6/revnets.d.ts.map +1 -1
- package/dist/cjs/v6/revnets.js +3 -2
- package/dist/cjs/v6/revnets.js.map +1 -1
- package/dist/cjs/v6/rulesets.d.ts +42 -0
- package/dist/cjs/v6/rulesets.d.ts.map +1 -1
- package/dist/cjs/v6/rulesets.js +87 -0
- package/dist/cjs/v6/rulesets.js.map +1 -1
- package/dist/cjs/v6/suckers.d.ts +740 -2
- package/dist/cjs/v6/suckers.d.ts.map +1 -1
- package/dist/cjs/v6/suckers.js +647 -8
- package/dist/cjs/v6/suckers.js.map +1 -1
- package/dist/cjs/v6/uniswapV4.d.ts +82 -0
- package/dist/cjs/v6/uniswapV4.d.ts.map +1 -0
- package/dist/cjs/v6/uniswapV4.js +336 -0
- package/dist/cjs/v6/uniswapV4.js.map +1 -0
- package/dist/esm/utils/index.d.ts +1 -0
- package/dist/esm/utils/index.d.ts.map +1 -1
- package/dist/esm/utils/index.js +1 -0
- package/dist/esm/utils/index.js.map +1 -1
- package/dist/esm/utils/ipfs.d.ts +33 -1
- package/dist/esm/utils/ipfs.d.ts.map +1 -1
- package/dist/esm/utils/ipfs.js +204 -8
- package/dist/esm/utils/ipfs.js.map +1 -1
- package/dist/esm/utils/token.d.ts +2 -2
- package/dist/esm/utils/token.d.ts.map +1 -1
- package/dist/esm/utils/token.js +30 -9
- package/dist/esm/utils/token.js.map +1 -1
- package/dist/esm/v6/index.d.ts +2 -0
- package/dist/esm/v6/index.d.ts.map +1 -1
- package/dist/esm/v6/index.js +2 -0
- package/dist/esm/v6/index.js.map +1 -1
- package/dist/esm/v6/launch.d.ts +23 -2
- package/dist/esm/v6/launch.d.ts.map +1 -1
- package/dist/esm/v6/launch.js +39 -2
- package/dist/esm/v6/launch.js.map +1 -1
- package/dist/esm/v6/nft.d.ts +67 -0
- package/dist/esm/v6/nft.d.ts.map +1 -1
- package/dist/esm/v6/nft.js +183 -1
- package/dist/esm/v6/nft.js.map +1 -1
- package/dist/esm/v6/permissions.d.ts +21 -0
- package/dist/esm/v6/permissions.d.ts.map +1 -1
- package/dist/esm/v6/permissions.js +40 -0
- package/dist/esm/v6/permissions.js.map +1 -1
- package/dist/esm/v6/projectPayers.d.ts +178 -0
- package/dist/esm/v6/projectPayers.d.ts.map +1 -0
- package/dist/esm/v6/projectPayers.js +101 -0
- package/dist/esm/v6/projectPayers.js.map +1 -0
- package/dist/esm/v6/revnets.d.ts +3 -2
- package/dist/esm/v6/revnets.d.ts.map +1 -1
- package/dist/esm/v6/revnets.js +3 -2
- package/dist/esm/v6/revnets.js.map +1 -1
- package/dist/esm/v6/rulesets.d.ts +42 -0
- package/dist/esm/v6/rulesets.d.ts.map +1 -1
- package/dist/esm/v6/rulesets.js +83 -0
- package/dist/esm/v6/rulesets.js.map +1 -1
- package/dist/esm/v6/suckers.d.ts +740 -2
- package/dist/esm/v6/suckers.d.ts.map +1 -1
- package/dist/esm/v6/suckers.js +630 -8
- package/dist/esm/v6/suckers.js.map +1 -1
- package/dist/esm/v6/uniswapV4.d.ts +82 -0
- package/dist/esm/v6/uniswapV4.d.ts.map +1 -0
- package/dist/esm/v6/uniswapV4.js +318 -0
- package/dist/esm/v6/uniswapV4.js.map +1 -0
- package/package.json +17 -10
- package/dist/cjs/utils/data.test.d.ts +0 -2
- package/dist/cjs/utils/data.test.d.ts.map +0 -1
- package/dist/cjs/utils/data.test.js +0 -27
- package/dist/cjs/utils/data.test.js.map +0 -1
- package/dist/cjs/utils/deploy.test.d.ts +0 -2
- package/dist/cjs/utils/deploy.test.d.ts.map +0 -1
- package/dist/cjs/utils/deploy.test.js +0 -65
- package/dist/cjs/utils/deploy.test.js.map +0 -1
- package/dist/cjs/utils/fee.test.d.ts +0 -2
- package/dist/cjs/utils/fee.test.d.ts.map +0 -1
- package/dist/cjs/utils/fee.test.js +0 -11
- package/dist/cjs/utils/fee.test.js.map +0 -1
- package/dist/cjs/utils/format.test.d.ts +0 -2
- package/dist/cjs/utils/format.test.d.ts.map +0 -1
- package/dist/cjs/utils/format.test.js +0 -27
- package/dist/cjs/utils/format.test.js.map +0 -1
- package/dist/cjs/utils/ipfs.test.d.ts +0 -2
- package/dist/cjs/utils/ipfs.test.d.ts.map +0 -1
- package/dist/cjs/utils/ipfs.test.js +0 -33
- package/dist/cjs/utils/ipfs.test.js.map +0 -1
- package/dist/cjs/utils/revnet.test.d.ts +0 -2
- package/dist/cjs/utils/revnet.test.d.ts.map +0 -1
- package/dist/cjs/utils/revnet.test.js +0 -12
- package/dist/cjs/utils/revnet.test.js.map +0 -1
- package/dist/cjs/utils/ruleset.test.d.ts +0 -2
- package/dist/cjs/utils/ruleset.test.d.ts.map +0 -1
- package/dist/cjs/utils/ruleset.test.js +0 -23
- package/dist/cjs/utils/ruleset.test.js.map +0 -1
- package/dist/cjs/utils/token.test.d.ts +0 -2
- package/dist/cjs/utils/token.test.d.ts.map +0 -1
- package/dist/cjs/utils/token.test.js +0 -40
- package/dist/cjs/utils/token.test.js.map +0 -1
- package/dist/cjs/utils/urn.test.d.ts +0 -2
- package/dist/cjs/utils/urn.test.d.ts.map +0 -1
- package/dist/cjs/utils/urn.test.js +0 -114
- package/dist/cjs/utils/urn.test.js.map +0 -1
- package/dist/cjs/v6/cashOut.test.d.ts +0 -2
- package/dist/cjs/v6/cashOut.test.d.ts.map +0 -1
- package/dist/cjs/v6/cashOut.test.js +0 -122
- package/dist/cjs/v6/cashOut.test.js.map +0 -1
- package/dist/cjs/v6/currency.test.d.ts +0 -2
- package/dist/cjs/v6/currency.test.d.ts.map +0 -1
- package/dist/cjs/v6/currency.test.js +0 -26
- package/dist/cjs/v6/currency.test.js.map +0 -1
- package/dist/cjs/v6/fees.test.d.ts +0 -2
- package/dist/cjs/v6/fees.test.d.ts.map +0 -1
- package/dist/cjs/v6/fees.test.js +0 -40
- package/dist/cjs/v6/fees.test.js.map +0 -1
- package/dist/cjs/v6/launch.test.d.ts +0 -2
- package/dist/cjs/v6/launch.test.d.ts.map +0 -1
- package/dist/cjs/v6/launch.test.js +0 -137
- package/dist/cjs/v6/launch.test.js.map +0 -1
- package/dist/cjs/v6/loans.test.d.ts +0 -2
- package/dist/cjs/v6/loans.test.d.ts.map +0 -1
- package/dist/cjs/v6/loans.test.js +0 -129
- package/dist/cjs/v6/loans.test.js.map +0 -1
- package/dist/cjs/v6/nft.test.d.ts +0 -2
- package/dist/cjs/v6/nft.test.d.ts.map +0 -1
- package/dist/cjs/v6/nft.test.js +0 -206
- package/dist/cjs/v6/nft.test.js.map +0 -1
- package/dist/cjs/v6/omnichain.test.d.ts +0 -2
- package/dist/cjs/v6/omnichain.test.d.ts.map +0 -1
- package/dist/cjs/v6/omnichain.test.js +0 -145
- package/dist/cjs/v6/omnichain.test.js.map +0 -1
- package/dist/cjs/v6/pay.test.d.ts +0 -2
- package/dist/cjs/v6/pay.test.d.ts.map +0 -1
- package/dist/cjs/v6/pay.test.js +0 -137
- package/dist/cjs/v6/pay.test.js.map +0 -1
- package/dist/cjs/v6/permissions.test.d.ts +0 -2
- package/dist/cjs/v6/permissions.test.d.ts.map +0 -1
- package/dist/cjs/v6/permissions.test.js +0 -117
- package/dist/cjs/v6/permissions.test.js.map +0 -1
- package/dist/cjs/v6/revnets.test.d.ts +0 -2
- package/dist/cjs/v6/revnets.test.d.ts.map +0 -1
- package/dist/cjs/v6/revnets.test.js +0 -233
- package/dist/cjs/v6/revnets.test.js.map +0 -1
- package/dist/cjs/v6/rulesets.test.d.ts +0 -2
- package/dist/cjs/v6/rulesets.test.d.ts.map +0 -1
- package/dist/cjs/v6/rulesets.test.js +0 -106
- package/dist/cjs/v6/rulesets.test.js.map +0 -1
- package/dist/cjs/v6/splits.test.d.ts +0 -2
- package/dist/cjs/v6/splits.test.d.ts.map +0 -1
- package/dist/cjs/v6/splits.test.js +0 -135
- package/dist/cjs/v6/splits.test.js.map +0 -1
- package/dist/cjs/v6/suckers.test.d.ts +0 -2
- package/dist/cjs/v6/suckers.test.d.ts.map +0 -1
- package/dist/cjs/v6/suckers.test.js +0 -134
- package/dist/cjs/v6/suckers.test.js.map +0 -1
- package/dist/cjs/v6/terminals.test.d.ts +0 -2
- package/dist/cjs/v6/terminals.test.d.ts.map +0 -1
- package/dist/cjs/v6/terminals.test.js +0 -59
- package/dist/cjs/v6/terminals.test.js.map +0 -1
- package/dist/cjs/v6/tokens.test.d.ts +0 -2
- package/dist/cjs/v6/tokens.test.d.ts.map +0 -1
- package/dist/cjs/v6/tokens.test.js +0 -141
- package/dist/cjs/v6/tokens.test.js.map +0 -1
- package/dist/esm/utils/data.test.d.ts +0 -2
- package/dist/esm/utils/data.test.d.ts.map +0 -1
- package/dist/esm/utils/data.test.js +0 -25
- package/dist/esm/utils/data.test.js.map +0 -1
- package/dist/esm/utils/deploy.test.d.ts +0 -2
- package/dist/esm/utils/deploy.test.d.ts.map +0 -1
- package/dist/esm/utils/deploy.test.js +0 -63
- package/dist/esm/utils/deploy.test.js.map +0 -1
- package/dist/esm/utils/fee.test.d.ts +0 -2
- package/dist/esm/utils/fee.test.d.ts.map +0 -1
- package/dist/esm/utils/fee.test.js +0 -9
- package/dist/esm/utils/fee.test.js.map +0 -1
- package/dist/esm/utils/format.test.d.ts +0 -2
- package/dist/esm/utils/format.test.d.ts.map +0 -1
- package/dist/esm/utils/format.test.js +0 -25
- package/dist/esm/utils/format.test.js.map +0 -1
- package/dist/esm/utils/ipfs.test.d.ts +0 -2
- package/dist/esm/utils/ipfs.test.d.ts.map +0 -1
- package/dist/esm/utils/ipfs.test.js +0 -28
- package/dist/esm/utils/ipfs.test.js.map +0 -1
- package/dist/esm/utils/revnet.test.d.ts +0 -2
- package/dist/esm/utils/revnet.test.d.ts.map +0 -1
- package/dist/esm/utils/revnet.test.js +0 -10
- package/dist/esm/utils/revnet.test.js.map +0 -1
- package/dist/esm/utils/ruleset.test.d.ts +0 -2
- package/dist/esm/utils/ruleset.test.d.ts.map +0 -1
- package/dist/esm/utils/ruleset.test.js +0 -21
- package/dist/esm/utils/ruleset.test.js.map +0 -1
- package/dist/esm/utils/token.test.d.ts +0 -2
- package/dist/esm/utils/token.test.d.ts.map +0 -1
- package/dist/esm/utils/token.test.js +0 -38
- package/dist/esm/utils/token.test.js.map +0 -1
- package/dist/esm/utils/urn.test.d.ts +0 -2
- package/dist/esm/utils/urn.test.d.ts.map +0 -1
- package/dist/esm/utils/urn.test.js +0 -112
- package/dist/esm/utils/urn.test.js.map +0 -1
- package/dist/esm/v6/cashOut.test.d.ts +0 -2
- package/dist/esm/v6/cashOut.test.d.ts.map +0 -1
- package/dist/esm/v6/cashOut.test.js +0 -120
- package/dist/esm/v6/cashOut.test.js.map +0 -1
- package/dist/esm/v6/currency.test.d.ts +0 -2
- package/dist/esm/v6/currency.test.d.ts.map +0 -1
- package/dist/esm/v6/currency.test.js +0 -24
- package/dist/esm/v6/currency.test.js.map +0 -1
- package/dist/esm/v6/fees.test.d.ts +0 -2
- package/dist/esm/v6/fees.test.d.ts.map +0 -1
- package/dist/esm/v6/fees.test.js +0 -38
- package/dist/esm/v6/fees.test.js.map +0 -1
- package/dist/esm/v6/launch.test.d.ts +0 -2
- package/dist/esm/v6/launch.test.d.ts.map +0 -1
- package/dist/esm/v6/launch.test.js +0 -135
- package/dist/esm/v6/launch.test.js.map +0 -1
- package/dist/esm/v6/loans.test.d.ts +0 -2
- package/dist/esm/v6/loans.test.d.ts.map +0 -1
- package/dist/esm/v6/loans.test.js +0 -127
- package/dist/esm/v6/loans.test.js.map +0 -1
- package/dist/esm/v6/nft.test.d.ts +0 -2
- package/dist/esm/v6/nft.test.d.ts.map +0 -1
- package/dist/esm/v6/nft.test.js +0 -204
- package/dist/esm/v6/nft.test.js.map +0 -1
- package/dist/esm/v6/omnichain.test.d.ts +0 -2
- package/dist/esm/v6/omnichain.test.d.ts.map +0 -1
- package/dist/esm/v6/omnichain.test.js +0 -143
- package/dist/esm/v6/omnichain.test.js.map +0 -1
- package/dist/esm/v6/pay.test.d.ts +0 -2
- package/dist/esm/v6/pay.test.d.ts.map +0 -1
- package/dist/esm/v6/pay.test.js +0 -135
- package/dist/esm/v6/pay.test.js.map +0 -1
- package/dist/esm/v6/permissions.test.d.ts +0 -2
- package/dist/esm/v6/permissions.test.d.ts.map +0 -1
- package/dist/esm/v6/permissions.test.js +0 -115
- package/dist/esm/v6/permissions.test.js.map +0 -1
- package/dist/esm/v6/revnets.test.d.ts +0 -2
- package/dist/esm/v6/revnets.test.d.ts.map +0 -1
- package/dist/esm/v6/revnets.test.js +0 -231
- package/dist/esm/v6/revnets.test.js.map +0 -1
- package/dist/esm/v6/rulesets.test.d.ts +0 -2
- package/dist/esm/v6/rulesets.test.d.ts.map +0 -1
- package/dist/esm/v6/rulesets.test.js +0 -104
- package/dist/esm/v6/rulesets.test.js.map +0 -1
- package/dist/esm/v6/splits.test.d.ts +0 -2
- package/dist/esm/v6/splits.test.d.ts.map +0 -1
- package/dist/esm/v6/splits.test.js +0 -133
- package/dist/esm/v6/splits.test.js.map +0 -1
- package/dist/esm/v6/suckers.test.d.ts +0 -2
- package/dist/esm/v6/suckers.test.d.ts.map +0 -1
- package/dist/esm/v6/suckers.test.js +0 -132
- package/dist/esm/v6/suckers.test.js.map +0 -1
- package/dist/esm/v6/terminals.test.d.ts +0 -2
- package/dist/esm/v6/terminals.test.d.ts.map +0 -1
- package/dist/esm/v6/terminals.test.js +0 -57
- package/dist/esm/v6/terminals.test.js.map +0 -1
- package/dist/esm/v6/tokens.test.d.ts +0 -2
- package/dist/esm/v6/tokens.test.d.ts.map +0 -1
- package/dist/esm/v6/tokens.test.js +0 -139
- package/dist/esm/v6/tokens.test.js.map +0 -1
- package/dist/tsconfig.cjs.tsbuildinfo +0 -1
- package/dist/tsconfig.tsbuildinfo +0 -1
package/dist/cjs/v6/nft.d.ts
CHANGED
|
@@ -1,10 +1,77 @@
|
|
|
1
1
|
import { Address, Hex, PublicClient } from "viem";
|
|
2
2
|
import { JBChainId } from "../types.js";
|
|
3
|
+
/**
|
|
4
|
+
* App-level sentinel convention used by Juicebox 721 shops for effectively
|
|
5
|
+
* unlimited inventory.
|
|
6
|
+
*/
|
|
7
|
+
export declare const TIER_UNLIMITED_SUPPLY = 999999999;
|
|
3
8
|
/**
|
|
4
9
|
* JB721TiersHookStore's `DISCOUNT_DENOMINATOR`: a tier's `discountPercent` is
|
|
5
10
|
* out of 200, so the shopper-facing "% off" is `discountPercent / 2`.
|
|
6
11
|
*/
|
|
7
12
|
export declare const DISCOUNT_DENOMINATOR = 200n;
|
|
13
|
+
/** Canonical display fields understood across Juicebox 721 metadata writers. */
|
|
14
|
+
export interface TierMetadata {
|
|
15
|
+
name?: string;
|
|
16
|
+
description?: string;
|
|
17
|
+
image?: string;
|
|
18
|
+
animationUrl?: string;
|
|
19
|
+
mediaType?: string;
|
|
20
|
+
categoryName?: string;
|
|
21
|
+
}
|
|
22
|
+
/** Input accepted by {@link buildTierMetadata}. */
|
|
23
|
+
export interface TierMetadataInput {
|
|
24
|
+
name: string;
|
|
25
|
+
description?: string;
|
|
26
|
+
image?: string;
|
|
27
|
+
animationUrl?: string;
|
|
28
|
+
mediaType?: string;
|
|
29
|
+
categoryName?: string;
|
|
30
|
+
}
|
|
31
|
+
/** JSON shape written for a tier's pinned metadata. */
|
|
32
|
+
export interface StoredTierMetadata {
|
|
33
|
+
name: string;
|
|
34
|
+
description?: string;
|
|
35
|
+
image?: string;
|
|
36
|
+
animation_url?: string;
|
|
37
|
+
mediaType?: string;
|
|
38
|
+
categoryName?: string;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Parse a `data:application/json` tier URI. Invalid, non-object, and non-data
|
|
42
|
+
* values return `null` so callers can fall back to an IPFS metadata fetch.
|
|
43
|
+
*/
|
|
44
|
+
export declare function parseTierMetadataJson(uri: string): Record<string, unknown> | null;
|
|
45
|
+
/**
|
|
46
|
+
* Normalize legacy and current tier metadata field names into one display
|
|
47
|
+
* shape. Only non-empty strings are returned.
|
|
48
|
+
*/
|
|
49
|
+
export declare function pickTierMetadata(json: Record<string, unknown>): TierMetadata;
|
|
50
|
+
/** Whether a tier media value uses an immutable or browser-loadable URI form. */
|
|
51
|
+
export declare function isSafeTierMediaUri(value: string): boolean;
|
|
52
|
+
/** Build the canonical JSON object pinned for one tier. */
|
|
53
|
+
export declare function buildTierMetadata(input: TierMetadataInput): StoredTierMetadata;
|
|
54
|
+
/**
|
|
55
|
+
* Route IPFS media through a caller-selected gateway base URL. Data URIs and
|
|
56
|
+
* ordinary HTTP URLs pass through unchanged.
|
|
57
|
+
*/
|
|
58
|
+
export declare function tierMediaAssetUrl(value: unknown, ipfsGatewayBaseUrl?: string): string | undefined;
|
|
59
|
+
/**
|
|
60
|
+
* Return a browser-renderable tier image URL. SVG data URIs that only wrap an
|
|
61
|
+
* external `<image href>` are unwrapped because browsers block that nested
|
|
62
|
+
* network request when the SVG itself is used as an `<img>` source.
|
|
63
|
+
*/
|
|
64
|
+
export declare function tierMediaImageUrl(image: unknown, ipfsGatewayBaseUrl?: string): string | undefined;
|
|
65
|
+
/** Pick and resolve all tier metadata fields in one pass. */
|
|
66
|
+
export declare function tierDisplayMetadata(json: Record<string, unknown>, ipfsGatewayBaseUrl?: string): TierMetadata;
|
|
67
|
+
/** Stable first-seen category ids, with blank categories assigned to 0. */
|
|
68
|
+
export declare function buildTierCategoryPlan(tiers: ReadonlyArray<{
|
|
69
|
+
id: string;
|
|
70
|
+
categoryName?: string;
|
|
71
|
+
}>): {
|
|
72
|
+
categoryByTierId: Record<string, number>;
|
|
73
|
+
storeCategories: Record<string, string>;
|
|
74
|
+
};
|
|
8
75
|
/**
|
|
9
76
|
* A tier's effective (discounted) price, matching the on-chain formula in
|
|
10
77
|
* JB721TiersHookStore: `price - mulDiv(price, discountPercent, 200)` with
|
package/dist/cjs/v6/nft.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nft.d.ts","sourceRoot":"","sources":["../../../src/v6/nft.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,YAAY,EAAe,MAAM,MAAM,CAAC;AAQ/D,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"nft.d.ts","sourceRoot":"","sources":["../../../src/v6/nft.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/v6/nft.js
CHANGED
|
@@ -1,19 +1,206 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.DISCOUNT_DENOMINATOR = void 0;
|
|
3
|
+
exports.DISCOUNT_DENOMINATOR = exports.TIER_UNLIMITED_SUPPLY = void 0;
|
|
4
|
+
exports.parseTierMetadataJson = parseTierMetadataJson;
|
|
5
|
+
exports.pickTierMetadata = pickTierMetadata;
|
|
6
|
+
exports.isSafeTierMediaUri = isSafeTierMediaUri;
|
|
7
|
+
exports.buildTierMetadata = buildTierMetadata;
|
|
8
|
+
exports.tierMediaAssetUrl = tierMediaAssetUrl;
|
|
9
|
+
exports.tierMediaImageUrl = tierMediaImageUrl;
|
|
10
|
+
exports.tierDisplayMetadata = tierDisplayMetadata;
|
|
11
|
+
exports.buildTierCategoryPlan = buildTierCategoryPlan;
|
|
4
12
|
exports.effectiveTierPrice = effectiveTierPrice;
|
|
5
13
|
exports.get721MetadataIdTarget = get721MetadataIdTarget;
|
|
6
14
|
exports.getProject721Shop = getProject721Shop;
|
|
7
15
|
const viem_1 = require("viem");
|
|
8
16
|
const contracts_js_1 = require("../contracts.js");
|
|
9
17
|
const juicebox_js_1 = require("../generated/juicebox.js");
|
|
18
|
+
const ipfs_js_1 = require("../utils/ipfs.js");
|
|
10
19
|
const revnets_js_1 = require("./revnets.js");
|
|
11
20
|
const rulesets_js_1 = require("./rulesets.js");
|
|
21
|
+
/**
|
|
22
|
+
* App-level sentinel convention used by Juicebox 721 shops for effectively
|
|
23
|
+
* unlimited inventory.
|
|
24
|
+
*/
|
|
25
|
+
exports.TIER_UNLIMITED_SUPPLY = 999_999_999;
|
|
12
26
|
/**
|
|
13
27
|
* JB721TiersHookStore's `DISCOUNT_DENOMINATOR`: a tier's `discountPercent` is
|
|
14
28
|
* out of 200, so the shopper-facing "% off" is `discountPercent / 2`.
|
|
15
29
|
*/
|
|
16
30
|
exports.DISCOUNT_DENOMINATOR = 200n;
|
|
31
|
+
function nonEmptyString(value) {
|
|
32
|
+
return typeof value === "string" && value ? value : undefined;
|
|
33
|
+
}
|
|
34
|
+
function decodeBase64Utf8(value) {
|
|
35
|
+
const binary = atob(value);
|
|
36
|
+
return new TextDecoder().decode(Uint8Array.from(binary, (character) => character.charCodeAt(0)));
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Parse a `data:application/json` tier URI. Invalid, non-object, and non-data
|
|
40
|
+
* values return `null` so callers can fall back to an IPFS metadata fetch.
|
|
41
|
+
*/
|
|
42
|
+
function parseTierMetadataJson(uri) {
|
|
43
|
+
if (!uri.startsWith("data:application/json"))
|
|
44
|
+
return null;
|
|
45
|
+
const comma = uri.indexOf(",");
|
|
46
|
+
if (comma === -1)
|
|
47
|
+
return null;
|
|
48
|
+
try {
|
|
49
|
+
const header = uri.slice(0, comma);
|
|
50
|
+
const payload = uri.slice(comma + 1);
|
|
51
|
+
const json = JSON.parse(header.split(";").includes("base64")
|
|
52
|
+
? decodeBase64Utf8(payload)
|
|
53
|
+
: decodeURIComponent(payload));
|
|
54
|
+
return json !== null && typeof json === "object" && !Array.isArray(json)
|
|
55
|
+
? json
|
|
56
|
+
: null;
|
|
57
|
+
}
|
|
58
|
+
catch {
|
|
59
|
+
return null;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Normalize legacy and current tier metadata field names into one display
|
|
64
|
+
* shape. Only non-empty strings are returned.
|
|
65
|
+
*/
|
|
66
|
+
function pickTierMetadata(json) {
|
|
67
|
+
return {
|
|
68
|
+
name: nonEmptyString(json.productName) ?? nonEmptyString(json.name),
|
|
69
|
+
description: nonEmptyString(json.productDescription) ??
|
|
70
|
+
nonEmptyString(json.description),
|
|
71
|
+
image: nonEmptyString(json.image) ?? nonEmptyString(json.imageUri),
|
|
72
|
+
animationUrl: nonEmptyString(json.animation_url) ?? nonEmptyString(json.animationUrl),
|
|
73
|
+
mediaType: nonEmptyString(json.mediaType) ??
|
|
74
|
+
nonEmptyString(json.animationType) ??
|
|
75
|
+
nonEmptyString(json.mimeType),
|
|
76
|
+
categoryName: nonEmptyString(json.categoryName),
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
/** Whether a tier media value uses an immutable or browser-loadable URI form. */
|
|
80
|
+
function isSafeTierMediaUri(value) {
|
|
81
|
+
const uri = value.trim();
|
|
82
|
+
if (!uri || /\s/.test(uri))
|
|
83
|
+
return false;
|
|
84
|
+
const ipfsPath = (0, ipfs_js_1.ipfsAssetPath)(uri);
|
|
85
|
+
if (ipfsPath && (0, ipfs_js_1.isIpfsCid)(ipfsPath.split("/")[0]))
|
|
86
|
+
return true;
|
|
87
|
+
if ((0, ipfs_js_1.isIpfsCid)(uri.split("/")[0]))
|
|
88
|
+
return true;
|
|
89
|
+
if (/^data:(image|audio|video)\/[a-z0-9.+-]+[;,]/i.test(uri))
|
|
90
|
+
return true;
|
|
91
|
+
try {
|
|
92
|
+
const url = new URL(uri);
|
|
93
|
+
return url.protocol === "https:" || url.protocol === "http:";
|
|
94
|
+
}
|
|
95
|
+
catch {
|
|
96
|
+
return false;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
/** Build the canonical JSON object pinned for one tier. */
|
|
100
|
+
function buildTierMetadata(input) {
|
|
101
|
+
const name = input.name.trim();
|
|
102
|
+
if (!name)
|
|
103
|
+
throw new Error("Tier name is required.");
|
|
104
|
+
const optional = (value) => value?.trim() || undefined;
|
|
105
|
+
const image = optional(input.image);
|
|
106
|
+
const animationUrl = optional(input.animationUrl);
|
|
107
|
+
const mediaType = optional(input.mediaType);
|
|
108
|
+
if (image && !isSafeTierMediaUri(image)) {
|
|
109
|
+
throw new Error("Tier images must use IPFS, HTTP, HTTPS, or an image data URI.");
|
|
110
|
+
}
|
|
111
|
+
if (animationUrl && !isSafeTierMediaUri(animationUrl)) {
|
|
112
|
+
throw new Error("Tier animations must use IPFS, HTTP, HTTPS, or a media data URI.");
|
|
113
|
+
}
|
|
114
|
+
if (mediaType &&
|
|
115
|
+
!/^[a-z0-9!#$&^_.+-]+\/[a-z0-9!#$&^_.+-]+$/i.test(mediaType)) {
|
|
116
|
+
throw new Error("Tier media type must be a valid MIME type.");
|
|
117
|
+
}
|
|
118
|
+
return {
|
|
119
|
+
name,
|
|
120
|
+
description: optional(input.description),
|
|
121
|
+
image,
|
|
122
|
+
animation_url: animationUrl,
|
|
123
|
+
mediaType,
|
|
124
|
+
categoryName: optional(input.categoryName),
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Route IPFS media through a caller-selected gateway base URL. Data URIs and
|
|
129
|
+
* ordinary HTTP URLs pass through unchanged.
|
|
130
|
+
*/
|
|
131
|
+
function tierMediaAssetUrl(value, ipfsGatewayBaseUrl = "https://ipfs.io/ipfs/") {
|
|
132
|
+
if (typeof value !== "string" || !value)
|
|
133
|
+
return undefined;
|
|
134
|
+
if (value.startsWith("data:"))
|
|
135
|
+
return value;
|
|
136
|
+
const trimmed = value.trim();
|
|
137
|
+
const path = (0, ipfs_js_1.ipfsAssetPath)(trimmed) ??
|
|
138
|
+
((0, ipfs_js_1.isIpfsCid)(trimmed.split("/")[0]) ? trimmed : null);
|
|
139
|
+
if (!path)
|
|
140
|
+
return value;
|
|
141
|
+
return `${ipfsGatewayBaseUrl.replace(/\/?$/, "/")}${path}`;
|
|
142
|
+
}
|
|
143
|
+
function svgDataUriMarkup(uri) {
|
|
144
|
+
const match = /^data:image\/svg\+xml([^,]*),([\s\S]*)$/.exec(uri);
|
|
145
|
+
if (!match)
|
|
146
|
+
return null;
|
|
147
|
+
try {
|
|
148
|
+
return match[1].split(";").includes("base64")
|
|
149
|
+
? decodeBase64Utf8(match[2])
|
|
150
|
+
: decodeURIComponent(match[2]);
|
|
151
|
+
}
|
|
152
|
+
catch {
|
|
153
|
+
return null;
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Return a browser-renderable tier image URL. SVG data URIs that only wrap an
|
|
158
|
+
* external `<image href>` are unwrapped because browsers block that nested
|
|
159
|
+
* network request when the SVG itself is used as an `<img>` source.
|
|
160
|
+
*/
|
|
161
|
+
function tierMediaImageUrl(image, ipfsGatewayBaseUrl) {
|
|
162
|
+
if (typeof image !== "string" || !image)
|
|
163
|
+
return undefined;
|
|
164
|
+
const markup = svgDataUriMarkup(image);
|
|
165
|
+
if (markup) {
|
|
166
|
+
const href = /<image[^>]+href=["']([^"']+)["']/.exec(markup)?.[1];
|
|
167
|
+
if (href && !href.startsWith("data:")) {
|
|
168
|
+
return tierMediaAssetUrl(href, ipfsGatewayBaseUrl);
|
|
169
|
+
}
|
|
170
|
+
return image;
|
|
171
|
+
}
|
|
172
|
+
return tierMediaAssetUrl(image, ipfsGatewayBaseUrl);
|
|
173
|
+
}
|
|
174
|
+
/** Pick and resolve all tier metadata fields in one pass. */
|
|
175
|
+
function tierDisplayMetadata(json, ipfsGatewayBaseUrl) {
|
|
176
|
+
const metadata = pickTierMetadata(json);
|
|
177
|
+
return {
|
|
178
|
+
...metadata,
|
|
179
|
+
image: tierMediaImageUrl(metadata.image, ipfsGatewayBaseUrl),
|
|
180
|
+
animationUrl: tierMediaAssetUrl(metadata.animationUrl, ipfsGatewayBaseUrl),
|
|
181
|
+
};
|
|
182
|
+
}
|
|
183
|
+
/** Stable first-seen category ids, with blank categories assigned to 0. */
|
|
184
|
+
function buildTierCategoryPlan(tiers) {
|
|
185
|
+
const categoryIds = new Map();
|
|
186
|
+
const categoryByTierId = {};
|
|
187
|
+
const storeCategories = {};
|
|
188
|
+
for (const tier of tiers) {
|
|
189
|
+
const name = tier.categoryName?.trim() || "";
|
|
190
|
+
if (!name) {
|
|
191
|
+
categoryByTierId[tier.id] = 0;
|
|
192
|
+
continue;
|
|
193
|
+
}
|
|
194
|
+
let category = categoryIds.get(name);
|
|
195
|
+
if (category === undefined) {
|
|
196
|
+
category = categoryIds.size + 1;
|
|
197
|
+
categoryIds.set(name, category);
|
|
198
|
+
storeCategories[String(category)] = name;
|
|
199
|
+
}
|
|
200
|
+
categoryByTierId[tier.id] = category;
|
|
201
|
+
}
|
|
202
|
+
return { categoryByTierId, storeCategories };
|
|
203
|
+
}
|
|
17
204
|
/**
|
|
18
205
|
* A tier's effective (discounted) price, matching the on-chain formula in
|
|
19
206
|
* JB721TiersHookStore: `price - mulDiv(price, discountPercent, 200)` with
|
|
@@ -159,7 +346,10 @@ async function getProject721Shop(client, { chainId, projectId, isRevnet, tierLim
|
|
|
159
346
|
hook,
|
|
160
347
|
store,
|
|
161
348
|
metadataIdTarget,
|
|
162
|
-
pricing: {
|
|
349
|
+
pricing: {
|
|
350
|
+
currency: Number(pricingRaw[0]),
|
|
351
|
+
decimals: Number(pricingRaw[1]),
|
|
352
|
+
},
|
|
163
353
|
tiers,
|
|
164
354
|
};
|
|
165
355
|
}
|
package/dist/cjs/v6/nft.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nft.js","sourceRoot":"","sources":["../../../src/v6/nft.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"nft.js","sourceRoot":"","sources":["../../../src/v6/nft.ts"],"names":[],"mappings":"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"}
|
|
@@ -58,6 +58,27 @@ export declare const JBPermissionIdsV6: {
|
|
|
58
58
|
* A v6 permission id.
|
|
59
59
|
*/
|
|
60
60
|
export type JBPermissionIdV6 = (typeof JBPermissionIdsV6)[keyof typeof JBPermissionIdsV6];
|
|
61
|
+
/** A symbolic v6 permission name, such as `QUEUE_RULESETS`. */
|
|
62
|
+
export type JBPermissionKeyV6 = keyof typeof JBPermissionIdsV6;
|
|
63
|
+
/** Canonical permission names and ids, sorted by id. */
|
|
64
|
+
export declare const JBPermissionCatalogV6: readonly {
|
|
65
|
+
key: JBPermissionKeyV6;
|
|
66
|
+
id: JBPermissionIdV6;
|
|
67
|
+
}[];
|
|
68
|
+
/** Return the SDK permission name for an id, or `null` for a newer/unknown id. */
|
|
69
|
+
export declare function permissionKeyV6(id: number): JBPermissionKeyV6 | null;
|
|
70
|
+
/**
|
|
71
|
+
* Decode `JBPermissions.permissionsOf`'s packed bitmap into ascending ids.
|
|
72
|
+
*
|
|
73
|
+
* By default only ids known to this SDK release are returned. Pass
|
|
74
|
+
* `includeUnknown: true` to preserve set bits from future permission-id
|
|
75
|
+
* releases as well.
|
|
76
|
+
*/
|
|
77
|
+
export declare function decodePermissionBitmap(bitmap: bigint, { includeUnknown }?: {
|
|
78
|
+
includeUnknown?: boolean;
|
|
79
|
+
}): number[];
|
|
80
|
+
/** Encode permission ids into the packed bitmap returned by `permissionsOf`. */
|
|
81
|
+
export declare function encodePermissionBitmap(permissionIds: readonly number[]): bigint;
|
|
61
82
|
/**
|
|
62
83
|
* A prepared `setPermissionsFor` transaction request.
|
|
63
84
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"permissions.d.ts","sourceRoot":"","sources":["../../../src/v6/permissions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,MAAM,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGxC;;;;;;;;GAQG;AACH,eAAO,MAAM,iBAAiB;IAC5B;;OAEG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoDK,CAAC;AAEX;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAC1B,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,OAAO,iBAAiB,CAAC,CAAC;AAE7D;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,SAAS,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,GAAG,EAAE,OAAO,gBAAgB,CAAC;IAC7B,YAAY,EAAE,mBAAmB,CAAC;IAClC,IAAI,EAAE,SAAS;QACb,OAAO;QACP;YAAE,QAAQ,EAAE,OAAO,CAAC;YAAC,SAAS,EAAE,MAAM,CAAC;YAAC,aAAa,EAAE,MAAM,EAAE,CAAA;SAAE;KAClE,CAAC;CACH;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,qBAAqB,CAAC,EACpC,OAAO,EACP,OAAO,EACP,QAAQ,EACR,SAAS,EACT,aAAa,GACd,EAAE;IACD,OAAO,EAAE,SAAS,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,EAAE,CAAC;CACzB,GAAG,yBAAyB,CAQ5B;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,cAAc,CAClC,MAAM,EAAE,YAAY,EACpB,EACE,OAAO,EACP,QAAQ,EACR,OAAO,EACP,SAAS,EACT,aAAa,EACb,WAAkB,EAClB,wBAA+B,GAChC,EAAE;IACD,OAAO,EAAE,SAAS,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,wBAAwB,CAAC,EAAE,OAAO,CAAC;CACpC,GACA,OAAO,CAAC,OAAO,CAAC,CAclB"}
|
|
1
|
+
{"version":3,"file":"permissions.d.ts","sourceRoot":"","sources":["../../../src/v6/permissions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,MAAM,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGxC;;;;;;;;GAQG;AACH,eAAO,MAAM,iBAAiB;IAC5B;;OAEG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoDK,CAAC;AAEX;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAC1B,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,OAAO,iBAAiB,CAAC,CAAC;AAE7D,+DAA+D;AAC/D,MAAM,MAAM,iBAAiB,GAAG,MAAM,OAAO,iBAAiB,CAAC;AAE/D,wDAAwD;AACxD,eAAO,MAAM,qBAAqB,EAAE,SAAS;IAC3C,GAAG,EAAE,iBAAiB,CAAC;IACvB,EAAE,EAAE,gBAAgB,CAAC;CACtB,EAI6B,CAAC;AAM/B,kFAAkF;AAClF,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI,CAEpE;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,MAAM,EACd,EAAE,cAAsB,EAAE,GAAE;IAAE,cAAc,CAAC,EAAE,OAAO,CAAA;CAAO,GAC5D,MAAM,EAAE,CAUV;AAED,gFAAgF;AAChF,wBAAgB,sBAAsB,CACpC,aAAa,EAAE,SAAS,MAAM,EAAE,GAC/B,MAAM,CASR;AAED;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,SAAS,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,GAAG,EAAE,OAAO,gBAAgB,CAAC;IAC7B,YAAY,EAAE,mBAAmB,CAAC;IAClC,IAAI,EAAE,SAAS;QACb,OAAO;QACP;YAAE,QAAQ,EAAE,OAAO,CAAC;YAAC,SAAS,EAAE,MAAM,CAAC;YAAC,aAAa,EAAE,MAAM,EAAE,CAAA;SAAE;KAClE,CAAC;CACH;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,qBAAqB,CAAC,EACpC,OAAO,EACP,OAAO,EACP,QAAQ,EACR,SAAS,EACT,aAAa,GACd,EAAE;IACD,OAAO,EAAE,SAAS,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,EAAE,CAAC;CACzB,GAAG,yBAAyB,CAQ5B;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,cAAc,CAClC,MAAM,EAAE,YAAY,EACpB,EACE,OAAO,EACP,QAAQ,EACR,OAAO,EACP,SAAS,EACT,aAAa,EACb,WAAkB,EAClB,wBAA+B,GAChC,EAAE;IACD,OAAO,EAAE,SAAS,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,wBAAwB,CAAC,EAAE,OAAO,CAAC;CACpC,GACA,OAAO,CAAC,OAAO,CAAC,CAclB"}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.JBPermissionIdsV6 = void 0;
|
|
3
|
+
exports.JBPermissionCatalogV6 = exports.JBPermissionIdsV6 = void 0;
|
|
4
|
+
exports.permissionKeyV6 = permissionKeyV6;
|
|
5
|
+
exports.decodePermissionBitmap = decodePermissionBitmap;
|
|
6
|
+
exports.encodePermissionBitmap = encodePermissionBitmap;
|
|
4
7
|
exports.buildSetPermissionsTx = buildSetPermissionsTx;
|
|
5
8
|
exports.hasPermissions = hasPermissions;
|
|
6
9
|
const juicebox_js_1 = require("../generated/juicebox.js");
|
|
@@ -64,6 +67,46 @@ exports.JBPermissionIdsV6 = {
|
|
|
64
67
|
REALLOCATE_LOAN: 38,
|
|
65
68
|
REPAY_LOAN: 39,
|
|
66
69
|
};
|
|
70
|
+
/** Canonical permission names and ids, sorted by id. */
|
|
71
|
+
exports.JBPermissionCatalogV6 = Object.entries(exports.JBPermissionIdsV6)
|
|
72
|
+
.map(([key, id]) => ({ key, id }))
|
|
73
|
+
.sort((a, b) => a.id - b.id);
|
|
74
|
+
const JB_PERMISSION_KEY_BY_ID = new Map(exports.JBPermissionCatalogV6.map(({ key, id }) => [id, key]));
|
|
75
|
+
/** Return the SDK permission name for an id, or `null` for a newer/unknown id. */
|
|
76
|
+
function permissionKeyV6(id) {
|
|
77
|
+
return JB_PERMISSION_KEY_BY_ID.get(id) ?? null;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Decode `JBPermissions.permissionsOf`'s packed bitmap into ascending ids.
|
|
81
|
+
*
|
|
82
|
+
* By default only ids known to this SDK release are returned. Pass
|
|
83
|
+
* `includeUnknown: true` to preserve set bits from future permission-id
|
|
84
|
+
* releases as well.
|
|
85
|
+
*/
|
|
86
|
+
function decodePermissionBitmap(bitmap, { includeUnknown = false } = {}) {
|
|
87
|
+
if (bitmap < 0n)
|
|
88
|
+
throw new Error("A permission bitmap cannot be negative.");
|
|
89
|
+
const ids = [];
|
|
90
|
+
const maxId = includeUnknown
|
|
91
|
+
? 255
|
|
92
|
+
: (exports.JBPermissionCatalogV6[exports.JBPermissionCatalogV6.length - 1]?.id ?? 0);
|
|
93
|
+
for (let id = 1; id <= maxId; id++) {
|
|
94
|
+
if (((bitmap >> BigInt(id)) & 1n) === 1n)
|
|
95
|
+
ids.push(id);
|
|
96
|
+
}
|
|
97
|
+
return ids;
|
|
98
|
+
}
|
|
99
|
+
/** Encode permission ids into the packed bitmap returned by `permissionsOf`. */
|
|
100
|
+
function encodePermissionBitmap(permissionIds) {
|
|
101
|
+
let bitmap = 0n;
|
|
102
|
+
for (const id of permissionIds) {
|
|
103
|
+
if (!Number.isInteger(id) || id < 1 || id > 255) {
|
|
104
|
+
throw new Error(`Invalid permission id: ${id}.`);
|
|
105
|
+
}
|
|
106
|
+
bitmap |= 1n << BigInt(id);
|
|
107
|
+
}
|
|
108
|
+
return bitmap;
|
|
109
|
+
}
|
|
67
110
|
/**
|
|
68
111
|
* Build a `JBPermissions.setPermissionsFor(account, { operator, projectId,
|
|
69
112
|
* permissionIds })` transaction request.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"permissions.js","sourceRoot":"","sources":["../../../src/v6/permissions.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"permissions.js","sourceRoot":"","sources":["../../../src/v6/permissions.ts"],"names":[],"mappings":";;;AA+FA,0CAEC;AASD,wDAaC;AAGD,wDAWC;AAiCD,sDAoBC;AAmBD,wCAiCC;AA7OD,0DAA4D;AAE5D,yCAAuC;AAEvC;;;;;;;;GAQG;AACU,QAAA,iBAAiB,GAAG;IAC/B;;OAEG;IACH,IAAI,EAAE,CAAC;IAEP,eAAe;IACf,cAAc,EAAE,CAAC;IACjB,eAAe,EAAE,CAAC;IAClB,eAAe,EAAE,CAAC;IAClB,YAAY,EAAE,CAAC;IACf,gBAAgB,EAAE,CAAC;IACnB,eAAe,EAAE,CAAC;IAClB,YAAY,EAAE,CAAC;IACf,SAAS,EAAE,CAAC;IACZ,WAAW,EAAE,EAAE;IACf,WAAW,EAAE,EAAE;IACf,YAAY,EAAE,EAAE;IAChB,gBAAgB,EAAE,EAAE;IACpB,cAAc,EAAE,EAAE;IAClB,aAAa,EAAE,EAAE;IACjB,aAAa,EAAE,EAAE;IACjB,oBAAoB,EAAE,EAAE;IACxB,aAAa,EAAE,EAAE;IACjB,gBAAgB,EAAE,EAAE;IACpB,cAAc,EAAE,EAAE;IAClB,uBAAuB,EAAE,EAAE;IAC3B,kBAAkB,EAAE,EAAE;IACtB,cAAc,EAAE,EAAE;IAElB,mBAAmB;IACnB,gBAAgB,EAAE,EAAE;IACpB,gBAAgB,EAAE,EAAE;IACpB,QAAQ,EAAE,EAAE;IACZ,wBAAwB,EAAE,EAAE;IAE5B,uBAAuB;IACvB,gBAAgB,EAAE,EAAE;IACpB,gBAAgB,EAAE,EAAE;IACpB,gBAAgB,EAAE,EAAE;IAEpB,0BAA0B;IAC1B,mBAAmB,EAAE,EAAE;IAEvB,kBAAkB;IAClB,gBAAgB,EAAE,EAAE;IACpB,cAAc,EAAE,EAAE;IAClB,eAAe,EAAE,EAAE;IACnB,aAAa,EAAE,EAAE;IACjB,sBAAsB,EAAE,EAAE;IAE1B,iBAAiB;IACjB,SAAS,EAAE,EAAE;IACb,eAAe,EAAE,EAAE;IACnB,UAAU,EAAE,EAAE;CACN,CAAC;AAWX,wDAAwD;AAC3C,QAAA,qBAAqB,GAIhC,MAAM,CAAC,OAAO,CAAC,yBAAiB,CACjC;KACE,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC;KACjC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;AAE/B,MAAM,uBAAuB,GAAG,IAAI,GAAG,CACrC,6BAAqB,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CACtD,CAAC;AAEF,kFAAkF;AAClF,SAAgB,eAAe,CAAC,EAAU;IACxC,OAAO,uBAAuB,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC;AACjD,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,sBAAsB,CACpC,MAAc,EACd,EAAE,cAAc,GAAG,KAAK,KAAmC,EAAE;IAE7D,IAAI,MAAM,GAAG,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;IAC5E,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,MAAM,KAAK,GAAG,cAAc;QAC1B,CAAC,CAAC,GAAG;QACL,CAAC,CAAC,CAAC,6BAAqB,CAAC,6BAAqB,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;IACvE,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,IAAI,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC;QACnC,IAAI,CAAC,CAAC,MAAM,IAAI,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE;YAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACzD,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,gFAAgF;AAChF,SAAgB,sBAAsB,CACpC,aAAgC;IAEhC,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,KAAK,MAAM,EAAE,IAAI,aAAa,EAAE,CAAC;QAC/B,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,GAAG,EAAE,CAAC;YAChD,MAAM,IAAI,KAAK,CAAC,0BAA0B,EAAE,GAAG,CAAC,CAAC;QACnD,CAAC;QACD,MAAM,IAAI,EAAE,IAAI,MAAM,CAAC,EAAE,CAAC,CAAC;IAC7B,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAgBD;;;;;;;;;;;;;;;;GAgBG;AACH,SAAgB,qBAAqB,CAAC,EACpC,OAAO,EACP,OAAO,EACP,QAAQ,EACR,SAAS,EACT,aAAa,GAOd;IACC,OAAO;QACL,OAAO;QACP,OAAO,EAAE,IAAA,oBAAS,EAAC,eAAe,EAAE,OAAO,CAAC;QAC5C,GAAG,EAAE,8BAAgB;QACrB,YAAY,EAAE,mBAAmB;QACjC,IAAI,EAAE,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC;KACxD,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACI,KAAK,UAAU,cAAc,CAClC,MAAoB,EACpB,EACE,OAAO,EACP,QAAQ,EACR,OAAO,EACP,SAAS,EACT,aAAa,EACb,WAAW,GAAG,IAAI,EAClB,wBAAwB,GAAG,IAAI,GAShC;IAED,OAAO,MAAM,CAAC,YAAY,CAAC;QACzB,OAAO,EAAE,IAAA,oBAAS,EAAC,eAAe,EAAE,OAAO,CAAC;QAC5C,GAAG,EAAE,8BAAgB;QACrB,YAAY,EAAE,gBAAgB;QAC9B,IAAI,EAAE;YACJ,QAAQ;YACR,OAAO;YACP,SAAS;YACT,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC;YACzB,WAAW;YACX,wBAAwB;SACzB;KACF,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
import { type Address, type Hex } from "viem";
|
|
2
|
+
import type { JBChainId } from "../types.js";
|
|
3
|
+
/**
|
|
4
|
+
* Canonical JBProjectPayerDeployer address. The v6 deployment uses the same
|
|
5
|
+
* CREATE2 address on every chain supported by the SDK.
|
|
6
|
+
*/
|
|
7
|
+
export declare const JB_PROJECT_PAYER_DEPLOYER: Address;
|
|
8
|
+
/** JBProjectPayerDeployer surface needed by web clients. */
|
|
9
|
+
export declare const jbProjectPayerDeployerAbi: readonly [{
|
|
10
|
+
readonly type: "function";
|
|
11
|
+
readonly name: "deployProjectPayer";
|
|
12
|
+
readonly stateMutability: "nonpayable";
|
|
13
|
+
readonly inputs: readonly [{
|
|
14
|
+
readonly name: "defaultProjectId";
|
|
15
|
+
readonly type: "uint256";
|
|
16
|
+
}, {
|
|
17
|
+
readonly name: "defaultBeneficiary";
|
|
18
|
+
readonly type: "address";
|
|
19
|
+
}, {
|
|
20
|
+
readonly name: "defaultMemo";
|
|
21
|
+
readonly type: "string";
|
|
22
|
+
}, {
|
|
23
|
+
readonly name: "defaultMetadata";
|
|
24
|
+
readonly type: "bytes";
|
|
25
|
+
}, {
|
|
26
|
+
readonly name: "defaultAddToBalance";
|
|
27
|
+
readonly type: "bool";
|
|
28
|
+
}, {
|
|
29
|
+
readonly name: "owner";
|
|
30
|
+
readonly type: "address";
|
|
31
|
+
}];
|
|
32
|
+
readonly outputs: readonly [{
|
|
33
|
+
readonly name: "projectPayer";
|
|
34
|
+
readonly type: "address";
|
|
35
|
+
}];
|
|
36
|
+
}, {
|
|
37
|
+
readonly type: "event";
|
|
38
|
+
readonly name: "DeployProjectPayer";
|
|
39
|
+
readonly anonymous: false;
|
|
40
|
+
readonly inputs: readonly [{
|
|
41
|
+
readonly name: "projectPayer";
|
|
42
|
+
readonly type: "address";
|
|
43
|
+
readonly indexed: true;
|
|
44
|
+
}, {
|
|
45
|
+
readonly name: "defaultProjectId";
|
|
46
|
+
readonly type: "uint256";
|
|
47
|
+
readonly indexed: false;
|
|
48
|
+
}, {
|
|
49
|
+
readonly name: "defaultBeneficiary";
|
|
50
|
+
readonly type: "address";
|
|
51
|
+
readonly indexed: false;
|
|
52
|
+
}, {
|
|
53
|
+
readonly name: "defaultMemo";
|
|
54
|
+
readonly type: "string";
|
|
55
|
+
readonly indexed: false;
|
|
56
|
+
}, {
|
|
57
|
+
readonly name: "defaultMetadata";
|
|
58
|
+
readonly type: "bytes";
|
|
59
|
+
readonly indexed: false;
|
|
60
|
+
}, {
|
|
61
|
+
readonly name: "defaultAddToBalance";
|
|
62
|
+
readonly type: "bool";
|
|
63
|
+
readonly indexed: false;
|
|
64
|
+
}, {
|
|
65
|
+
readonly name: "directory";
|
|
66
|
+
readonly type: "address";
|
|
67
|
+
readonly indexed: false;
|
|
68
|
+
}, {
|
|
69
|
+
readonly name: "owner";
|
|
70
|
+
readonly type: "address";
|
|
71
|
+
readonly indexed: false;
|
|
72
|
+
}, {
|
|
73
|
+
readonly name: "caller";
|
|
74
|
+
readonly type: "address";
|
|
75
|
+
readonly indexed: false;
|
|
76
|
+
}];
|
|
77
|
+
}];
|
|
78
|
+
/** Validate and normalize metadata bytes forwarded by a project payer. */
|
|
79
|
+
export declare function normalizeProjectPayerMetadata(value?: string): Hex;
|
|
80
|
+
/** Build a JBProjectPayerDeployer.deployProjectPayer transaction request. */
|
|
81
|
+
export declare function buildDeployProjectPayerTx(args: {
|
|
82
|
+
chainId: JBChainId;
|
|
83
|
+
projectId: bigint;
|
|
84
|
+
beneficiary: Address;
|
|
85
|
+
memo?: string;
|
|
86
|
+
metadata?: string;
|
|
87
|
+
addToBalance?: boolean;
|
|
88
|
+
owner: Address;
|
|
89
|
+
}): {
|
|
90
|
+
chainId: 1 | 10 | 11155111 | 11155420 | 421614 | 84532 | 42161 | 8453;
|
|
91
|
+
address: `0x${string}`;
|
|
92
|
+
abi: readonly [{
|
|
93
|
+
readonly type: "function";
|
|
94
|
+
readonly name: "deployProjectPayer";
|
|
95
|
+
readonly stateMutability: "nonpayable";
|
|
96
|
+
readonly inputs: readonly [{
|
|
97
|
+
readonly name: "defaultProjectId";
|
|
98
|
+
readonly type: "uint256";
|
|
99
|
+
}, {
|
|
100
|
+
readonly name: "defaultBeneficiary";
|
|
101
|
+
readonly type: "address";
|
|
102
|
+
}, {
|
|
103
|
+
readonly name: "defaultMemo";
|
|
104
|
+
readonly type: "string";
|
|
105
|
+
}, {
|
|
106
|
+
readonly name: "defaultMetadata";
|
|
107
|
+
readonly type: "bytes";
|
|
108
|
+
}, {
|
|
109
|
+
readonly name: "defaultAddToBalance";
|
|
110
|
+
readonly type: "bool";
|
|
111
|
+
}, {
|
|
112
|
+
readonly name: "owner";
|
|
113
|
+
readonly type: "address";
|
|
114
|
+
}];
|
|
115
|
+
readonly outputs: readonly [{
|
|
116
|
+
readonly name: "projectPayer";
|
|
117
|
+
readonly type: "address";
|
|
118
|
+
}];
|
|
119
|
+
}, {
|
|
120
|
+
readonly type: "event";
|
|
121
|
+
readonly name: "DeployProjectPayer";
|
|
122
|
+
readonly anonymous: false;
|
|
123
|
+
readonly inputs: readonly [{
|
|
124
|
+
readonly name: "projectPayer";
|
|
125
|
+
readonly type: "address";
|
|
126
|
+
readonly indexed: true;
|
|
127
|
+
}, {
|
|
128
|
+
readonly name: "defaultProjectId";
|
|
129
|
+
readonly type: "uint256";
|
|
130
|
+
readonly indexed: false;
|
|
131
|
+
}, {
|
|
132
|
+
readonly name: "defaultBeneficiary";
|
|
133
|
+
readonly type: "address";
|
|
134
|
+
readonly indexed: false;
|
|
135
|
+
}, {
|
|
136
|
+
readonly name: "defaultMemo";
|
|
137
|
+
readonly type: "string";
|
|
138
|
+
readonly indexed: false;
|
|
139
|
+
}, {
|
|
140
|
+
readonly name: "defaultMetadata";
|
|
141
|
+
readonly type: "bytes";
|
|
142
|
+
readonly indexed: false;
|
|
143
|
+
}, {
|
|
144
|
+
readonly name: "defaultAddToBalance";
|
|
145
|
+
readonly type: "bool";
|
|
146
|
+
readonly indexed: false;
|
|
147
|
+
}, {
|
|
148
|
+
readonly name: "directory";
|
|
149
|
+
readonly type: "address";
|
|
150
|
+
readonly indexed: false;
|
|
151
|
+
}, {
|
|
152
|
+
readonly name: "owner";
|
|
153
|
+
readonly type: "address";
|
|
154
|
+
readonly indexed: false;
|
|
155
|
+
}, {
|
|
156
|
+
readonly name: "caller";
|
|
157
|
+
readonly type: "address";
|
|
158
|
+
readonly indexed: false;
|
|
159
|
+
}];
|
|
160
|
+
}];
|
|
161
|
+
functionName: "deployProjectPayer";
|
|
162
|
+
args: readonly [bigint, `0x${string}`, string, `0x${string}`, boolean, `0x${string}`];
|
|
163
|
+
};
|
|
164
|
+
/** Minimal receipt-log shape needed to decode a project-payer deployment. */
|
|
165
|
+
export interface ProjectPayerDeployLog {
|
|
166
|
+
address: Address;
|
|
167
|
+
data: Hex;
|
|
168
|
+
topics: readonly Hex[];
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Decode the payer address from a canonical JBProjectPayerDeployer event.
|
|
172
|
+
* Emitter verification prevents an unrelated same-signature log from being
|
|
173
|
+
* mistaken for the newly deployed payer.
|
|
174
|
+
*/
|
|
175
|
+
export declare function decodeDeployedProjectPayer(log: ProjectPayerDeployLog): Address | null;
|
|
176
|
+
/** Return the first canonical project-payer deployment found in a receipt. */
|
|
177
|
+
export declare function projectPayerFromDeployLogs(logs: readonly ProjectPayerDeployLog[]): Address | null;
|
|
178
|
+
//# sourceMappingURL=projectPayers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"projectPayers.d.ts","sourceRoot":"","sources":["../../../src/v6/projectPayers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkC,KAAK,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,MAAM,CAAC;AAC9E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C;;;GAGG;AACH,eAAO,MAAM,yBAAyB,EACY,OAAO,CAAC;AAE1D,4DAA4D;AAC5D,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+B5B,CAAC;AAEX,0EAA0E;AAC1E,wBAAgB,6BAA6B,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,GAAG,CAMjE;AAED,6EAA6E;AAC7E,wBAAgB,yBAAyB,CAAC,IAAI,EAAE;IAC9C,OAAO,EAAE,SAAS,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,OAAO,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,KAAK,EAAE,OAAO,CAAC;CAChB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmBA;AAED,6EAA6E;AAC7E,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,GAAG,CAAC;IACV,MAAM,EAAE,SAAS,GAAG,EAAE,CAAC;CACxB;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CACxC,GAAG,EAAE,qBAAqB,GACzB,OAAO,GAAG,IAAI,CAiBhB;AAED,8EAA8E;AAC9E,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,SAAS,qBAAqB,EAAE,GACrC,OAAO,GAAG,IAAI,CAMhB"}
|