@interest-protocol/blast-migrators-sdk 0.1.2 → 0.2.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.
Files changed (46) hide show
  1. package/dist/aborts.d.ts +12 -0
  2. package/dist/aborts.d.ts.map +1 -0
  3. package/dist/aborts.js +21 -0
  4. package/dist/aborts.js.map +1 -0
  5. package/dist/client.d.ts +8 -11
  6. package/dist/client.d.ts.map +1 -1
  7. package/dist/client.js +12 -14
  8. package/dist/client.js.map +1 -1
  9. package/dist/events.d.ts +30 -160
  10. package/dist/events.d.ts.map +1 -1
  11. package/dist/events.js +33 -168
  12. package/dist/events.js.map +1 -1
  13. package/dist/index.d.ts +1 -3
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js +1 -3
  16. package/dist/index.js.map +1 -1
  17. package/dist/reducer.d.ts +20 -132
  18. package/dist/reducer.d.ts.map +1 -1
  19. package/dist/reducer.js +28 -361
  20. package/dist/reducer.js.map +1 -1
  21. package/dist/state.d.ts +32 -152
  22. package/dist/state.d.ts.map +1 -1
  23. package/dist/state.js +61 -167
  24. package/dist/state.js.map +1 -1
  25. package/dist/transactions.d.ts +204 -259
  26. package/dist/transactions.d.ts.map +1 -1
  27. package/dist/transactions.js +347 -449
  28. package/dist/transactions.js.map +1 -1
  29. package/package.json +7 -10
  30. package/src/aborts.ts +24 -0
  31. package/src/client.ts +19 -34
  32. package/src/events.ts +54 -261
  33. package/src/index.ts +1 -3
  34. package/src/reducer.ts +46 -538
  35. package/src/state.ts +88 -282
  36. package/src/transactions.ts +569 -838
  37. package/dist/bluefin-pool.d.ts +0 -57
  38. package/dist/bluefin-pool.d.ts.map +0 -1
  39. package/dist/bluefin-pool.js +0 -102
  40. package/dist/bluefin-pool.js.map +0 -1
  41. package/dist/cetus-pool.d.ts +0 -44
  42. package/dist/cetus-pool.d.ts.map +0 -1
  43. package/dist/cetus-pool.js +0 -57
  44. package/dist/cetus-pool.js.map +0 -1
  45. package/src/bluefin-pool.ts +0 -180
  46. package/src/cetus-pool.ts +0 -107
package/dist/reducer.d.ts CHANGED
@@ -1,139 +1,27 @@
1
- import type { NativeTransactionPosition } from "@interest-protocol/blast-core/events";
2
- import type { FeeSplit } from "@interest-protocol/blast-launchpad-sdk/allocation";
3
- import type { DecodedLaunchpadEvent } from "@interest-protocol/blast-launchpad-sdk/events";
4
- import type { LaunchpadEventProjection } from "@interest-protocol/blast-launchpad-sdk/reducer";
5
- import type { DecodedMigratorEvent, MigratorEventKind } from "./events.ts";
6
- export type LpVaultEventProjection = {
7
- vaultId: string;
8
- /** The launch this vault completed, linked by Meme type in the product projection. */
9
- launchId: string | null;
10
- poolId: string;
11
- positionId: string;
12
- /** Separate full-range position Cetus auto-LP adds to; null until first use. */
13
- autoLpPositionId: string | null;
14
- venueType: string;
15
- memeType: string;
16
- quoteType: string;
17
- feeSplit: FeeSplit;
18
- creatorMeme: bigint;
19
- creatorQuote: bigint;
20
- autoLpMeme: bigint;
21
- autoLpQuote: bigint;
22
- rewardsMeme: bigint;
23
- rewardsQuote: bigint;
24
- /** Burn-share Quote waiting for a buyback. */
25
- burnQuote: bigint;
26
- /** Protocol migration residuals the venue returned. */
27
- protocolMemeResidual: bigint;
28
- protocolQuoteResidual: bigint;
29
- /** Liquidity of the migration position. */
30
- liquidity: bigint;
31
- nextRound: bigint;
32
- lastCheckpoint: bigint | null;
33
- /** Cumulative protocol LP-fee payouts. */
34
- protocolMemePaid: bigint;
35
- protocolQuotePaid: bigint;
36
- /** Blast's LP fees a partnered vault holds for its next partner claim. */
37
- protocolMemeHeld: bigint;
38
- protocolQuoteHeld: bigint;
39
- /** Cumulative cut of Blast's LP fees paid to the launch's partner. */
40
- partnerMemePaid: bigint;
41
- partnerQuotePaid: bigint;
42
- };
43
- export type HolderRewardRoundProjection = {
44
- roundId: string;
45
- vaultId: string;
46
- number: bigint;
47
- startCheckpoint: bigint;
48
- endCheckpoint: bigint;
49
- root: string;
50
- manifestDigest: string;
51
- leafCount: bigint;
52
- memeRemaining: bigint;
53
- quoteRemaining: bigint;
54
- paidIndexes: Readonly<Record<string, true>>;
55
- };
56
- export type LpFeePolicyProjection = {
57
- /** Default Meme/Quote shares, once a change is replayed; initialization sets zero/zero. */
58
- defaultShares: {
59
- memeBps: bigint;
60
- quoteBps: bigint;
61
- };
62
- /** Original Meme type keyed pairs that override the defaults. */
63
- coinShares: Readonly<Record<string, {
64
- memeBps: bigint;
65
- quoteBps: bigint;
66
- }>>;
67
- /** Protocol destination once redirected; initialization pays the publisher. */
68
- protocolDestination: string | null;
69
- };
70
- export type CetusPoolReservationProjection = {
71
- memeType: string;
1
+ import type { DecodedMigratorsEvent } from "./events.ts";
2
+ import type { BluefinPoolTier } from "./state.ts";
3
+ /** A Meme's Cetus reservation: its `PoolCreationCap` and tick spacing. */
4
+ export type CetusReservation = {
72
5
  quoteType: string;
73
6
  poolCreationCapId: string;
74
7
  tickSpacing: number;
75
8
  };
76
- export type MigratorEventProjection = {
77
- appliedEventIds: Readonly<Record<string, true>>;
78
- eventCounts: Readonly<Record<MigratorEventKind, number>>;
79
- vaults: Readonly<Record<string, LpVaultEventProjection>>;
80
- rounds: Readonly<Record<string, HolderRewardRoundProjection>>;
81
- lpFeePolicy: LpFeePolicyProjection;
82
- /** Cetus pool-creation reservations, keyed by Meme type. */
83
- cetusPoolReservations: Readonly<Record<string, CetusPoolReservationProjection>>;
84
- };
85
- export type { NativeTransactionPosition } from "@interest-protocol/blast-core/events";
86
- export type PackagePublicationFact = {
87
- source: "transactionEffects";
88
- kind: "packagePublication";
89
- position: NativeTransactionPosition;
90
- packageId: string;
91
- createdObjectIds: readonly string[];
92
- };
93
- export type CreatorCapOwnershipFact = {
94
- source: "objectOwnership";
95
- kind: "creatorCapOwnership";
96
- checkpoint: bigint;
97
- creatorCapId: string;
98
- owner: string;
99
- };
100
- /** A coin a claim returned and where its transaction sent it. */
101
- export type ReturnedCoin = {
102
- objectId: string;
103
- recipient: string;
104
- };
105
- /** The coins one claim returned: a launch protocol claim also returns Blast's SUI. */
106
- export type ReturnedCoinRecipientsFact = {
107
- source: "transactionEffects";
108
- kind: "returnedCoinRecipients";
109
- position: NativeTransactionPosition;
110
- memeCoin: ReturnedCoin;
111
- quoteCoin: ReturnedCoin;
112
- } & ({
113
- claim: "launchCreatorFees" | "lpCreatorFees" | "lpProtocolFees";
114
- } | {
115
- claim: "launchProtocolFees";
116
- suiCoin: ReturnedCoin;
117
- });
118
- export type NativeReconstructionFact = PackagePublicationFact | CreatorCapOwnershipFact | ReturnedCoinRecipientsFact;
119
- export type NativeFactProjection = {
120
- appliedFactIds: Readonly<Record<string, true>>;
121
- packagePublications: Readonly<Record<string, PackagePublicationFact>>;
122
- creatorCapOwners: Readonly<Record<string, {
123
- source: "objectOwnership";
124
- checkpoint: bigint;
125
- owner: string;
126
- }>>;
127
- returnedCoinRecipients: Readonly<Record<string, ReturnedCoinRecipientsFact>>;
9
+ /** A Meme's recorded Bluefin tier. */
10
+ export type BluefinReservation = BluefinPoolTier & {
11
+ quoteType: string;
128
12
  };
129
- export type LaunchpadProductProjection = {
130
- launchpad: LaunchpadEventProjection;
131
- migrators: MigratorEventProjection;
132
- native: NativeFactProjection;
13
+ /**
14
+ * The `VenueConfig` records rebuilt from `blast_migrators` events, by Meme
15
+ * type. Each venue keys its own records, so `cetus` and `bluefin` match
16
+ * `getCetusPoolTier`/`getCetusPoolCreationCapId` and `getBluefinPoolTier`
17
+ * once every event is applied.
18
+ */
19
+ export type VenueReservationProjection = {
20
+ appliedEventIds: Readonly<Record<string, true>>;
21
+ cetus: Readonly<Record<string, CetusReservation>>;
22
+ bluefin: Readonly<Record<string, BluefinReservation>>;
133
23
  };
134
- export type LaunchpadProductInput = DecodedLaunchpadEvent | DecodedMigratorEvent | NativeReconstructionFact;
135
- export declare function createMigratorEventProjection(): MigratorEventProjection;
136
- export declare function createLaunchpadProductProjection(): LaunchpadProductProjection;
137
- export declare function reduceMigratorEvent(state: MigratorEventProjection, event: DecodedMigratorEvent): MigratorEventProjection;
138
- export declare function reduceLaunchpadProductInput(state: LaunchpadProductProjection, input: LaunchpadProductInput): LaunchpadProductProjection;
24
+ export declare function createVenueReservationProjection(): VenueReservationProjection;
25
+ /** Applies one event once; replaying an applied event returns `state` unchanged. */
26
+ export declare function reduceVenueReservationEvent(state: VenueReservationProjection, event: DecodedMigratorsEvent): VenueReservationProjection;
139
27
  //# sourceMappingURL=reducer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"reducer.d.ts","sourceRoot":"","sources":["../src/reducer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reducer.d.ts","sourceRoot":"","sources":["../src/reducer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,0EAA0E;AAC1E,MAAM,MAAM,gBAAgB,GAAG;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,sCAAsC;AACtC,MAAM,MAAM,kBAAkB,GAAG,eAAe,GAAG;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC;AAEzE;;;;;GAKG;AACH,MAAM,MAAM,0BAA0B,GAAG;IACvC,eAAe,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;IAChD,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAClD,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC,CAAC;CACvD,CAAC;AAEF,wBAAgB,gCAAgC,IAAI,0BAA0B,CAE7E;AAED,oFAAoF;AACpF,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,0BAA0B,EACjC,KAAK,EAAE,qBAAqB,GAC3B,0BAA0B,CAmC5B"}
package/dist/reducer.js CHANGED
@@ -1,376 +1,43 @@
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
- };
1
+ import { suiEventId } from "@interest-protocol/blast-core/events";
2
+ export function createVenueReservationProjection() {
3
+ return { appliedEventIds: {}, cetus: {}, bluefin: {} };
31
4
  }
32
- export function reduceMigratorEvent(state, event) {
33
- const eventId = migratorEventId(event);
5
+ /** Applies one event once; replaying an applied event returns `state` unchanged. */
6
+ export function reduceVenueReservationEvent(state, event) {
7
+ const eventId = suiEventId(event.position);
34
8
  if (state.appliedEventIds[eventId])
35
9
  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
- },
10
+ const appliedEventIds = {
11
+ ...state.appliedEventIds,
12
+ [eventId]: true,
43
13
  };
44
14
  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: {},
15
+ case "CetusPoolReserved":
16
+ return {
17
+ ...state,
18
+ appliedEventIds,
19
+ cetus: {
20
+ ...state.cetus,
21
+ [event.memeType]: {
22
+ quoteType: event.quoteType,
23
+ poolCreationCapId: event.payload.pool_creation_cap_id,
24
+ tickSpacing: event.payload.tick_spacing,
184
25
  },
185
26
  },
186
27
  };
187
- }
188
- case "RewardPaid": {
189
- const payload = event.payload;
190
- const round = state.rounds[payload.round_id];
191
- if (!round)
192
- return next;
28
+ case "BluefinPoolTierRecorded":
193
29
  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
- },
30
+ ...state,
31
+ appliedEventIds,
32
+ bluefin: {
33
+ ...state.bluefin,
34
+ [event.memeType]: {
35
+ quoteType: event.quoteType,
36
+ tickSpacing: event.payload.tick_spacing,
37
+ feeRate: event.payload.fee_rate,
205
38
  },
206
39
  },
207
40
  };
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
41
  }
374
- return `${fact.position.transactionDigest}:${fact.kind}:${fact.packageId}`;
375
42
  }
376
43
  //# sourceMappingURL=reducer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"reducer.js","sourceRoot":"","sources":["../src/reducer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reducer.js","sourceRoot":"","sources":["../src/reducer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sCAAsC,CAAC;AA0BlE,MAAM,UAAU,gCAAgC;IAC9C,OAAO,EAAE,eAAe,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;AACzD,CAAC;AAED,oFAAoF;AACpF,MAAM,UAAU,2BAA2B,CACzC,KAAiC,EACjC,KAA4B;IAE5B,MAAM,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC3C,IAAI,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC;QAAE,OAAO,KAAK,CAAC;IACjD,MAAM,eAAe,GAAG;QACtB,GAAG,KAAK,CAAC,eAAe;QACxB,CAAC,OAAO,CAAC,EAAE,IAAa;KACzB,CAAC;IACF,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,mBAAmB;YACtB,OAAO;gBACL,GAAG,KAAK;gBACR,eAAe;gBACf,KAAK,EAAE;oBACL,GAAG,KAAK,CAAC,KAAK;oBACd,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE;wBAChB,SAAS,EAAE,KAAK,CAAC,SAAS;wBAC1B,iBAAiB,EAAE,KAAK,CAAC,OAAO,CAAC,oBAAoB;wBACrD,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,YAAY;qBACxC;iBACF;aACF,CAAC;QACJ,KAAK,yBAAyB;YAC5B,OAAO;gBACL,GAAG,KAAK;gBACR,eAAe;gBACf,OAAO,EAAE;oBACP,GAAG,KAAK,CAAC,OAAO;oBAChB,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE;wBAChB,SAAS,EAAE,KAAK,CAAC,SAAS;wBAC1B,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,YAAY;wBACvC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,QAAQ;qBAChC;iBACF;aACF,CAAC;IACN,CAAC;AACH,CAAC"}