@interest-protocol/blast-migrators-sdk 0.0.0-stage → 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.
@@ -0,0 +1,376 @@
1
+ import { normalizeNativeTransactionPosition } from "@interest-protocol/blast-core/events";
2
+ import { requireU64 } from "@interest-protocol/blast-core/integers";
3
+ import { createLaunchpadEventProjection, reduceLaunchpadEvent, } from "@interest-protocol/blast-launchpad-sdk/reducer";
4
+ import { normalizeSuiAddress, normalizeSuiObjectId, toHex, } from "@mysten/sui/utils";
5
+ import { migratorEventId, migratorEventSpecs } from "./events.js";
6
+ export function createMigratorEventProjection() {
7
+ return {
8
+ appliedEventIds: {},
9
+ eventCounts: Object.fromEntries(Object.keys(migratorEventSpecs).map((kind) => [kind, 0])),
10
+ vaults: {},
11
+ rounds: {},
12
+ lpFeePolicy: {
13
+ defaultShares: { memeBps: 0n, quoteBps: 0n },
14
+ coinShares: {},
15
+ protocolDestination: null,
16
+ },
17
+ cetusPoolReservations: {},
18
+ };
19
+ }
20
+ export function createLaunchpadProductProjection() {
21
+ return {
22
+ launchpad: createLaunchpadEventProjection(),
23
+ migrators: createMigratorEventProjection(),
24
+ native: {
25
+ appliedFactIds: {},
26
+ packagePublications: {},
27
+ creatorCapOwners: {},
28
+ returnedCoinRecipients: {},
29
+ },
30
+ };
31
+ }
32
+ export function reduceMigratorEvent(state, event) {
33
+ const eventId = migratorEventId(event);
34
+ if (state.appliedEventIds[eventId])
35
+ return state;
36
+ const next = {
37
+ ...state,
38
+ appliedEventIds: { ...state.appliedEventIds, [eventId]: true },
39
+ eventCounts: {
40
+ ...state.eventCounts,
41
+ [event.kind]: state.eventCounts[event.kind] + 1,
42
+ },
43
+ };
44
+ switch (event.kind) {
45
+ case "VaultCreated": {
46
+ const payload = event.payload;
47
+ return {
48
+ ...next,
49
+ vaults: {
50
+ ...state.vaults,
51
+ [payload.vault_id]: {
52
+ vaultId: payload.vault_id,
53
+ launchId: null,
54
+ poolId: payload.pool_id,
55
+ positionId: payload.position_id,
56
+ autoLpPositionId: null,
57
+ venueType: payload.venue,
58
+ memeType: payload.meme,
59
+ quoteType: payload.quote,
60
+ feeSplit: payload.fee_split,
61
+ creatorMeme: 0n,
62
+ creatorQuote: 0n,
63
+ autoLpMeme: 0n,
64
+ autoLpQuote: 0n,
65
+ rewardsMeme: 0n,
66
+ rewardsQuote: 0n,
67
+ burnQuote: 0n,
68
+ protocolMemeResidual: payload.residual_meme,
69
+ protocolQuoteResidual: payload.residual_quote,
70
+ liquidity: payload.liquidity,
71
+ nextRound: 0n,
72
+ lastCheckpoint: null,
73
+ protocolMemePaid: 0n,
74
+ protocolQuotePaid: 0n,
75
+ protocolMemeHeld: 0n,
76
+ protocolQuoteHeld: 0n,
77
+ partnerMemePaid: 0n,
78
+ partnerQuotePaid: 0n,
79
+ },
80
+ },
81
+ };
82
+ }
83
+ case "FeesCollected": {
84
+ const payload = event.payload;
85
+ return updateVault(next, payload.vault_id, (vault) => ({
86
+ ...vault,
87
+ creatorMeme: vault.creatorMeme + payload.creator_meme,
88
+ creatorQuote: vault.creatorQuote + payload.creator_quote,
89
+ autoLpMeme: vault.autoLpMeme + payload.auto_lp_meme,
90
+ autoLpQuote: vault.autoLpQuote + payload.auto_lp_quote,
91
+ rewardsMeme: vault.rewardsMeme + payload.rewards_meme,
92
+ rewardsQuote: vault.rewardsQuote + payload.rewards_quote,
93
+ burnQuote: vault.burnQuote + payload.burn_quote,
94
+ // A partnered vault holds Blast's share: no destination was paid.
95
+ ...(payload.protocol_destination === null
96
+ ? {
97
+ protocolMemeHeld: vault.protocolMemeHeld + payload.protocol_meme,
98
+ protocolQuoteHeld: vault.protocolQuoteHeld + payload.protocol_quote,
99
+ }
100
+ : {
101
+ protocolMemePaid: vault.protocolMemePaid + payload.protocol_meme,
102
+ protocolQuotePaid: vault.protocolQuotePaid + payload.protocol_quote,
103
+ }),
104
+ }));
105
+ }
106
+ case "ProtocolLpFeesClaimed": {
107
+ const payload = event.payload;
108
+ return updateVault(next, payload.vault_id, (vault) => ({
109
+ ...vault,
110
+ protocolMemeHeld: 0n,
111
+ protocolQuoteHeld: 0n,
112
+ protocolMemePaid: vault.protocolMemePaid + payload.protocol_meme,
113
+ protocolQuotePaid: vault.protocolQuotePaid + payload.protocol_quote,
114
+ partnerMemePaid: vault.partnerMemePaid + payload.partner_meme,
115
+ partnerQuotePaid: vault.partnerQuotePaid + payload.partner_quote,
116
+ }));
117
+ }
118
+ case "AutoLiquidityAdded": {
119
+ const payload = event.payload;
120
+ return updateVault(next, payload.vault_id, (vault) => ({
121
+ ...vault,
122
+ autoLpMeme: payload.meme_pending,
123
+ autoLpQuote: payload.quote_pending,
124
+ }));
125
+ }
126
+ case "BuybackBurned": {
127
+ const payload = event.payload;
128
+ return updateVault(next, payload.vault_id, (vault) => ({
129
+ ...vault,
130
+ burnQuote: payload.quote_pending,
131
+ }));
132
+ }
133
+ case "AutoLpPositionOpened": {
134
+ const payload = event.payload;
135
+ return updateVault(next, payload.vault_id, (vault) => ({
136
+ ...vault,
137
+ autoLpPositionId: payload.position_id,
138
+ }));
139
+ }
140
+ case "FeeSplitChanged": {
141
+ const payload = event.payload;
142
+ return updateVault(next, payload.vault_id, (vault) => ({
143
+ ...vault,
144
+ feeSplit: payload.new_fee_split,
145
+ }));
146
+ }
147
+ case "CreatorFeesClaimed":
148
+ return updateVault(next, event.payload.vault_id, (vault) => ({
149
+ ...vault,
150
+ creatorMeme: 0n,
151
+ creatorQuote: 0n,
152
+ }));
153
+ case "ProtocolFeesClaimed":
154
+ return updateVault(next, event.payload.vault_id, (vault) => ({
155
+ ...vault,
156
+ protocolMemeResidual: 0n,
157
+ protocolQuoteResidual: 0n,
158
+ }));
159
+ case "RoundPublished": {
160
+ const payload = event.payload;
161
+ const updated = updateVault(next, payload.vault_id, (vault) => ({
162
+ ...vault,
163
+ rewardsMeme: payload.meme_unallocated,
164
+ rewardsQuote: payload.quote_unallocated,
165
+ nextRound: payload.number + 1n,
166
+ lastCheckpoint: payload.end_checkpoint,
167
+ }));
168
+ return {
169
+ ...updated,
170
+ rounds: {
171
+ ...state.rounds,
172
+ [payload.round_id]: {
173
+ roundId: payload.round_id,
174
+ vaultId: payload.vault_id,
175
+ number: payload.number,
176
+ startCheckpoint: payload.start_checkpoint,
177
+ endCheckpoint: payload.end_checkpoint,
178
+ root: toHex(payload.root),
179
+ manifestDigest: toHex(payload.manifest_digest),
180
+ leafCount: payload.leaf_count,
181
+ memeRemaining: payload.meme_amount,
182
+ quoteRemaining: payload.quote_amount,
183
+ paidIndexes: {},
184
+ },
185
+ },
186
+ };
187
+ }
188
+ case "RewardPaid": {
189
+ const payload = event.payload;
190
+ const round = state.rounds[payload.round_id];
191
+ if (!round)
192
+ return next;
193
+ return {
194
+ ...next,
195
+ rounds: {
196
+ ...state.rounds,
197
+ [payload.round_id]: {
198
+ ...round,
199
+ memeRemaining: payload.meme_remaining,
200
+ quoteRemaining: payload.quote_remaining,
201
+ paidIndexes: {
202
+ ...round.paidIndexes,
203
+ [payload.index.toString()]: true,
204
+ },
205
+ },
206
+ },
207
+ };
208
+ }
209
+ case "LpFeePolicyChanged": {
210
+ const payload = event.payload;
211
+ const pair = payload.new_meme_bps === null || payload.new_quote_bps === null
212
+ ? null
213
+ : { memeBps: payload.new_meme_bps, quoteBps: payload.new_quote_bps };
214
+ if (payload.meme === null) {
215
+ if (!pair)
216
+ return next;
217
+ return {
218
+ ...next,
219
+ lpFeePolicy: { ...state.lpFeePolicy, defaultShares: pair },
220
+ };
221
+ }
222
+ const coinShares = { ...state.lpFeePolicy.coinShares };
223
+ if (pair)
224
+ coinShares[payload.meme] = pair;
225
+ else
226
+ delete coinShares[payload.meme];
227
+ return { ...next, lpFeePolicy: { ...state.lpFeePolicy, coinShares } };
228
+ }
229
+ case "LpFeeDestinationChanged":
230
+ return {
231
+ ...next,
232
+ lpFeePolicy: {
233
+ ...state.lpFeePolicy,
234
+ protocolDestination: event.payload.new_destination,
235
+ },
236
+ };
237
+ case "CetusPoolReserved": {
238
+ const payload = event.payload;
239
+ return {
240
+ ...next,
241
+ cetusPoolReservations: {
242
+ ...state.cetusPoolReservations,
243
+ [payload.meme]: {
244
+ memeType: payload.meme,
245
+ quoteType: payload.quote,
246
+ poolCreationCapId: payload.pool_creation_cap_id,
247
+ tickSpacing: payload.tick_spacing,
248
+ },
249
+ },
250
+ };
251
+ }
252
+ }
253
+ }
254
+ export function reduceLaunchpadProductInput(state, input) {
255
+ if (input.source === "launchpad") {
256
+ const launchpad = reduceLaunchpadEvent(state.launchpad, input);
257
+ return launchpad === state.launchpad ? state : { ...state, launchpad };
258
+ }
259
+ if (input.source === "migrators") {
260
+ const migrators = reduceMigratorEvent(state.migrators, input);
261
+ if (migrators === state.migrators)
262
+ return state;
263
+ if (input.kind !== "VaultCreated")
264
+ return { ...state, migrators };
265
+ return {
266
+ ...state,
267
+ migrators: linkVaultLaunch(migrators, state.launchpad, input.payload),
268
+ };
269
+ }
270
+ const native = reduceNativeFact(state.native, input);
271
+ return native === state.native ? state : { ...state, native };
272
+ }
273
+ function reduceNativeFact(state, fact) {
274
+ const normalized = normalizeNativeFact(fact);
275
+ const factId = nativeFactId(normalized);
276
+ if (state.appliedFactIds[factId])
277
+ return state;
278
+ const next = {
279
+ ...state,
280
+ appliedFactIds: { ...state.appliedFactIds, [factId]: true },
281
+ };
282
+ switch (normalized.kind) {
283
+ case "packagePublication":
284
+ return {
285
+ ...next,
286
+ packagePublications: {
287
+ ...state.packagePublications,
288
+ [normalized.packageId]: normalized,
289
+ },
290
+ };
291
+ case "creatorCapOwnership":
292
+ return {
293
+ ...next,
294
+ creatorCapOwners: {
295
+ ...state.creatorCapOwners,
296
+ [normalized.creatorCapId]: {
297
+ source: "objectOwnership",
298
+ checkpoint: normalized.checkpoint,
299
+ owner: normalized.owner,
300
+ },
301
+ },
302
+ };
303
+ case "returnedCoinRecipients":
304
+ return {
305
+ ...next,
306
+ returnedCoinRecipients: {
307
+ ...state.returnedCoinRecipients,
308
+ [factId]: normalized,
309
+ },
310
+ };
311
+ }
312
+ }
313
+ /**
314
+ * The migration transaction migrates the launch (`Migrated`) before it
315
+ * attaches the vault (`VaultCreated`). One launch exists per Meme type, so the
316
+ * launch of the vault's Meme type is the vault's launch.
317
+ */
318
+ function linkVaultLaunch(state, launchpad, payload) {
319
+ const launch = Object.values(launchpad.launches).find((candidate) => candidate.memeType === payload.meme &&
320
+ candidate.quoteType === payload.quote);
321
+ if (!launch)
322
+ return state;
323
+ return updateVault(state, payload.vault_id, (current) => ({
324
+ ...current,
325
+ launchId: launch.launchId,
326
+ }));
327
+ }
328
+ function updateVault(state, vaultId, update) {
329
+ const vault = state.vaults[vaultId];
330
+ if (!vault)
331
+ return state;
332
+ return { ...state, vaults: { ...state.vaults, [vaultId]: update(vault) } };
333
+ }
334
+ function normalizeNativeFact(fact) {
335
+ if (fact.kind === "creatorCapOwnership") {
336
+ requireU64("creator-cap ownership checkpoint", fact.checkpoint);
337
+ return {
338
+ ...fact,
339
+ creatorCapId: normalizeSuiObjectId(fact.creatorCapId),
340
+ owner: normalizeSuiAddress(fact.owner),
341
+ };
342
+ }
343
+ const position = normalizeNativeTransactionPosition(fact.position, "native fact");
344
+ if (fact.kind === "packagePublication") {
345
+ return {
346
+ ...fact,
347
+ position,
348
+ packageId: normalizeSuiObjectId(fact.packageId),
349
+ createdObjectIds: fact.createdObjectIds.map((id) => normalizeSuiObjectId(id)),
350
+ };
351
+ }
352
+ const coins = {
353
+ position,
354
+ memeCoin: normalizeReturnedCoin(fact.memeCoin),
355
+ quoteCoin: normalizeReturnedCoin(fact.quoteCoin),
356
+ };
357
+ return fact.claim === "launchProtocolFees"
358
+ ? { ...fact, ...coins, suiCoin: normalizeReturnedCoin(fact.suiCoin) }
359
+ : { ...fact, ...coins };
360
+ }
361
+ function normalizeReturnedCoin(coin) {
362
+ return {
363
+ objectId: normalizeSuiObjectId(coin.objectId),
364
+ recipient: normalizeSuiAddress(coin.recipient),
365
+ };
366
+ }
367
+ function nativeFactId(fact) {
368
+ if (fact.kind === "creatorCapOwnership") {
369
+ return `${fact.checkpoint}:ownership:${fact.creatorCapId}`;
370
+ }
371
+ if (fact.kind === "returnedCoinRecipients") {
372
+ return `${fact.position.transactionDigest}:${fact.kind}:${fact.memeCoin.objectId}:${fact.quoteCoin.objectId}`;
373
+ }
374
+ return `${fact.position.transactionDigest}:${fact.kind}:${fact.packageId}`;
375
+ }
376
+ //# sourceMappingURL=reducer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reducer.js","sourceRoot":"","sources":["../src/reducer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,166 @@
1
+ import type { SharedObjectReference } from "@interest-protocol/blast-core/sui";
2
+ import type { FeeSplit } from "@interest-protocol/blast-launchpad-sdk/allocation";
3
+ import type { ClientWithCoreApi } from "@mysten/sui/client";
4
+ /** Venues whose adapters the migrators package ships. */
5
+ export declare const MIGRATOR_VENUES: readonly ["bluefin", "cetus"];
6
+ export type MigratorVenue = (typeof MIGRATOR_VENUES)[number];
7
+ export type LaunchMigrationRoute = {
8
+ venue: MigratorVenue;
9
+ tickSpacing: number;
10
+ feeRate: bigint;
11
+ };
12
+ /**
13
+ * Identifies a launch's recorded route from its `migration_witness` (the
14
+ * adapter's `Witness` type, by original package ID) and its pool tier. Rejects
15
+ * a witness from another migrators package or a venue this SDK cannot route.
16
+ */
17
+ export declare function launchMigrationRoute(launch: {
18
+ migrationWitnessType: string;
19
+ poolTickSpacing: number;
20
+ poolFeeRate: bigint;
21
+ }, migratorsOriginalPackageId: string): LaunchMigrationRoute;
22
+ /** BCS layout of `blast_fun_migrators::vault::LpVault<Meme, Quote>`. */
23
+ export declare const lpVaultBcs: import("@mysten/sui/bcs").BcsStruct<{
24
+ id: import("@mysten/sui/bcs").BcsStruct<{
25
+ id: import("@mysten/sui/bcs").BcsStruct<{
26
+ bytes: import("@mysten/sui/bcs").BcsType<string, string | Uint8Array<ArrayBufferLike>, "bytes[32]">;
27
+ }, string>;
28
+ }, string>;
29
+ pool_id: import("@mysten/sui/bcs").BcsStruct<{
30
+ bytes: import("@mysten/sui/bcs").BcsType<string, string | Uint8Array<ArrayBufferLike>, "bytes[32]">;
31
+ }, string>;
32
+ partner_id: import("@mysten/sui/bcs").BcsType<string | null, string | null | undefined, `Option<${string}>`>;
33
+ protocol_meme_residual: import("@mysten/sui/bcs").BcsStruct<{
34
+ value: import("@mysten/sui/bcs").BcsType<string, string | number | bigint, "u64">;
35
+ }, string>;
36
+ protocol_quote_residual: import("@mysten/sui/bcs").BcsStruct<{
37
+ value: import("@mysten/sui/bcs").BcsType<string, string | number | bigint, "u64">;
38
+ }, string>;
39
+ unpaid_protocol_meme: import("@mysten/sui/bcs").BcsStruct<{
40
+ value: import("@mysten/sui/bcs").BcsType<string, string | number | bigint, "u64">;
41
+ }, string>;
42
+ unpaid_protocol_quote: import("@mysten/sui/bcs").BcsStruct<{
43
+ value: import("@mysten/sui/bcs").BcsType<string, string | number | bigint, "u64">;
44
+ }, string>;
45
+ fee_split: import("@mysten/sui/bcs").BcsStruct<{
46
+ creatorBps: import("@mysten/sui/bcs").BcsType<bigint, bigint, string>;
47
+ autoLpBps: import("@mysten/sui/bcs").BcsType<bigint, bigint, string>;
48
+ rewardsBps: import("@mysten/sui/bcs").BcsType<bigint, bigint, string>;
49
+ burnBps: import("@mysten/sui/bcs").BcsType<bigint, bigint, string>;
50
+ recipients: import("@mysten/sui/bcs").BcsType<{
51
+ destination: string;
52
+ bps: bigint;
53
+ }[], Iterable<{
54
+ destination: string;
55
+ bps: bigint;
56
+ }> & {
57
+ length: number;
58
+ }, string>;
59
+ }, string>;
60
+ creator_meme: import("@mysten/sui/bcs").BcsStruct<{
61
+ value: import("@mysten/sui/bcs").BcsType<string, string | number | bigint, "u64">;
62
+ }, string>;
63
+ creator_quote: import("@mysten/sui/bcs").BcsStruct<{
64
+ value: import("@mysten/sui/bcs").BcsType<string, string | number | bigint, "u64">;
65
+ }, string>;
66
+ auto_lp_meme: import("@mysten/sui/bcs").BcsStruct<{
67
+ value: import("@mysten/sui/bcs").BcsType<string, string | number | bigint, "u64">;
68
+ }, string>;
69
+ auto_lp_quote: import("@mysten/sui/bcs").BcsStruct<{
70
+ value: import("@mysten/sui/bcs").BcsType<string, string | number | bigint, "u64">;
71
+ }, string>;
72
+ rewards_meme: import("@mysten/sui/bcs").BcsStruct<{
73
+ value: import("@mysten/sui/bcs").BcsType<string, string | number | bigint, "u64">;
74
+ }, string>;
75
+ rewards_quote: import("@mysten/sui/bcs").BcsStruct<{
76
+ value: import("@mysten/sui/bcs").BcsType<string, string | number | bigint, "u64">;
77
+ }, string>;
78
+ burn_quote: import("@mysten/sui/bcs").BcsStruct<{
79
+ value: import("@mysten/sui/bcs").BcsType<string, string | number | bigint, "u64">;
80
+ }, string>;
81
+ next_round: import("@mysten/sui/bcs").BcsType<string, string | number | bigint, "u64">;
82
+ last_checkpoint: import("@mysten/sui/bcs").BcsType<string | null, string | number | bigint | null | undefined, "Option<u64>">;
83
+ }, string>;
84
+ /** BCS layout of `blast_fun_migrators::lp_fee_policy::SharePair`. */
85
+ export declare const lpFeeSharePairBcs: import("@mysten/sui/bcs").BcsStruct<{
86
+ meme_bps: import("@mysten/sui/bcs").BcsType<bigint, bigint, string>;
87
+ quote_bps: import("@mysten/sui/bcs").BcsType<bigint, bigint, string>;
88
+ }, string>;
89
+ /** BCS layout of `blast_fun_migrators::lp_fee_policy::LpFeePolicy`. */
90
+ export declare const lpFeePolicyBcs: import("@mysten/sui/bcs").BcsStruct<{
91
+ id: import("@mysten/sui/bcs").BcsStruct<{
92
+ id: import("@mysten/sui/bcs").BcsStruct<{
93
+ bytes: import("@mysten/sui/bcs").BcsType<string, string | Uint8Array<ArrayBufferLike>, "bytes[32]">;
94
+ }, string>;
95
+ }, string>;
96
+ destination: import("@mysten/sui/bcs").BcsType<string, string | Uint8Array<ArrayBufferLike>, "bytes[32]">;
97
+ defaults: import("@mysten/sui/bcs").BcsStruct<{
98
+ meme_bps: import("@mysten/sui/bcs").BcsType<bigint, bigint, string>;
99
+ quote_bps: import("@mysten/sui/bcs").BcsType<bigint, bigint, string>;
100
+ }, string>;
101
+ coins: import("@mysten/sui/bcs").BcsStruct<{
102
+ id: import("@mysten/sui/bcs").BcsStruct<{
103
+ id: import("@mysten/sui/bcs").BcsStruct<{
104
+ bytes: import("@mysten/sui/bcs").BcsType<string, string | Uint8Array<ArrayBufferLike>, "bytes[32]">;
105
+ }, string>;
106
+ }, string>;
107
+ size: import("@mysten/sui/bcs").BcsType<string, string | number | bigint, "u64">;
108
+ }, string>;
109
+ }, string>;
110
+ export type LpVaultState = SharedObjectReference<true> & {
111
+ memeType: string;
112
+ quoteType: string;
113
+ poolId: string;
114
+ /** The partner the launch named, paid its cut of Blast's LP fees; null for none. */
115
+ partnerId: string | null;
116
+ /** Protocol-owned migration residuals, claimable by an administrator. */
117
+ protocolMemeResidual: bigint;
118
+ protocolQuoteResidual: bigint;
119
+ /** Blast's LP fees a partnered vault holds until `claimProtocolLpFeesWithPartner`. */
120
+ unpaidProtocolMeme: bigint;
121
+ unpaidProtocolQuote: bigint;
122
+ feeSplit: FeeSplit;
123
+ /** Creator LP fees claimable by the launch's live `CurveFeeCap`. */
124
+ creatorMeme: bigint;
125
+ creatorQuote: bigint;
126
+ /** Auto-LP amounts the pool did not take yet; the next collection retries. */
127
+ autoLpMeme: bigint;
128
+ autoLpQuote: bigint;
129
+ /** Rewards not yet reserved by a holder-reward round. */
130
+ rewardsMeme: bigint;
131
+ rewardsQuote: bigint;
132
+ /** Burn-share Quote waiting for a buyback admin to swap it for Meme to burn. */
133
+ burnQuote: bigint;
134
+ /** Number the next holder-reward round must carry. */
135
+ nextRound: bigint;
136
+ /** Checkpoint the next round must start at; null before the first round. */
137
+ lastCheckpoint: bigint | null;
138
+ };
139
+ export type LpVaultObject = SharedObjectReference<true> & {
140
+ type: string;
141
+ content: Uint8Array;
142
+ };
143
+ export type LpFeeShares = {
144
+ memeBps: bigint;
145
+ quoteBps: bigint;
146
+ };
147
+ export type LpFeePolicyState = SharedObjectReference<false> & {
148
+ /** Address every collection pays Blast's share to. */
149
+ protocolDestination: string;
150
+ defaultShares: LpFeeShares;
151
+ /** Table of per-coin share pairs, keyed by original Meme `TypeName`. */
152
+ coinSharesTableId: string;
153
+ coinSharesCount: bigint;
154
+ };
155
+ export declare function decodeLpVaultObject(object: LpVaultObject, originalPackageId: string): LpVaultState;
156
+ export declare function getLpVault(client: ClientWithCoreApi, objectId: string, originalPackageId: string): Promise<LpVaultState>;
157
+ /** Reads the shared `LpFeePolicy` singleton. */
158
+ export declare function getLpFeePolicy(client: ClientWithCoreApi, objectId: string, originalPackageId: string): Promise<LpFeePolicyState>;
159
+ /**
160
+ * Mirrors `lp_fee_policy::shares<Meme>`: the coin's own pair when an
161
+ * administrator set one, otherwise the default pair. `source` says which.
162
+ */
163
+ export declare function getLpFeeShares(client: ClientWithCoreApi, policy: Pick<LpFeePolicyState, "coinSharesTableId" | "defaultShares">, memeType: string): Promise<LpFeeShares & {
164
+ source: "coin" | "default";
165
+ }>;
166
+ //# sourceMappingURL=state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":"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"}