@liquid-af/sdk 0.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/README.md +776 -0
- package/dist/accounts/index.d.ts +5 -0
- package/dist/accounts/index.d.ts.map +1 -0
- package/dist/accounts/index.js +5 -0
- package/dist/accounts/index.js.map +1 -0
- package/dist/accounts/liquid-fees.d.ts +63 -0
- package/dist/accounts/liquid-fees.d.ts.map +1 -0
- package/dist/accounts/liquid-fees.js +27 -0
- package/dist/accounts/liquid-fees.js.map +1 -0
- package/dist/accounts/liquid-state.d.ts +112 -0
- package/dist/accounts/liquid-state.d.ts.map +1 -0
- package/dist/accounts/liquid-state.js +92 -0
- package/dist/accounts/liquid-state.js.map +1 -0
- package/dist/accounts/liquid-swap.d.ts +97 -0
- package/dist/accounts/liquid-swap.d.ts.map +1 -0
- package/dist/accounts/liquid-swap.js +54 -0
- package/dist/accounts/liquid-swap.js.map +1 -0
- package/dist/accounts/liquid.d.ts +175 -0
- package/dist/accounts/liquid.d.ts.map +1 -0
- package/dist/accounts/liquid.js +66 -0
- package/dist/accounts/liquid.js.map +1 -0
- package/dist/client.d.ts +621 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +511 -0
- package/dist/client.js.map +1 -0
- package/dist/config.d.ts +56 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +44 -0
- package/dist/config.js.map +1 -0
- package/dist/errors.d.ts +39 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +63 -0
- package/dist/errors.js.map +1 -0
- package/dist/events/index.d.ts +4 -0
- package/dist/events/index.d.ts.map +1 -0
- package/dist/events/index.js +2 -0
- package/dist/events/index.js.map +1 -0
- package/dist/events/parser.d.ts +40 -0
- package/dist/events/parser.d.ts.map +1 -0
- package/dist/events/parser.js +67 -0
- package/dist/events/parser.js.map +1 -0
- package/dist/events/types.d.ts +286 -0
- package/dist/events/types.d.ts.map +1 -0
- package/dist/events/types.js +2 -0
- package/dist/events/types.js.map +1 -0
- package/dist/helpers/index.d.ts +4 -0
- package/dist/helpers/index.d.ts.map +1 -0
- package/dist/helpers/index.js +3 -0
- package/dist/helpers/index.js.map +1 -0
- package/dist/helpers/preview.d.ts +259 -0
- package/dist/helpers/preview.d.ts.map +1 -0
- package/dist/helpers/preview.js +458 -0
- package/dist/helpers/preview.js.map +1 -0
- package/dist/helpers/user.d.ts +11 -0
- package/dist/helpers/user.d.ts.map +1 -0
- package/dist/helpers/user.js +20 -0
- package/dist/helpers/user.js.map +1 -0
- package/dist/idl/index.d.ts +53 -0
- package/dist/idl/index.d.ts.map +1 -0
- package/dist/idl/index.js +64 -0
- package/dist/idl/index.js.map +1 -0
- package/dist/idl/liquid.d.ts +10523 -0
- package/dist/idl/liquid.d.ts.map +1 -0
- package/dist/idl/liquid.js +2 -0
- package/dist/idl/liquid.js.map +1 -0
- package/dist/idl/liquid.json +10516 -0
- package/dist/idl/liquid_fees.d.ts +1520 -0
- package/dist/idl/liquid_fees.d.ts.map +1 -0
- package/dist/idl/liquid_fees.js +2 -0
- package/dist/idl/liquid_fees.js.map +1 -0
- package/dist/idl/liquid_fees.json +1513 -0
- package/dist/idl/liquid_state.d.ts +2936 -0
- package/dist/idl/liquid_state.d.ts.map +1 -0
- package/dist/idl/liquid_state.js +2 -0
- package/dist/idl/liquid_state.js.map +1 -0
- package/dist/idl/liquid_state.json +2929 -0
- package/dist/idl/liquid_swap.d.ts +5849 -0
- package/dist/idl/liquid_swap.d.ts.map +1 -0
- package/dist/idl/liquid_swap.js +2 -0
- package/dist/idl/liquid_swap.js.map +1 -0
- package/dist/idl/liquid_swap.json +5842 -0
- package/dist/index.d.ts +19 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +15 -0
- package/dist/index.js.map +1 -0
- package/dist/instructions/index.d.ts +9 -0
- package/dist/instructions/index.d.ts.map +1 -0
- package/dist/instructions/index.js +9 -0
- package/dist/instructions/index.js.map +1 -0
- package/dist/instructions/liquid-fees.d.ts +111 -0
- package/dist/instructions/liquid-fees.d.ts.map +1 -0
- package/dist/instructions/liquid-fees.js +169 -0
- package/dist/instructions/liquid-fees.js.map +1 -0
- package/dist/instructions/liquid-state.d.ts +173 -0
- package/dist/instructions/liquid-state.d.ts.map +1 -0
- package/dist/instructions/liquid-state.js +194 -0
- package/dist/instructions/liquid-state.js.map +1 -0
- package/dist/instructions/liquid-swap.d.ts +122 -0
- package/dist/instructions/liquid-swap.d.ts.map +1 -0
- package/dist/instructions/liquid-swap.js +167 -0
- package/dist/instructions/liquid-swap.js.map +1 -0
- package/dist/instructions/liquid.d.ts +297 -0
- package/dist/instructions/liquid.d.ts.map +1 -0
- package/dist/instructions/liquid.js +483 -0
- package/dist/instructions/liquid.js.map +1 -0
- package/dist/instructions/program-cache.d.ts +35 -0
- package/dist/instructions/program-cache.d.ts.map +1 -0
- package/dist/instructions/program-cache.js +68 -0
- package/dist/instructions/program-cache.js.map +1 -0
- package/dist/math/amm.d.ts +42 -0
- package/dist/math/amm.d.ts.map +1 -0
- package/dist/math/amm.js +109 -0
- package/dist/math/amm.js.map +1 -0
- package/dist/math/bonding-curve.d.ts +34 -0
- package/dist/math/bonding-curve.d.ts.map +1 -0
- package/dist/math/bonding-curve.js +80 -0
- package/dist/math/bonding-curve.js.map +1 -0
- package/dist/math/constants.d.ts +14 -0
- package/dist/math/constants.d.ts.map +1 -0
- package/dist/math/constants.js +14 -0
- package/dist/math/constants.js.map +1 -0
- package/dist/math/fees.d.ts +88 -0
- package/dist/math/fees.d.ts.map +1 -0
- package/dist/math/fees.js +135 -0
- package/dist/math/fees.js.map +1 -0
- package/dist/math/index.d.ts +8 -0
- package/dist/math/index.d.ts.map +1 -0
- package/dist/math/index.js +6 -0
- package/dist/math/index.js.map +1 -0
- package/dist/math/tiered-fees.d.ts +80 -0
- package/dist/math/tiered-fees.d.ts.map +1 -0
- package/dist/math/tiered-fees.js +129 -0
- package/dist/math/tiered-fees.js.map +1 -0
- package/dist/oracle.d.ts +53 -0
- package/dist/oracle.d.ts.map +1 -0
- package/dist/oracle.js +70 -0
- package/dist/oracle.js.map +1 -0
- package/dist/pda/index.d.ts +89 -0
- package/dist/pda/index.d.ts.map +1 -0
- package/dist/pda/index.js +127 -0
- package/dist/pda/index.js.map +1 -0
- package/dist/pda/liquid-fees.d.ts +27 -0
- package/dist/pda/liquid-fees.d.ts.map +1 -0
- package/dist/pda/liquid-fees.js +36 -0
- package/dist/pda/liquid-fees.js.map +1 -0
- package/dist/pda/liquid-state.d.ts +56 -0
- package/dist/pda/liquid-state.d.ts.map +1 -0
- package/dist/pda/liquid-state.js +79 -0
- package/dist/pda/liquid-state.js.map +1 -0
- package/dist/pda/liquid-swap.d.ts +76 -0
- package/dist/pda/liquid-swap.d.ts.map +1 -0
- package/dist/pda/liquid-swap.js +103 -0
- package/dist/pda/liquid-swap.js.map +1 -0
- package/dist/pda/liquid.d.ts +67 -0
- package/dist/pda/liquid.d.ts.map +1 -0
- package/dist/pda/liquid.js +91 -0
- package/dist/pda/liquid.js.map +1 -0
- package/dist/provider.d.ts +26 -0
- package/dist/provider.d.ts.map +1 -0
- package/dist/provider.js +47 -0
- package/dist/provider.js.map +1 -0
- package/dist/transaction/builder.d.ts +30 -0
- package/dist/transaction/builder.d.ts.map +1 -0
- package/dist/transaction/builder.js +48 -0
- package/dist/transaction/builder.js.map +1 -0
- package/dist/transaction/index.d.ts +3 -0
- package/dist/transaction/index.d.ts.map +1 -0
- package/dist/transaction/index.js +3 -0
- package/dist/transaction/index.js.map +1 -0
- package/dist/transaction/send.d.ts +25 -0
- package/dist/transaction/send.d.ts.map +1 -0
- package/dist/transaction/send.js +52 -0
- package/dist/transaction/send.js.map +1 -0
- package/dist/types.d.ts +311 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +46 -0
- package/dist/types.js.map +1 -0
- package/package.json +112 -0
- package/src/accounts/index.ts +26 -0
- package/src/accounts/liquid-fees.ts +38 -0
- package/src/accounts/liquid-state.ts +134 -0
- package/src/accounts/liquid-swap.ts +79 -0
- package/src/accounts/liquid.ts +100 -0
- package/src/client.ts +1001 -0
- package/src/config.ts +91 -0
- package/src/errors.ts +94 -0
- package/src/events/index.ts +42 -0
- package/src/events/parser.ts +90 -0
- package/src/events/types.ts +310 -0
- package/src/helpers/index.ts +23 -0
- package/src/helpers/preview.ts +798 -0
- package/src/helpers/user.ts +24 -0
- package/src/idl/index.ts +94 -0
- package/src/idl/liquid.json +10516 -0
- package/src/idl/liquid.ts +10522 -0
- package/src/idl/liquid_fees.json +1513 -0
- package/src/idl/liquid_fees.ts +1519 -0
- package/src/idl/liquid_state.json +2929 -0
- package/src/idl/liquid_state.ts +2935 -0
- package/src/idl/liquid_swap.json +5842 -0
- package/src/idl/liquid_swap.ts +5848 -0
- package/src/index.ts +98 -0
- package/src/instructions/index.ts +109 -0
- package/src/instructions/liquid-fees.ts +289 -0
- package/src/instructions/liquid-state.ts +336 -0
- package/src/instructions/liquid-swap.ts +414 -0
- package/src/instructions/liquid.ts +884 -0
- package/src/instructions/program-cache.ts +106 -0
- package/src/math/amm.ts +146 -0
- package/src/math/bonding-curve.ts +122 -0
- package/src/math/constants.ts +19 -0
- package/src/math/fees.ts +191 -0
- package/src/math/index.ts +40 -0
- package/src/math/tiered-fees.ts +165 -0
- package/src/oracle.ts +97 -0
- package/src/pda/index.ts +331 -0
- package/src/pda/liquid-fees.ts +58 -0
- package/src/pda/liquid-state.ts +123 -0
- package/src/pda/liquid-swap.ts +162 -0
- package/src/pda/liquid.ts +152 -0
- package/src/provider.ts +60 -0
- package/src/transaction/builder.ts +80 -0
- package/src/transaction/index.ts +6 -0
- package/src/transaction/send.ts +72 -0
- package/src/types.ts +354 -0
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
import { getCachedStateProgram } from "./program-cache.js";
|
|
2
|
+
import { getDealPDA, getUserSnapshotPDA } from "../pda/liquid-state.js";
|
|
3
|
+
/**
|
|
4
|
+
* Builds an initializeUser instruction.
|
|
5
|
+
* Creates the user properties account in liquid-state.
|
|
6
|
+
*
|
|
7
|
+
* @param params - {@link BuildInitializeUserParams}
|
|
8
|
+
* @returns Transaction instruction
|
|
9
|
+
*/
|
|
10
|
+
export function buildInitializeUser(params) {
|
|
11
|
+
const { user, config } = params;
|
|
12
|
+
const program = getCachedStateProgram(config);
|
|
13
|
+
return program.methods.initializeUser().accounts({ user }).instruction();
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Builds a setReferrer instruction.
|
|
17
|
+
* One-time operation — referrer cannot be changed once set.
|
|
18
|
+
*
|
|
19
|
+
* @param params - {@link BuildSetReferrerParams}
|
|
20
|
+
* @returns Transaction instruction
|
|
21
|
+
*/
|
|
22
|
+
export function buildSetReferrer(params) {
|
|
23
|
+
const { user, referrer, config } = params;
|
|
24
|
+
const program = getCachedStateProgram(config);
|
|
25
|
+
return program.methods
|
|
26
|
+
.setReferrer(referrer)
|
|
27
|
+
.accounts({ user })
|
|
28
|
+
.instruction();
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Builds a setCashbackMode instruction.
|
|
32
|
+
* Toggles user between earning mode (earn credits) and spending mode (spend credits).
|
|
33
|
+
*
|
|
34
|
+
* @param params - {@link BuildSetCashbackModeParams}
|
|
35
|
+
* @returns Transaction instruction
|
|
36
|
+
*/
|
|
37
|
+
export function buildSetCashbackMode(params) {
|
|
38
|
+
const { user, config } = params;
|
|
39
|
+
const program = getCachedStateProgram(config);
|
|
40
|
+
return program.methods.setCashbackMode().accounts({ user }).instruction();
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Builds a transferAdmin instruction.
|
|
44
|
+
* Proposes transfer of admin authority to a new pubkey (two-step).
|
|
45
|
+
* The new admin must call {@link buildAcceptAdmin} to complete the transfer.
|
|
46
|
+
*
|
|
47
|
+
* @param params - {@link BuildTransferAdminParams}
|
|
48
|
+
* @returns Transaction instruction
|
|
49
|
+
*/
|
|
50
|
+
export function buildTransferAdmin(params) {
|
|
51
|
+
const { admin, newAdmin, config } = params;
|
|
52
|
+
const program = getCachedStateProgram(config);
|
|
53
|
+
return program.methods
|
|
54
|
+
.transferAdmin(newAdmin)
|
|
55
|
+
.accounts({ admin })
|
|
56
|
+
.instruction();
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Builds an acceptAdmin instruction.
|
|
60
|
+
* Completes a pending admin transfer. Must be called by the pending admin.
|
|
61
|
+
*
|
|
62
|
+
* @param params - {@link BuildAcceptAdminParams}
|
|
63
|
+
* @returns Transaction instruction
|
|
64
|
+
*/
|
|
65
|
+
export function buildAcceptAdmin(params) {
|
|
66
|
+
const { newAdmin, config } = params;
|
|
67
|
+
const program = getCachedStateProgram(config);
|
|
68
|
+
return program.methods
|
|
69
|
+
.acceptAdmin()
|
|
70
|
+
.accounts({ newAdmin })
|
|
71
|
+
.instruction();
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Builds a cancelAdminTransfer instruction.
|
|
75
|
+
* Cancels a pending admin transfer. Callable by either the current admin or the pending admin.
|
|
76
|
+
*
|
|
77
|
+
* @param params - {@link BuildCancelAdminTransferParams}
|
|
78
|
+
* @returns Transaction instruction
|
|
79
|
+
*/
|
|
80
|
+
export function buildCancelAdminTransfer(params) {
|
|
81
|
+
const { authority, config } = params;
|
|
82
|
+
const program = getCachedStateProgram(config);
|
|
83
|
+
return program.methods
|
|
84
|
+
.cancelAdminTransfer()
|
|
85
|
+
.accounts({ authority })
|
|
86
|
+
.instruction();
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Builds a createDeal instruction.
|
|
90
|
+
* Admin creates an exclusive deal for a pubkey (typically a referrer/influencer).
|
|
91
|
+
*
|
|
92
|
+
* @param params - {@link BuildCreateDealParams}
|
|
93
|
+
* @returns Transaction instruction
|
|
94
|
+
*/
|
|
95
|
+
export function buildCreateDeal(params) {
|
|
96
|
+
const { admin, owner, cashbackMultiplierBps, payer, config } = params;
|
|
97
|
+
const program = getCachedStateProgram(config);
|
|
98
|
+
return program.methods
|
|
99
|
+
.createDeal(owner, cashbackMultiplierBps)
|
|
100
|
+
.accounts({ admin, payer })
|
|
101
|
+
.instruction();
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Builds an updateDeal instruction.
|
|
105
|
+
* Admin updates a deal's cashback multiplier.
|
|
106
|
+
*
|
|
107
|
+
* @param params - {@link BuildUpdateDealParams}
|
|
108
|
+
* @returns Transaction instruction
|
|
109
|
+
*/
|
|
110
|
+
export function buildUpdateDeal(params) {
|
|
111
|
+
const { admin, dealOwner, newCashbackMultiplierBps, config } = params;
|
|
112
|
+
const program = getCachedStateProgram(config);
|
|
113
|
+
const [deal] = getDealPDA(dealOwner, config.liquidStateProgramId);
|
|
114
|
+
return program.methods
|
|
115
|
+
.updateDeal(newCashbackMultiplierBps)
|
|
116
|
+
.accountsPartial({ admin, deal })
|
|
117
|
+
.instruction();
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Builds a closeDeal instruction.
|
|
121
|
+
* Admin closes/deletes a deal, returning rent to admin.
|
|
122
|
+
*
|
|
123
|
+
* @param params - {@link BuildCloseDealParams}
|
|
124
|
+
* @returns Transaction instruction
|
|
125
|
+
*/
|
|
126
|
+
export function buildCloseDeal(params) {
|
|
127
|
+
const { admin, dealOwner, config } = params;
|
|
128
|
+
const program = getCachedStateProgram(config);
|
|
129
|
+
const [deal] = getDealPDA(dealOwner, config.liquidStateProgramId);
|
|
130
|
+
return program.methods
|
|
131
|
+
.closeDeal()
|
|
132
|
+
.accountsPartial({ admin, deal })
|
|
133
|
+
.instruction();
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Builds a redeemDeal instruction.
|
|
137
|
+
* User redeems their referrer's deal, copying the multiplier.
|
|
138
|
+
*
|
|
139
|
+
* @param params - {@link BuildRedeemDealParams}
|
|
140
|
+
* @returns Transaction instruction
|
|
141
|
+
*/
|
|
142
|
+
export function buildRedeemDeal(params) {
|
|
143
|
+
const { user, dealOwner, config } = params;
|
|
144
|
+
const program = getCachedStateProgram(config);
|
|
145
|
+
const [deal] = getDealPDA(dealOwner, config.liquidStateProgramId);
|
|
146
|
+
return program.methods
|
|
147
|
+
.redeemDeal()
|
|
148
|
+
.accountsPartial({ user, deal })
|
|
149
|
+
.instruction();
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Builds a takeSnapshot instruction.
|
|
153
|
+
* Admin takes a snapshot of a user's volume since last snapshot.
|
|
154
|
+
*
|
|
155
|
+
* The caller must provide the current `snapshotIndex` (from `user_properties.snapshot_count`)
|
|
156
|
+
* because the snapshot PDA seed depends on this value and cannot be resolved without a
|
|
157
|
+
* network fetch.
|
|
158
|
+
*
|
|
159
|
+
* @param params - {@link BuildTakeSnapshotParams}
|
|
160
|
+
* @returns Transaction instruction
|
|
161
|
+
*/
|
|
162
|
+
export function buildTakeSnapshot(params) {
|
|
163
|
+
const { admin, user, payer, snapshotIndex, config } = params;
|
|
164
|
+
const program = getCachedStateProgram(config);
|
|
165
|
+
const [userSnapshot] = getUserSnapshotPDA(user, snapshotIndex, config.liquidStateProgramId);
|
|
166
|
+
return program.methods
|
|
167
|
+
.takeSnapshot()
|
|
168
|
+
.accountsPartial({ admin, user, payer, userSnapshot })
|
|
169
|
+
.instruction();
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Builds an adminUpdateUser instruction.
|
|
173
|
+
* Admin updates a user's referrer/multiplier and always takes a snapshot.
|
|
174
|
+
*
|
|
175
|
+
* The caller must provide the current `snapshotIndex` (from `user_properties.snapshot_count`)
|
|
176
|
+
* because the snapshot PDA seed depends on this value and cannot be resolved without a
|
|
177
|
+
* network fetch.
|
|
178
|
+
*
|
|
179
|
+
* @param params - {@link BuildAdminUpdateUserParams}
|
|
180
|
+
* @returns Transaction instruction
|
|
181
|
+
*/
|
|
182
|
+
export function buildAdminUpdateUser(params) {
|
|
183
|
+
const { admin, user, payer, newReferrer, newCashbackMultiplierBps, snapshotIndex, config, } = params;
|
|
184
|
+
const program = getCachedStateProgram(config);
|
|
185
|
+
const [userSnapshot] = getUserSnapshotPDA(user, snapshotIndex, config.liquidStateProgramId);
|
|
186
|
+
return program.methods
|
|
187
|
+
.adminUpdateUser({
|
|
188
|
+
newReferrer: newReferrer ?? null,
|
|
189
|
+
newCashbackMultiplierBps: newCashbackMultiplierBps ?? null,
|
|
190
|
+
})
|
|
191
|
+
.accountsPartial({ admin, user, payer, userSnapshot })
|
|
192
|
+
.instruction();
|
|
193
|
+
}
|
|
194
|
+
//# sourceMappingURL=liquid-state.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"liquid-state.js","sourceRoot":"","sources":["../../src/instructions/liquid-state.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import type { PublicKey, TransactionInstruction } from "@solana/web3.js";
|
|
2
|
+
import type BN from "bn.js";
|
|
3
|
+
import type { LiquidConfig } from "../config.js";
|
|
4
|
+
export interface BuildCreatePoolParams {
|
|
5
|
+
signer: PublicKey;
|
|
6
|
+
payer?: PublicKey;
|
|
7
|
+
baseMint: PublicKey;
|
|
8
|
+
quoteMint: PublicKey;
|
|
9
|
+
baseTokenProgram: PublicKey;
|
|
10
|
+
quoteTokenProgram: PublicKey;
|
|
11
|
+
initAmountBase: BN;
|
|
12
|
+
initAmountQuote: BN;
|
|
13
|
+
config: LiquidConfig;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Builds a create pool instruction.
|
|
17
|
+
*
|
|
18
|
+
* @param params - {@link BuildCreatePoolParams}
|
|
19
|
+
* @returns Transaction instruction
|
|
20
|
+
*/
|
|
21
|
+
export declare function buildCreatePool(params: BuildCreatePoolParams): Promise<TransactionInstruction>;
|
|
22
|
+
export interface BuildSwapBuyParams {
|
|
23
|
+
payer: PublicKey;
|
|
24
|
+
creator: PublicKey;
|
|
25
|
+
baseMint: PublicKey;
|
|
26
|
+
quoteMint: PublicKey;
|
|
27
|
+
baseTokenProgram: PublicKey;
|
|
28
|
+
quoteTokenProgram: PublicKey;
|
|
29
|
+
maxAmountIn: BN;
|
|
30
|
+
amountOut: BN;
|
|
31
|
+
feeRecipient: PublicKey;
|
|
32
|
+
oraclePriceFeed?: PublicKey;
|
|
33
|
+
config: LiquidConfig;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Builds a buy swap instruction (quote -> base).
|
|
37
|
+
*
|
|
38
|
+
* @param params - {@link BuildSwapBuyParams}
|
|
39
|
+
* @returns Transaction instruction
|
|
40
|
+
*/
|
|
41
|
+
export declare function buildSwapBuy(params: BuildSwapBuyParams): Promise<TransactionInstruction>;
|
|
42
|
+
export interface BuildSwapSellParams {
|
|
43
|
+
payer: PublicKey;
|
|
44
|
+
creator: PublicKey;
|
|
45
|
+
baseMint: PublicKey;
|
|
46
|
+
quoteMint: PublicKey;
|
|
47
|
+
baseTokenProgram: PublicKey;
|
|
48
|
+
quoteTokenProgram: PublicKey;
|
|
49
|
+
amountIn: BN;
|
|
50
|
+
minimumAmountOut: BN;
|
|
51
|
+
feeRecipient: PublicKey;
|
|
52
|
+
oraclePriceFeed?: PublicKey;
|
|
53
|
+
config: LiquidConfig;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Builds a sell swap instruction (base -> quote).
|
|
57
|
+
*
|
|
58
|
+
* @param params - {@link BuildSwapSellParams}
|
|
59
|
+
* @returns Transaction instruction
|
|
60
|
+
*/
|
|
61
|
+
export declare function buildSwapSell(params: BuildSwapSellParams): Promise<TransactionInstruction>;
|
|
62
|
+
export interface BuildDepositParams {
|
|
63
|
+
owner: PublicKey;
|
|
64
|
+
poolAddress: PublicKey;
|
|
65
|
+
baseMint: PublicKey;
|
|
66
|
+
quoteMint: PublicKey;
|
|
67
|
+
baseTokenProgram: PublicKey;
|
|
68
|
+
quoteTokenProgram: PublicKey;
|
|
69
|
+
baseVault: PublicKey;
|
|
70
|
+
quoteVault: PublicKey;
|
|
71
|
+
lpMint: PublicKey;
|
|
72
|
+
lpTokenAmount: BN;
|
|
73
|
+
maximumBaseAmount: BN;
|
|
74
|
+
maximumQuoteAmount: BN;
|
|
75
|
+
config: LiquidConfig;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Builds a deposit (add liquidity) instruction.
|
|
79
|
+
*
|
|
80
|
+
* @param params - {@link BuildDepositParams}
|
|
81
|
+
* @returns Transaction instruction
|
|
82
|
+
*/
|
|
83
|
+
export declare function buildDeposit(params: BuildDepositParams): Promise<TransactionInstruction>;
|
|
84
|
+
export interface BuildWithdrawParams {
|
|
85
|
+
owner: PublicKey;
|
|
86
|
+
poolAddress: PublicKey;
|
|
87
|
+
baseMint: PublicKey;
|
|
88
|
+
quoteMint: PublicKey;
|
|
89
|
+
baseTokenProgram: PublicKey;
|
|
90
|
+
quoteTokenProgram: PublicKey;
|
|
91
|
+
baseVault: PublicKey;
|
|
92
|
+
quoteVault: PublicKey;
|
|
93
|
+
lpMint: PublicKey;
|
|
94
|
+
lpTokenAmount: BN;
|
|
95
|
+
minimumBaseAmount: BN;
|
|
96
|
+
minimumQuoteAmount: BN;
|
|
97
|
+
config: LiquidConfig;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Builds a withdraw (remove liquidity) instruction.
|
|
101
|
+
*
|
|
102
|
+
* @param params - {@link BuildWithdrawParams}
|
|
103
|
+
* @returns Transaction instruction
|
|
104
|
+
*/
|
|
105
|
+
export declare function buildWithdraw(params: BuildWithdrawParams): Promise<TransactionInstruction>;
|
|
106
|
+
export interface BuildSwapExecuteBuybackParams {
|
|
107
|
+
payer: PublicKey;
|
|
108
|
+
baseMint: PublicKey;
|
|
109
|
+
quoteMint: PublicKey;
|
|
110
|
+
baseTokenProgram: PublicKey;
|
|
111
|
+
quoteTokenProgram: PublicKey;
|
|
112
|
+
config: LiquidConfig;
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Builds an executeBuyback instruction for an AMM pool.
|
|
116
|
+
* Permissionless. Only works when fee config is Revoked.
|
|
117
|
+
*
|
|
118
|
+
* @param params - {@link BuildSwapExecuteBuybackParams}
|
|
119
|
+
* @returns Transaction instruction
|
|
120
|
+
*/
|
|
121
|
+
export declare function buildSwapExecuteBuyback(params: BuildSwapExecuteBuybackParams): Promise<TransactionInstruction>;
|
|
122
|
+
//# sourceMappingURL=liquid-swap.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"liquid-swap.d.ts","sourceRoot":"","sources":["../../src/instructions/liquid-swap.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
import { getAssociatedTokenAddressSync, TOKEN_PROGRAM_ID, } from "@solana/spl-token";
|
|
2
|
+
import { getCachedSwapProgram } from "./program-cache.js";
|
|
3
|
+
/**
|
|
4
|
+
* Builds a create pool instruction.
|
|
5
|
+
*
|
|
6
|
+
* @param params - {@link BuildCreatePoolParams}
|
|
7
|
+
* @returns Transaction instruction
|
|
8
|
+
*/
|
|
9
|
+
export function buildCreatePool(params) {
|
|
10
|
+
const { signer, payer, baseMint, quoteMint, baseTokenProgram, quoteTokenProgram, initAmountBase, initAmountQuote, config, } = params;
|
|
11
|
+
const program = getCachedSwapProgram(config);
|
|
12
|
+
const creatorBase = getAssociatedTokenAddressSync(baseMint, signer, false, baseTokenProgram);
|
|
13
|
+
const creatorQuote = getAssociatedTokenAddressSync(quoteMint, signer, false, quoteTokenProgram);
|
|
14
|
+
return program.methods
|
|
15
|
+
.create(initAmountBase, initAmountQuote, null)
|
|
16
|
+
.accounts({
|
|
17
|
+
signer,
|
|
18
|
+
payer: payer ?? signer,
|
|
19
|
+
baseMint,
|
|
20
|
+
quoteMint,
|
|
21
|
+
creatorBase,
|
|
22
|
+
creatorQuote,
|
|
23
|
+
baseTokenProgram,
|
|
24
|
+
quoteTokenProgram,
|
|
25
|
+
})
|
|
26
|
+
.instruction();
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Builds a buy swap instruction (quote -> base).
|
|
30
|
+
*
|
|
31
|
+
* @param params - {@link BuildSwapBuyParams}
|
|
32
|
+
* @returns Transaction instruction
|
|
33
|
+
*/
|
|
34
|
+
export function buildSwapBuy(params) {
|
|
35
|
+
const { payer, creator, baseMint, quoteMint, baseTokenProgram, quoteTokenProgram, maxAmountIn, amountOut, feeRecipient, oraclePriceFeed, config, } = params;
|
|
36
|
+
const program = getCachedSwapProgram(config);
|
|
37
|
+
const baseTokenAccount = getAssociatedTokenAddressSync(baseMint, payer, false, baseTokenProgram);
|
|
38
|
+
const quoteTokenAccount = getAssociatedTokenAddressSync(quoteMint, payer, false, quoteTokenProgram);
|
|
39
|
+
return program.methods
|
|
40
|
+
.buy(maxAmountIn, amountOut)
|
|
41
|
+
.accountsPartial({
|
|
42
|
+
payer,
|
|
43
|
+
creator,
|
|
44
|
+
baseTokenAccount,
|
|
45
|
+
quoteTokenAccount,
|
|
46
|
+
baseTokenProgram,
|
|
47
|
+
quoteTokenProgram,
|
|
48
|
+
baseMint,
|
|
49
|
+
quoteMint,
|
|
50
|
+
feeRecipient,
|
|
51
|
+
liquidState: {
|
|
52
|
+
user: payer,
|
|
53
|
+
tokenMint: baseMint,
|
|
54
|
+
},
|
|
55
|
+
...(oraclePriceFeed ? { oraclePriceFeed } : {}),
|
|
56
|
+
})
|
|
57
|
+
.instruction();
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Builds a sell swap instruction (base -> quote).
|
|
61
|
+
*
|
|
62
|
+
* @param params - {@link BuildSwapSellParams}
|
|
63
|
+
* @returns Transaction instruction
|
|
64
|
+
*/
|
|
65
|
+
export function buildSwapSell(params) {
|
|
66
|
+
const { payer, creator, baseMint, quoteMint, baseTokenProgram, quoteTokenProgram, amountIn, minimumAmountOut, feeRecipient, oraclePriceFeed, config, } = params;
|
|
67
|
+
const program = getCachedSwapProgram(config);
|
|
68
|
+
const baseTokenAccount = getAssociatedTokenAddressSync(baseMint, payer, false, baseTokenProgram);
|
|
69
|
+
const quoteTokenAccount = getAssociatedTokenAddressSync(quoteMint, payer, false, quoteTokenProgram);
|
|
70
|
+
return program.methods
|
|
71
|
+
.sell(amountIn, minimumAmountOut)
|
|
72
|
+
.accountsPartial({
|
|
73
|
+
payer,
|
|
74
|
+
creator,
|
|
75
|
+
baseTokenAccount,
|
|
76
|
+
quoteTokenAccount,
|
|
77
|
+
baseTokenProgram,
|
|
78
|
+
quoteTokenProgram,
|
|
79
|
+
baseMint,
|
|
80
|
+
quoteMint,
|
|
81
|
+
feeRecipient,
|
|
82
|
+
liquidState: {
|
|
83
|
+
user: payer,
|
|
84
|
+
tokenMint: baseMint,
|
|
85
|
+
},
|
|
86
|
+
...(oraclePriceFeed ? { oraclePriceFeed } : {}),
|
|
87
|
+
})
|
|
88
|
+
.instruction();
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Builds a deposit (add liquidity) instruction.
|
|
92
|
+
*
|
|
93
|
+
* @param params - {@link BuildDepositParams}
|
|
94
|
+
* @returns Transaction instruction
|
|
95
|
+
*/
|
|
96
|
+
export function buildDeposit(params) {
|
|
97
|
+
const { owner, poolAddress, baseMint, quoteMint, baseTokenProgram, quoteTokenProgram, baseVault, quoteVault, lpMint, lpTokenAmount, maximumBaseAmount, maximumQuoteAmount, config, } = params;
|
|
98
|
+
const program = getCachedSwapProgram(config);
|
|
99
|
+
const ownerLpToken = getAssociatedTokenAddressSync(lpMint, owner, false, TOKEN_PROGRAM_ID);
|
|
100
|
+
const baseAccount = getAssociatedTokenAddressSync(baseMint, owner, false, baseTokenProgram);
|
|
101
|
+
const quoteAccount = getAssociatedTokenAddressSync(quoteMint, owner, false, quoteTokenProgram);
|
|
102
|
+
return program.methods
|
|
103
|
+
.deposit(lpTokenAmount, maximumBaseAmount, maximumQuoteAmount)
|
|
104
|
+
.accounts({
|
|
105
|
+
owner,
|
|
106
|
+
poolState: poolAddress,
|
|
107
|
+
ownerLpToken,
|
|
108
|
+
baseAccount,
|
|
109
|
+
quoteAccount,
|
|
110
|
+
baseMint,
|
|
111
|
+
quoteMint,
|
|
112
|
+
baseVault,
|
|
113
|
+
quoteVault,
|
|
114
|
+
lpMint,
|
|
115
|
+
})
|
|
116
|
+
.instruction();
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Builds a withdraw (remove liquidity) instruction.
|
|
120
|
+
*
|
|
121
|
+
* @param params - {@link BuildWithdrawParams}
|
|
122
|
+
* @returns Transaction instruction
|
|
123
|
+
*/
|
|
124
|
+
export function buildWithdraw(params) {
|
|
125
|
+
const { owner, poolAddress, baseMint, quoteMint, baseTokenProgram, quoteTokenProgram, baseVault, quoteVault, lpMint, lpTokenAmount, minimumBaseAmount, minimumQuoteAmount, config, } = params;
|
|
126
|
+
const program = getCachedSwapProgram(config);
|
|
127
|
+
const ownerLpToken = getAssociatedTokenAddressSync(lpMint, owner, false, TOKEN_PROGRAM_ID);
|
|
128
|
+
const baseAccount = getAssociatedTokenAddressSync(baseMint, owner, false, baseTokenProgram);
|
|
129
|
+
const quoteAccount = getAssociatedTokenAddressSync(quoteMint, owner, false, quoteTokenProgram);
|
|
130
|
+
return program.methods
|
|
131
|
+
.withdraw(lpTokenAmount, minimumBaseAmount, minimumQuoteAmount)
|
|
132
|
+
.accounts({
|
|
133
|
+
owner,
|
|
134
|
+
poolState: poolAddress,
|
|
135
|
+
ownerLpToken,
|
|
136
|
+
baseAccount,
|
|
137
|
+
quoteAccount,
|
|
138
|
+
baseMint,
|
|
139
|
+
quoteMint,
|
|
140
|
+
baseVault,
|
|
141
|
+
quoteVault,
|
|
142
|
+
lpMint,
|
|
143
|
+
})
|
|
144
|
+
.instruction();
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Builds an executeBuyback instruction for an AMM pool.
|
|
148
|
+
* Permissionless. Only works when fee config is Revoked.
|
|
149
|
+
*
|
|
150
|
+
* @param params - {@link BuildSwapExecuteBuybackParams}
|
|
151
|
+
* @returns Transaction instruction
|
|
152
|
+
*/
|
|
153
|
+
export function buildSwapExecuteBuyback(params) {
|
|
154
|
+
const { payer, baseMint, quoteMint, baseTokenProgram, quoteTokenProgram, config, } = params;
|
|
155
|
+
const program = getCachedSwapProgram(config);
|
|
156
|
+
return program.methods
|
|
157
|
+
.executeBuyback()
|
|
158
|
+
.accounts({
|
|
159
|
+
payer,
|
|
160
|
+
baseMint,
|
|
161
|
+
quoteMint,
|
|
162
|
+
baseTokenProgram,
|
|
163
|
+
quoteTokenProgram,
|
|
164
|
+
})
|
|
165
|
+
.instruction();
|
|
166
|
+
}
|
|
167
|
+
//# sourceMappingURL=liquid-swap.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"liquid-swap.js","sourceRoot":"","sources":["../../src/instructions/liquid-swap.ts"],"names":[],"mappings":"AACA,OAAO,EACN,6BAA6B,EAC7B,gBAAgB,GAChB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAc1D;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAC9B,MAA6B;IAE7B,MAAM,EACL,MAAM,EACN,KAAK,EACL,QAAQ,EACR,SAAS,EACT,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,MAAM,GACN,GAAG,MAAM,CAAC;IAEX,MAAM,OAAO,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAE7C,MAAM,WAAW,GAAG,6BAA6B,CAChD,QAAQ,EACR,MAAM,EACN,KAAK,EACL,gBAAgB,CAChB,CAAC;IACF,MAAM,YAAY,GAAG,6BAA6B,CACjD,SAAS,EACT,MAAM,EACN,KAAK,EACL,iBAAiB,CACjB,CAAC;IAEF,OAAO,OAAO,CAAC,OAAO;SACpB,MAAM,CAAC,cAAc,EAAE,eAAe,EAAE,IAAI,CAAC;SAC7C,QAAQ,CAAC;QACT,MAAM;QACN,KAAK,EAAE,KAAK,IAAI,MAAM;QACtB,QAAQ;QACR,SAAS;QACT,WAAW;QACX,YAAY;QACZ,gBAAgB;QAChB,iBAAiB;KACjB,CAAC;SACD,WAAW,EAAE,CAAC;AACjB,CAAC;AAgBD;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAC3B,MAA0B;IAE1B,MAAM,EACL,KAAK,EACL,OAAO,EACP,QAAQ,EACR,SAAS,EACT,gBAAgB,EAChB,iBAAiB,EACjB,WAAW,EACX,SAAS,EACT,YAAY,EACZ,eAAe,EACf,MAAM,GACN,GAAG,MAAM,CAAC;IAEX,MAAM,OAAO,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAE7C,MAAM,gBAAgB,GAAG,6BAA6B,CACrD,QAAQ,EACR,KAAK,EACL,KAAK,EACL,gBAAgB,CAChB,CAAC;IACF,MAAM,iBAAiB,GAAG,6BAA6B,CACtD,SAAS,EACT,KAAK,EACL,KAAK,EACL,iBAAiB,CACjB,CAAC;IACF,OAAO,OAAO,CAAC,OAAO;SACpB,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC;SAC3B,eAAe,CAAC;QAChB,KAAK;QACL,OAAO;QACP,gBAAgB;QAChB,iBAAiB;QACjB,gBAAgB;QAChB,iBAAiB;QACjB,QAAQ;QACR,SAAS;QACT,YAAY;QACZ,WAAW,EAAE;YACZ,IAAI,EAAE,KAAK;YACX,SAAS,EAAE,QAAQ;SACnB;QACD,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC/C,CAAC;SACD,WAAW,EAAE,CAAC;AACjB,CAAC;AAgBD;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAC5B,MAA2B;IAE3B,MAAM,EACL,KAAK,EACL,OAAO,EACP,QAAQ,EACR,SAAS,EACT,gBAAgB,EAChB,iBAAiB,EACjB,QAAQ,EACR,gBAAgB,EAChB,YAAY,EACZ,eAAe,EACf,MAAM,GACN,GAAG,MAAM,CAAC;IAEX,MAAM,OAAO,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAE7C,MAAM,gBAAgB,GAAG,6BAA6B,CACrD,QAAQ,EACR,KAAK,EACL,KAAK,EACL,gBAAgB,CAChB,CAAC;IACF,MAAM,iBAAiB,GAAG,6BAA6B,CACtD,SAAS,EACT,KAAK,EACL,KAAK,EACL,iBAAiB,CACjB,CAAC;IACF,OAAO,OAAO,CAAC,OAAO;SACpB,IAAI,CAAC,QAAQ,EAAE,gBAAgB,CAAC;SAChC,eAAe,CAAC;QAChB,KAAK;QACL,OAAO;QACP,gBAAgB;QAChB,iBAAiB;QACjB,gBAAgB;QAChB,iBAAiB;QACjB,QAAQ;QACR,SAAS;QACT,YAAY;QACZ,WAAW,EAAE;YACZ,IAAI,EAAE,KAAK;YACX,SAAS,EAAE,QAAQ;SACnB;QACD,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC/C,CAAC;SACD,WAAW,EAAE,CAAC;AACjB,CAAC;AAkBD;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAC3B,MAA0B;IAE1B,MAAM,EACL,KAAK,EACL,WAAW,EACX,QAAQ,EACR,SAAS,EACT,gBAAgB,EAChB,iBAAiB,EACjB,SAAS,EACT,UAAU,EACV,MAAM,EACN,aAAa,EACb,iBAAiB,EACjB,kBAAkB,EAClB,MAAM,GACN,GAAG,MAAM,CAAC;IAEX,MAAM,OAAO,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAE7C,MAAM,YAAY,GAAG,6BAA6B,CACjD,MAAM,EACN,KAAK,EACL,KAAK,EACL,gBAAgB,CAChB,CAAC;IACF,MAAM,WAAW,GAAG,6BAA6B,CAChD,QAAQ,EACR,KAAK,EACL,KAAK,EACL,gBAAgB,CAChB,CAAC;IACF,MAAM,YAAY,GAAG,6BAA6B,CACjD,SAAS,EACT,KAAK,EACL,KAAK,EACL,iBAAiB,CACjB,CAAC;IAEF,OAAO,OAAO,CAAC,OAAO;SACpB,OAAO,CAAC,aAAa,EAAE,iBAAiB,EAAE,kBAAkB,CAAC;SAC7D,QAAQ,CAAC;QACT,KAAK;QACL,SAAS,EAAE,WAAW;QACtB,YAAY;QACZ,WAAW;QACX,YAAY;QACZ,QAAQ;QACR,SAAS;QACT,SAAS;QACT,UAAU;QACV,MAAM;KACN,CAAC;SACD,WAAW,EAAE,CAAC;AACjB,CAAC;AAkBD;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAC5B,MAA2B;IAE3B,MAAM,EACL,KAAK,EACL,WAAW,EACX,QAAQ,EACR,SAAS,EACT,gBAAgB,EAChB,iBAAiB,EACjB,SAAS,EACT,UAAU,EACV,MAAM,EACN,aAAa,EACb,iBAAiB,EACjB,kBAAkB,EAClB,MAAM,GACN,GAAG,MAAM,CAAC;IAEX,MAAM,OAAO,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAE7C,MAAM,YAAY,GAAG,6BAA6B,CACjD,MAAM,EACN,KAAK,EACL,KAAK,EACL,gBAAgB,CAChB,CAAC;IACF,MAAM,WAAW,GAAG,6BAA6B,CAChD,QAAQ,EACR,KAAK,EACL,KAAK,EACL,gBAAgB,CAChB,CAAC;IACF,MAAM,YAAY,GAAG,6BAA6B,CACjD,SAAS,EACT,KAAK,EACL,KAAK,EACL,iBAAiB,CACjB,CAAC;IAEF,OAAO,OAAO,CAAC,OAAO;SACpB,QAAQ,CAAC,aAAa,EAAE,iBAAiB,EAAE,kBAAkB,CAAC;SAC9D,QAAQ,CAAC;QACT,KAAK;QACL,SAAS,EAAE,WAAW;QACtB,YAAY;QACZ,WAAW;QACX,YAAY;QACZ,QAAQ;QACR,SAAS;QACT,SAAS;QACT,UAAU;QACV,MAAM;KACN,CAAC;SACD,WAAW,EAAE,CAAC;AACjB,CAAC;AAWD;;;;;;GAMG;AACH,MAAM,UAAU,uBAAuB,CACtC,MAAqC;IAErC,MAAM,EACL,KAAK,EACL,QAAQ,EACR,SAAS,EACT,gBAAgB,EAChB,iBAAiB,EACjB,MAAM,GACN,GAAG,MAAM,CAAC;IACX,MAAM,OAAO,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAE7C,OAAO,OAAO,CAAC,OAAO;SACpB,cAAc,EAAE;SAChB,QAAQ,CAAC;QACT,KAAK;QACL,QAAQ;QACR,SAAS;QACT,gBAAgB;QAChB,iBAAiB;KACjB,CAAC;SACD,WAAW,EAAE,CAAC;AACjB,CAAC"}
|