@bananapus/nana-sdk-core 1.0.0 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/v6/cashOut.d.ts +83 -0
- package/dist/cjs/v6/cashOut.d.ts.map +1 -0
- package/dist/cjs/v6/cashOut.js +68 -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 +100 -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 +44 -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 +24 -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 +51 -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 +38 -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 +16 -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 +176 -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 +135 -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 +170 -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 +127 -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 +116 -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 +143 -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 +106 -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 +128 -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 +120 -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 +115 -0
- package/dist/cjs/v6/permissions.test.js.map +1 -0
- package/dist/cjs/v6/revnets.d.ts +4457 -0
- package/dist/cjs/v6/revnets.d.ts.map +1 -0
- package/dist/cjs/v6/revnets.js +161 -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 +231 -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 +70 -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 +104 -0
- package/dist/cjs/v6/rulesets.test.js.map +1 -0
- package/dist/cjs/v6/splits.d.ts +2670 -0
- package/dist/cjs/v6/splits.d.ts.map +1 -0
- package/dist/cjs/v6/splits.js +105 -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 +131 -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 +156 -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 +132 -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 +50 -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 +57 -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 +161 -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 +139 -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 +12 -0
- package/dist/cjs/v6/types.js.map +1 -0
- package/dist/esm/v6/cashOut.d.ts +83 -0
- package/dist/esm/v6/cashOut.d.ts.map +1 -0
- package/dist/esm/v6/cashOut.js +68 -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 +4457 -0
- package/dist/esm/v6/revnets.d.ts.map +1 -0
- package/dist/esm/v6/revnets.js +161 -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 +2670 -0
- package/dist/esm/v6/splits.d.ts.map +1 -0
- package/dist/esm/v6/splits.js +105 -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 +131 -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 +7 -1
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
import { Address, Hex, PublicClient } from "viem";
|
|
2
|
+
import { jbControllerAbi } from "../generated/juicebox.js";
|
|
3
|
+
import { JBChainId } from "../types.js";
|
|
4
|
+
/**
|
|
5
|
+
* A prepared `deployERC20For` transaction request.
|
|
6
|
+
*/
|
|
7
|
+
export interface V6DeployErc20TxRequest {
|
|
8
|
+
chainId: JBChainId;
|
|
9
|
+
address: Address;
|
|
10
|
+
abi: typeof jbControllerAbi;
|
|
11
|
+
functionName: "deployERC20For";
|
|
12
|
+
args: readonly [bigint, string, string, Hex];
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Build a `JBController.deployERC20For(projectId, name, symbol, salt)` transaction
|
|
16
|
+
* request, deploying a claimable ERC-20 for a project's tokens.
|
|
17
|
+
*
|
|
18
|
+
* Requires the project owner or the DEPLOY_ERC20 permission.
|
|
19
|
+
*
|
|
20
|
+
* @param args.chainId The chain to deploy on.
|
|
21
|
+
* @param args.projectId The project's id.
|
|
22
|
+
* @param args.name The ERC-20's name.
|
|
23
|
+
* @param args.symbol The ERC-20's symbol.
|
|
24
|
+
* @param args.salt A CREATE2 salt. Use the same non-zero salt (from the same deployer)
|
|
25
|
+
* across chains for a same-address omnichain ERC-20. Defaults to zero (non-deterministic
|
|
26
|
+
* address).
|
|
27
|
+
* @returns The transaction request.
|
|
28
|
+
*/
|
|
29
|
+
export declare function buildDeployErc20Tx({ chainId, projectId, name, symbol, salt, }: {
|
|
30
|
+
chainId: JBChainId;
|
|
31
|
+
projectId: bigint;
|
|
32
|
+
name: string;
|
|
33
|
+
symbol: string;
|
|
34
|
+
salt?: Hex;
|
|
35
|
+
}): V6DeployErc20TxRequest;
|
|
36
|
+
/**
|
|
37
|
+
* A prepared `claimTokensFor` transaction request.
|
|
38
|
+
*/
|
|
39
|
+
export interface V6ClaimTokensTxRequest {
|
|
40
|
+
chainId: JBChainId;
|
|
41
|
+
address: Address;
|
|
42
|
+
abi: typeof jbControllerAbi;
|
|
43
|
+
functionName: "claimTokensFor";
|
|
44
|
+
args: readonly [Address, bigint, bigint, Address];
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Build a `JBController.claimTokensFor(holder, projectId, tokenCount, beneficiary)`
|
|
48
|
+
* transaction request, claiming a holder's internal token credits as ERC-20 tokens.
|
|
49
|
+
*
|
|
50
|
+
* The project must have an ERC-20 deployed (see {@link buildDeployErc20Tx}). Claiming
|
|
51
|
+
* for another holder requires the CLAIM_TOKENS permission.
|
|
52
|
+
*
|
|
53
|
+
* @param args.chainId The chain to claim on.
|
|
54
|
+
* @param args.holder The address whose credits are being claimed.
|
|
55
|
+
* @param args.projectId The project's id.
|
|
56
|
+
* @param args.tokenCount The number of credits to claim, as a fixed point number with
|
|
57
|
+
* 18 decimals.
|
|
58
|
+
* @param args.beneficiary The address that receives the ERC-20 tokens.
|
|
59
|
+
* @returns The transaction request.
|
|
60
|
+
*/
|
|
61
|
+
export declare function buildClaimTokensTx({ chainId, holder, projectId, tokenCount, beneficiary, }: {
|
|
62
|
+
chainId: JBChainId;
|
|
63
|
+
holder: Address;
|
|
64
|
+
projectId: bigint;
|
|
65
|
+
tokenCount: bigint;
|
|
66
|
+
beneficiary: Address;
|
|
67
|
+
}): V6ClaimTokensTxRequest;
|
|
68
|
+
/**
|
|
69
|
+
* A prepared `transferCreditsFrom` transaction request.
|
|
70
|
+
*/
|
|
71
|
+
export interface V6TransferCreditsTxRequest {
|
|
72
|
+
chainId: JBChainId;
|
|
73
|
+
address: Address;
|
|
74
|
+
abi: typeof jbControllerAbi;
|
|
75
|
+
functionName: "transferCreditsFrom";
|
|
76
|
+
args: readonly [Address, bigint, Address, bigint];
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Build a `JBController.transferCreditsFrom(holder, projectId, recipient,
|
|
80
|
+
* creditCount)` transaction request, transferring internal token credits (unclaimed
|
|
81
|
+
* tokens) to another address.
|
|
82
|
+
*
|
|
83
|
+
* Transferring another holder's credits requires the TRANSFER_CREDITS permission.
|
|
84
|
+
*
|
|
85
|
+
* @param args.chainId The chain to transfer on.
|
|
86
|
+
* @param args.holder The address whose credits are being transferred.
|
|
87
|
+
* @param args.projectId The project's id.
|
|
88
|
+
* @param args.recipient The address that receives the credits.
|
|
89
|
+
* @param args.creditCount The number of credits to transfer, as a fixed point number
|
|
90
|
+
* with 18 decimals.
|
|
91
|
+
* @returns The transaction request.
|
|
92
|
+
*/
|
|
93
|
+
export declare function buildTransferCreditsTx({ chainId, holder, projectId, recipient, creditCount, }: {
|
|
94
|
+
chainId: JBChainId;
|
|
95
|
+
holder: Address;
|
|
96
|
+
projectId: bigint;
|
|
97
|
+
recipient: Address;
|
|
98
|
+
creditCount: bigint;
|
|
99
|
+
}): V6TransferCreditsTxRequest;
|
|
100
|
+
/**
|
|
101
|
+
* A prepared `mintTokensOf` transaction request.
|
|
102
|
+
*/
|
|
103
|
+
export interface V6MintTokensTxRequest {
|
|
104
|
+
chainId: JBChainId;
|
|
105
|
+
address: Address;
|
|
106
|
+
abi: typeof jbControllerAbi;
|
|
107
|
+
functionName: "mintTokensOf";
|
|
108
|
+
args: readonly [bigint, bigint, Address, string, boolean];
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Build a `JBController.mintTokensOf(projectId, tokenCount, beneficiary, memo,
|
|
112
|
+
* useReservedPercent)` transaction request, minting new project tokens.
|
|
113
|
+
*
|
|
114
|
+
* Only works when the project's ruleset allows owner minting; requires the project
|
|
115
|
+
* owner or the MINT_TOKENS permission.
|
|
116
|
+
*
|
|
117
|
+
* @param args.chainId The chain to mint on.
|
|
118
|
+
* @param args.projectId The project's id.
|
|
119
|
+
* @param args.tokenCount The number of tokens to mint, as a fixed point number with 18
|
|
120
|
+
* decimals.
|
|
121
|
+
* @param args.beneficiary The address that receives the minted tokens.
|
|
122
|
+
* @param args.memo A memo included in the MintTokens event. Defaults to "".
|
|
123
|
+
* @param args.useReservedPercent Whether the ruleset's reserved percent should be
|
|
124
|
+
* withheld from the mint for the project's reserved splits. Defaults to true.
|
|
125
|
+
* @returns The transaction request.
|
|
126
|
+
*/
|
|
127
|
+
export declare function buildMintTokensTx({ chainId, projectId, tokenCount, beneficiary, memo, useReservedPercent, }: {
|
|
128
|
+
chainId: JBChainId;
|
|
129
|
+
projectId: bigint;
|
|
130
|
+
tokenCount: bigint;
|
|
131
|
+
beneficiary: Address;
|
|
132
|
+
memo?: string;
|
|
133
|
+
useReservedPercent?: boolean;
|
|
134
|
+
}): V6MintTokensTxRequest;
|
|
135
|
+
/**
|
|
136
|
+
* A prepared `burnTokensOf` transaction request.
|
|
137
|
+
*/
|
|
138
|
+
export interface V6BurnTokensTxRequest {
|
|
139
|
+
chainId: JBChainId;
|
|
140
|
+
address: Address;
|
|
141
|
+
abi: typeof jbControllerAbi;
|
|
142
|
+
functionName: "burnTokensOf";
|
|
143
|
+
args: readonly [Address, bigint, bigint, string];
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Build a `JBController.burnTokensOf(holder, projectId, tokenCount, memo)` transaction
|
|
147
|
+
* request, burning a holder's project tokens.
|
|
148
|
+
*
|
|
149
|
+
* Burning another holder's tokens requires the BURN_TOKENS permission.
|
|
150
|
+
*
|
|
151
|
+
* @param args.chainId The chain to burn on.
|
|
152
|
+
* @param args.holder The address whose tokens are being burned.
|
|
153
|
+
* @param args.projectId The project's id.
|
|
154
|
+
* @param args.tokenCount The number of tokens to burn, as a fixed point number with 18
|
|
155
|
+
* decimals.
|
|
156
|
+
* @param args.memo A memo included in the BurnTokens event. Defaults to "".
|
|
157
|
+
* @returns The transaction request.
|
|
158
|
+
*/
|
|
159
|
+
export declare function buildBurnTokensTx({ chainId, holder, projectId, tokenCount, memo, }: {
|
|
160
|
+
chainId: JBChainId;
|
|
161
|
+
holder: Address;
|
|
162
|
+
projectId: bigint;
|
|
163
|
+
tokenCount: bigint;
|
|
164
|
+
memo?: string;
|
|
165
|
+
}): V6BurnTokensTxRequest;
|
|
166
|
+
/**
|
|
167
|
+
* Read a project's ERC-20 token address via `JBTokens.tokenOf(projectId)`.
|
|
168
|
+
*
|
|
169
|
+
* @param client A viem public client on the given chain.
|
|
170
|
+
* @param args.chainId The chain to read from.
|
|
171
|
+
* @param args.projectId The project's id.
|
|
172
|
+
* @returns The token address, or null when the project has no ERC-20 deployed (token
|
|
173
|
+
* balances are held as internal credits).
|
|
174
|
+
*/
|
|
175
|
+
export declare function getTokenAddress(client: PublicClient, { chainId, projectId, }: {
|
|
176
|
+
chainId: JBChainId;
|
|
177
|
+
projectId: bigint;
|
|
178
|
+
}): Promise<Address | null>;
|
|
179
|
+
/**
|
|
180
|
+
* Read a holder's internal token credit balance (unclaimed tokens) via
|
|
181
|
+
* `JBTokens.creditBalanceOf(holder, projectId)`.
|
|
182
|
+
*
|
|
183
|
+
* @param client A viem public client on the given chain.
|
|
184
|
+
* @param args.chainId The chain to read from.
|
|
185
|
+
* @param args.projectId The project's id.
|
|
186
|
+
* @param args.holder The holder to read the credit balance of.
|
|
187
|
+
* @returns The holder's credit balance, as a fixed point number with 18 decimals.
|
|
188
|
+
*/
|
|
189
|
+
export declare function getCreditBalance(client: PublicClient, { chainId, projectId, holder, }: {
|
|
190
|
+
chainId: JBChainId;
|
|
191
|
+
projectId: bigint;
|
|
192
|
+
holder: Address;
|
|
193
|
+
}): Promise<bigint>;
|
|
194
|
+
//# sourceMappingURL=tokens.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../../../src/v6/tokens.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
import { zeroAddress, zeroHash } from "viem";
|
|
2
|
+
import { jbControllerAbi, jbTokensAbi } from "../generated/juicebox.js";
|
|
3
|
+
import { v6Address } from "./types.js";
|
|
4
|
+
/**
|
|
5
|
+
* Build a `JBController.deployERC20For(projectId, name, symbol, salt)` transaction
|
|
6
|
+
* request, deploying a claimable ERC-20 for a project's tokens.
|
|
7
|
+
*
|
|
8
|
+
* Requires the project owner or the DEPLOY_ERC20 permission.
|
|
9
|
+
*
|
|
10
|
+
* @param args.chainId The chain to deploy on.
|
|
11
|
+
* @param args.projectId The project's id.
|
|
12
|
+
* @param args.name The ERC-20's name.
|
|
13
|
+
* @param args.symbol The ERC-20's symbol.
|
|
14
|
+
* @param args.salt A CREATE2 salt. Use the same non-zero salt (from the same deployer)
|
|
15
|
+
* across chains for a same-address omnichain ERC-20. Defaults to zero (non-deterministic
|
|
16
|
+
* address).
|
|
17
|
+
* @returns The transaction request.
|
|
18
|
+
*/
|
|
19
|
+
export function buildDeployErc20Tx({ chainId, projectId, name, symbol, salt = zeroHash, }) {
|
|
20
|
+
return {
|
|
21
|
+
chainId,
|
|
22
|
+
address: v6Address("JBController", chainId),
|
|
23
|
+
abi: jbControllerAbi,
|
|
24
|
+
functionName: "deployERC20For",
|
|
25
|
+
args: [projectId, name, symbol, salt],
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Build a `JBController.claimTokensFor(holder, projectId, tokenCount, beneficiary)`
|
|
30
|
+
* transaction request, claiming a holder's internal token credits as ERC-20 tokens.
|
|
31
|
+
*
|
|
32
|
+
* The project must have an ERC-20 deployed (see {@link buildDeployErc20Tx}). Claiming
|
|
33
|
+
* for another holder requires the CLAIM_TOKENS permission.
|
|
34
|
+
*
|
|
35
|
+
* @param args.chainId The chain to claim on.
|
|
36
|
+
* @param args.holder The address whose credits are being claimed.
|
|
37
|
+
* @param args.projectId The project's id.
|
|
38
|
+
* @param args.tokenCount The number of credits to claim, as a fixed point number with
|
|
39
|
+
* 18 decimals.
|
|
40
|
+
* @param args.beneficiary The address that receives the ERC-20 tokens.
|
|
41
|
+
* @returns The transaction request.
|
|
42
|
+
*/
|
|
43
|
+
export function buildClaimTokensTx({ chainId, holder, projectId, tokenCount, beneficiary, }) {
|
|
44
|
+
return {
|
|
45
|
+
chainId,
|
|
46
|
+
address: v6Address("JBController", chainId),
|
|
47
|
+
abi: jbControllerAbi,
|
|
48
|
+
functionName: "claimTokensFor",
|
|
49
|
+
args: [holder, projectId, tokenCount, beneficiary],
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Build a `JBController.transferCreditsFrom(holder, projectId, recipient,
|
|
54
|
+
* creditCount)` transaction request, transferring internal token credits (unclaimed
|
|
55
|
+
* tokens) to another address.
|
|
56
|
+
*
|
|
57
|
+
* Transferring another holder's credits requires the TRANSFER_CREDITS permission.
|
|
58
|
+
*
|
|
59
|
+
* @param args.chainId The chain to transfer on.
|
|
60
|
+
* @param args.holder The address whose credits are being transferred.
|
|
61
|
+
* @param args.projectId The project's id.
|
|
62
|
+
* @param args.recipient The address that receives the credits.
|
|
63
|
+
* @param args.creditCount The number of credits to transfer, as a fixed point number
|
|
64
|
+
* with 18 decimals.
|
|
65
|
+
* @returns The transaction request.
|
|
66
|
+
*/
|
|
67
|
+
export function buildTransferCreditsTx({ chainId, holder, projectId, recipient, creditCount, }) {
|
|
68
|
+
return {
|
|
69
|
+
chainId,
|
|
70
|
+
address: v6Address("JBController", chainId),
|
|
71
|
+
abi: jbControllerAbi,
|
|
72
|
+
functionName: "transferCreditsFrom",
|
|
73
|
+
args: [holder, projectId, recipient, creditCount],
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Build a `JBController.mintTokensOf(projectId, tokenCount, beneficiary, memo,
|
|
78
|
+
* useReservedPercent)` transaction request, minting new project tokens.
|
|
79
|
+
*
|
|
80
|
+
* Only works when the project's ruleset allows owner minting; requires the project
|
|
81
|
+
* owner or the MINT_TOKENS permission.
|
|
82
|
+
*
|
|
83
|
+
* @param args.chainId The chain to mint on.
|
|
84
|
+
* @param args.projectId The project's id.
|
|
85
|
+
* @param args.tokenCount The number of tokens to mint, as a fixed point number with 18
|
|
86
|
+
* decimals.
|
|
87
|
+
* @param args.beneficiary The address that receives the minted tokens.
|
|
88
|
+
* @param args.memo A memo included in the MintTokens event. Defaults to "".
|
|
89
|
+
* @param args.useReservedPercent Whether the ruleset's reserved percent should be
|
|
90
|
+
* withheld from the mint for the project's reserved splits. Defaults to true.
|
|
91
|
+
* @returns The transaction request.
|
|
92
|
+
*/
|
|
93
|
+
export function buildMintTokensTx({ chainId, projectId, tokenCount, beneficiary, memo = "", useReservedPercent = true, }) {
|
|
94
|
+
return {
|
|
95
|
+
chainId,
|
|
96
|
+
address: v6Address("JBController", chainId),
|
|
97
|
+
abi: jbControllerAbi,
|
|
98
|
+
functionName: "mintTokensOf",
|
|
99
|
+
args: [projectId, tokenCount, beneficiary, memo, useReservedPercent],
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Build a `JBController.burnTokensOf(holder, projectId, tokenCount, memo)` transaction
|
|
104
|
+
* request, burning a holder's project tokens.
|
|
105
|
+
*
|
|
106
|
+
* Burning another holder's tokens requires the BURN_TOKENS permission.
|
|
107
|
+
*
|
|
108
|
+
* @param args.chainId The chain to burn on.
|
|
109
|
+
* @param args.holder The address whose tokens are being burned.
|
|
110
|
+
* @param args.projectId The project's id.
|
|
111
|
+
* @param args.tokenCount The number of tokens to burn, as a fixed point number with 18
|
|
112
|
+
* decimals.
|
|
113
|
+
* @param args.memo A memo included in the BurnTokens event. Defaults to "".
|
|
114
|
+
* @returns The transaction request.
|
|
115
|
+
*/
|
|
116
|
+
export function buildBurnTokensTx({ chainId, holder, projectId, tokenCount, memo = "", }) {
|
|
117
|
+
return {
|
|
118
|
+
chainId,
|
|
119
|
+
address: v6Address("JBController", chainId),
|
|
120
|
+
abi: jbControllerAbi,
|
|
121
|
+
functionName: "burnTokensOf",
|
|
122
|
+
args: [holder, projectId, tokenCount, memo],
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Read a project's ERC-20 token address via `JBTokens.tokenOf(projectId)`.
|
|
127
|
+
*
|
|
128
|
+
* @param client A viem public client on the given chain.
|
|
129
|
+
* @param args.chainId The chain to read from.
|
|
130
|
+
* @param args.projectId The project's id.
|
|
131
|
+
* @returns The token address, or null when the project has no ERC-20 deployed (token
|
|
132
|
+
* balances are held as internal credits).
|
|
133
|
+
*/
|
|
134
|
+
export async function getTokenAddress(client, { chainId, projectId, }) {
|
|
135
|
+
const token = await client.readContract({
|
|
136
|
+
address: v6Address("JBTokens", chainId),
|
|
137
|
+
abi: jbTokensAbi,
|
|
138
|
+
functionName: "tokenOf",
|
|
139
|
+
args: [projectId],
|
|
140
|
+
});
|
|
141
|
+
return token === zeroAddress ? null : token;
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Read a holder's internal token credit balance (unclaimed tokens) via
|
|
145
|
+
* `JBTokens.creditBalanceOf(holder, projectId)`.
|
|
146
|
+
*
|
|
147
|
+
* @param client A viem public client on the given chain.
|
|
148
|
+
* @param args.chainId The chain to read from.
|
|
149
|
+
* @param args.projectId The project's id.
|
|
150
|
+
* @param args.holder The holder to read the credit balance of.
|
|
151
|
+
* @returns The holder's credit balance, as a fixed point number with 18 decimals.
|
|
152
|
+
*/
|
|
153
|
+
export async function getCreditBalance(client, { chainId, projectId, holder, }) {
|
|
154
|
+
return client.readContract({
|
|
155
|
+
address: v6Address("JBTokens", chainId),
|
|
156
|
+
abi: jbTokensAbi,
|
|
157
|
+
functionName: "creditBalanceOf",
|
|
158
|
+
args: [holder, projectId],
|
|
159
|
+
});
|
|
160
|
+
}
|
|
161
|
+
//# sourceMappingURL=tokens.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tokens.js","sourceRoot":"","sources":["../../../src/v6/tokens.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tokens.test.d.ts","sourceRoot":"","sources":["../../../src/v6/tokens.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
import { encodeFunctionData, zeroAddress, zeroHash } from "viem";
|
|
2
|
+
import { describe, expect, test } from "vitest";
|
|
3
|
+
import { ONE_ETHER } from "../constants.js";
|
|
4
|
+
import { jbTokensAbi } from "../generated/juicebox.js";
|
|
5
|
+
import { buildBurnTokensTx, buildClaimTokensTx, buildDeployErc20Tx, buildMintTokensTx, buildTransferCreditsTx, getCreditBalance, getTokenAddress, } from "./tokens.js";
|
|
6
|
+
import { v6Address } from "./types.js";
|
|
7
|
+
const chainId = 11155111;
|
|
8
|
+
const projectId = 3n;
|
|
9
|
+
const holder = "0x1111111111111111111111111111111111111111";
|
|
10
|
+
const beneficiary = "0x2222222222222222222222222222222222222222";
|
|
11
|
+
describe("tokens", () => {
|
|
12
|
+
test("buildDeployErc20Tx encodes deployERC20For", () => {
|
|
13
|
+
const tx = buildDeployErc20Tx({
|
|
14
|
+
chainId,
|
|
15
|
+
projectId,
|
|
16
|
+
name: "Token",
|
|
17
|
+
symbol: "TKN",
|
|
18
|
+
});
|
|
19
|
+
expect(tx.address).toEqual(v6Address("JBController", chainId));
|
|
20
|
+
expect(tx.functionName).toEqual("deployERC20For");
|
|
21
|
+
expect(tx.args).toEqual([projectId, "Token", "TKN", zeroHash]);
|
|
22
|
+
expect(() => encodeFunctionData(tx)).not.toThrow();
|
|
23
|
+
});
|
|
24
|
+
test("buildDeployErc20Tx passes a custom salt through", () => {
|
|
25
|
+
const salt = `0x${"11".repeat(32)}`;
|
|
26
|
+
const tx = buildDeployErc20Tx({
|
|
27
|
+
chainId,
|
|
28
|
+
projectId,
|
|
29
|
+
name: "Token",
|
|
30
|
+
symbol: "TKN",
|
|
31
|
+
salt,
|
|
32
|
+
});
|
|
33
|
+
expect(tx.args[3]).toEqual(salt);
|
|
34
|
+
});
|
|
35
|
+
test("buildClaimTokensTx encodes claimTokensFor", () => {
|
|
36
|
+
const tx = buildClaimTokensTx({
|
|
37
|
+
chainId,
|
|
38
|
+
holder,
|
|
39
|
+
projectId,
|
|
40
|
+
tokenCount: ONE_ETHER,
|
|
41
|
+
beneficiary,
|
|
42
|
+
});
|
|
43
|
+
expect(tx.address).toEqual(v6Address("JBController", chainId));
|
|
44
|
+
expect(tx.functionName).toEqual("claimTokensFor");
|
|
45
|
+
expect(tx.args).toEqual([holder, projectId, ONE_ETHER, beneficiary]);
|
|
46
|
+
expect(() => encodeFunctionData(tx)).not.toThrow();
|
|
47
|
+
});
|
|
48
|
+
test("buildTransferCreditsTx encodes transferCreditsFrom", () => {
|
|
49
|
+
const tx = buildTransferCreditsTx({
|
|
50
|
+
chainId,
|
|
51
|
+
holder,
|
|
52
|
+
projectId,
|
|
53
|
+
recipient: beneficiary,
|
|
54
|
+
creditCount: ONE_ETHER,
|
|
55
|
+
});
|
|
56
|
+
expect(tx.address).toEqual(v6Address("JBController", chainId));
|
|
57
|
+
expect(tx.functionName).toEqual("transferCreditsFrom");
|
|
58
|
+
expect(tx.args).toEqual([holder, projectId, beneficiary, ONE_ETHER]);
|
|
59
|
+
expect(() => encodeFunctionData(tx)).not.toThrow();
|
|
60
|
+
});
|
|
61
|
+
test("buildMintTokensTx encodes mintTokensOf with defaults", () => {
|
|
62
|
+
const tx = buildMintTokensTx({
|
|
63
|
+
chainId,
|
|
64
|
+
projectId,
|
|
65
|
+
tokenCount: ONE_ETHER,
|
|
66
|
+
beneficiary,
|
|
67
|
+
});
|
|
68
|
+
expect(tx.address).toEqual(v6Address("JBController", chainId));
|
|
69
|
+
expect(tx.functionName).toEqual("mintTokensOf");
|
|
70
|
+
expect(tx.args).toEqual([projectId, ONE_ETHER, beneficiary, "", true]);
|
|
71
|
+
expect(() => encodeFunctionData(tx)).not.toThrow();
|
|
72
|
+
});
|
|
73
|
+
test("buildMintTokensTx can skip the reserved percent", () => {
|
|
74
|
+
const tx = buildMintTokensTx({
|
|
75
|
+
chainId,
|
|
76
|
+
projectId,
|
|
77
|
+
tokenCount: ONE_ETHER,
|
|
78
|
+
beneficiary,
|
|
79
|
+
memo: "gm",
|
|
80
|
+
useReservedPercent: false,
|
|
81
|
+
});
|
|
82
|
+
expect(tx.args).toEqual([projectId, ONE_ETHER, beneficiary, "gm", false]);
|
|
83
|
+
});
|
|
84
|
+
test("buildBurnTokensTx encodes burnTokensOf", () => {
|
|
85
|
+
const tx = buildBurnTokensTx({
|
|
86
|
+
chainId,
|
|
87
|
+
holder,
|
|
88
|
+
projectId,
|
|
89
|
+
tokenCount: ONE_ETHER,
|
|
90
|
+
});
|
|
91
|
+
expect(tx.address).toEqual(v6Address("JBController", chainId));
|
|
92
|
+
expect(tx.functionName).toEqual("burnTokensOf");
|
|
93
|
+
expect(tx.args).toEqual([holder, projectId, ONE_ETHER, ""]);
|
|
94
|
+
expect(() => encodeFunctionData(tx)).not.toThrow();
|
|
95
|
+
});
|
|
96
|
+
test("getTokenAddress returns null when no ERC-20 is deployed", async () => {
|
|
97
|
+
const calls = [];
|
|
98
|
+
const client = {
|
|
99
|
+
async readContract(params) {
|
|
100
|
+
calls.push(params);
|
|
101
|
+
return zeroAddress;
|
|
102
|
+
},
|
|
103
|
+
};
|
|
104
|
+
const token = await getTokenAddress(client, { chainId, projectId });
|
|
105
|
+
expect(token).toBeNull();
|
|
106
|
+
expect(calls[0].address).toEqual(v6Address("JBTokens", chainId));
|
|
107
|
+
expect(calls[0].abi).toBe(jbTokensAbi);
|
|
108
|
+
expect(calls[0].functionName).toEqual("tokenOf");
|
|
109
|
+
expect(calls[0].args).toEqual([projectId]);
|
|
110
|
+
});
|
|
111
|
+
test("getTokenAddress returns the deployed ERC-20", async () => {
|
|
112
|
+
const erc20 = "0x3333333333333333333333333333333333333333";
|
|
113
|
+
const client = {
|
|
114
|
+
async readContract() {
|
|
115
|
+
return erc20;
|
|
116
|
+
},
|
|
117
|
+
};
|
|
118
|
+
expect(await getTokenAddress(client, { chainId, projectId })).toEqual(erc20);
|
|
119
|
+
});
|
|
120
|
+
test("getCreditBalance reads creditBalanceOf(holder, projectId)", async () => {
|
|
121
|
+
const calls = [];
|
|
122
|
+
const client = {
|
|
123
|
+
async readContract(params) {
|
|
124
|
+
calls.push(params);
|
|
125
|
+
return 42n;
|
|
126
|
+
},
|
|
127
|
+
};
|
|
128
|
+
const balance = await getCreditBalance(client, {
|
|
129
|
+
chainId,
|
|
130
|
+
projectId,
|
|
131
|
+
holder,
|
|
132
|
+
});
|
|
133
|
+
expect(balance).toEqual(42n);
|
|
134
|
+
expect(calls[0].address).toEqual(v6Address("JBTokens", chainId));
|
|
135
|
+
expect(calls[0].functionName).toEqual("creditBalanceOf");
|
|
136
|
+
expect(calls[0].args).toEqual([holder, projectId]);
|
|
137
|
+
});
|
|
138
|
+
});
|
|
139
|
+
//# sourceMappingURL=tokens.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tokens.test.js","sourceRoot":"","sources":["../../../src/v6/tokens.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Address } from "viem";
|
|
2
|
+
import { jbContractAddress } from "../generated/juicebox.js";
|
|
3
|
+
import { JBChainId } from "../types.js";
|
|
4
|
+
/**
|
|
5
|
+
* The contracts deployed for Juicebox v6.
|
|
6
|
+
*/
|
|
7
|
+
export type V6Contract = keyof (typeof jbContractAddress)["6"];
|
|
8
|
+
/**
|
|
9
|
+
* The address of a v6 contract on a chain.
|
|
10
|
+
*/
|
|
11
|
+
export declare function v6Address(contract: V6Contract, chainId: JBChainId): Address;
|
|
12
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/v6/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,iBAAiB,CAAC,CAAC,GAAG,CAAC,CAAC;AAE/D;;GAEG;AACH,wBAAgB,SAAS,CAAC,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,GAAG,OAAO,CAQ3E"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { jbContractAddress } from "../generated/juicebox.js";
|
|
2
|
+
/**
|
|
3
|
+
* The address of a v6 contract on a chain.
|
|
4
|
+
*/
|
|
5
|
+
export function v6Address(contract, chainId) {
|
|
6
|
+
const address = jbContractAddress["6"][contract][String(chainId)];
|
|
7
|
+
if (!address) {
|
|
8
|
+
throw new Error(`No v6 ${String(contract)} deployment on chain ${chainId}`);
|
|
9
|
+
}
|
|
10
|
+
return address;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/v6/types.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAQ7D;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,QAAoB,EAAE,OAAkB;IAChE,MAAM,OAAO,GAAI,iBAAiB,CAAC,GAAG,CAAC,CAAC,QAAQ,CAA6B,CAC3E,MAAM,CAAC,OAAO,CAAC,CAChB,CAAC;IACF,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,SAAS,MAAM,CAAC,QAAQ,CAAC,wBAAwB,OAAO,EAAE,CAAC,CAAC;IAC9E,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
|