@interest-protocol/blast-migrators-sdk 0.0.0-stage → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -2
- package/dist/bluefin-pool.d.ts +57 -0
- package/dist/bluefin-pool.d.ts.map +1 -0
- package/dist/bluefin-pool.js +102 -0
- package/dist/bluefin-pool.js.map +1 -0
- package/dist/cetus-pool.d.ts +44 -0
- package/dist/cetus-pool.d.ts.map +1 -0
- package/dist/cetus-pool.js +57 -0
- package/dist/cetus-pool.js.map +1 -0
- package/dist/client.d.ts +25 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +34 -0
- package/dist/client.js.map +1 -0
- package/dist/events.d.ts +168 -0
- package/dist/events.d.ts.map +1 -0
- package/dist/events.js +180 -0
- package/dist/events.js.map +1 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +9 -0
- package/dist/index.js.map +1 -0
- package/dist/reducer.d.ts +139 -0
- package/dist/reducer.d.ts.map +1 -0
- package/dist/reducer.js +376 -0
- package/dist/reducer.js.map +1 -0
- package/dist/state.d.ts +166 -0
- package/dist/state.d.ts.map +1 -0
- package/dist/state.js +187 -0
- package/dist/state.js.map +1 -0
- package/dist/transactions.d.ts +314 -0
- package/dist/transactions.d.ts.map +1 -0
- package/dist/transactions.js +604 -0
- package/dist/transactions.js.map +1 -0
- package/package.json +68 -4
- package/src/bluefin-pool.ts +180 -0
- package/src/cetus-pool.ts +107 -0
- package/src/client.ts +76 -0
- package/src/events.ts +285 -0
- package/src/index.ts +8 -0
- package/src/reducer.ts +562 -0
- package/src/state.ts +316 -0
- package/src/transactions.ts +1068 -0
package/dist/state.js
ADDED
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
import { moveTypeNameBcs, suiBalanceBcs, suiIdBcs, suiObjectIdBcs, suiUidBcs, } from "@interest-protocol/blast-core/bcs";
|
|
2
|
+
import { normalizePositiveU64 } from "@interest-protocol/blast-core/integers";
|
|
3
|
+
import { bpsBcs, feeSplitBcs, } from "@interest-protocol/blast-launchpad-sdk/allocation";
|
|
4
|
+
import { bcs } from "@mysten/sui/bcs";
|
|
5
|
+
import { ObjectError } from "@mysten/sui/client";
|
|
6
|
+
import { normalizeStructTag, normalizeSuiAddress, normalizeSuiObjectId, parseStructTag, } from "@mysten/sui/utils";
|
|
7
|
+
/** Venues whose adapters the migrators package ships. */
|
|
8
|
+
export const MIGRATOR_VENUES = ["bluefin", "cetus"];
|
|
9
|
+
/**
|
|
10
|
+
* Identifies a launch's recorded route from its `migration_witness` (the
|
|
11
|
+
* adapter's `Witness` type, by original package ID) and its pool tier. Rejects
|
|
12
|
+
* a witness from another migrators package or a venue this SDK cannot route.
|
|
13
|
+
*/
|
|
14
|
+
export function launchMigrationRoute(launch, migratorsOriginalPackageId) {
|
|
15
|
+
const tag = parseStructTag(launch.migrationWitnessType);
|
|
16
|
+
if (tag.address !== normalizeSuiAddress(migratorsOriginalPackageId)) {
|
|
17
|
+
throw new TypeError("the launch migrates through another migrators package");
|
|
18
|
+
}
|
|
19
|
+
const venue = tag.module;
|
|
20
|
+
if (!MIGRATOR_VENUES.includes(venue) || tag.name !== "Witness") {
|
|
21
|
+
throw new RangeError(`unsupported migration route ${tag.module}::${tag.name}`);
|
|
22
|
+
}
|
|
23
|
+
return {
|
|
24
|
+
venue,
|
|
25
|
+
tickSpacing: launch.poolTickSpacing,
|
|
26
|
+
feeRate: launch.poolFeeRate,
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
/** BCS layout of `blast_fun_migrators::vault::LpVault<Meme, Quote>`. */
|
|
30
|
+
export const lpVaultBcs = bcs.struct("LpVault", {
|
|
31
|
+
id: suiUidBcs,
|
|
32
|
+
pool_id: suiIdBcs,
|
|
33
|
+
partner_id: bcs.option(suiObjectIdBcs),
|
|
34
|
+
protocol_meme_residual: suiBalanceBcs,
|
|
35
|
+
protocol_quote_residual: suiBalanceBcs,
|
|
36
|
+
unpaid_protocol_meme: suiBalanceBcs,
|
|
37
|
+
unpaid_protocol_quote: suiBalanceBcs,
|
|
38
|
+
fee_split: feeSplitBcs,
|
|
39
|
+
creator_meme: suiBalanceBcs,
|
|
40
|
+
creator_quote: suiBalanceBcs,
|
|
41
|
+
auto_lp_meme: suiBalanceBcs,
|
|
42
|
+
auto_lp_quote: suiBalanceBcs,
|
|
43
|
+
rewards_meme: suiBalanceBcs,
|
|
44
|
+
rewards_quote: suiBalanceBcs,
|
|
45
|
+
burn_quote: suiBalanceBcs,
|
|
46
|
+
next_round: bcs.u64(),
|
|
47
|
+
last_checkpoint: bcs.option(bcs.u64()),
|
|
48
|
+
});
|
|
49
|
+
/** BCS layout of `blast_fun_migrators::lp_fee_policy::SharePair`. */
|
|
50
|
+
export const lpFeeSharePairBcs = bcs.struct("SharePair", {
|
|
51
|
+
meme_bps: bpsBcs,
|
|
52
|
+
quote_bps: bpsBcs,
|
|
53
|
+
});
|
|
54
|
+
/** BCS layout of `blast_fun_migrators::lp_fee_policy::LpFeePolicy`. */
|
|
55
|
+
export const lpFeePolicyBcs = bcs.struct("LpFeePolicy", {
|
|
56
|
+
id: suiUidBcs,
|
|
57
|
+
destination: bcs.Address,
|
|
58
|
+
defaults: lpFeeSharePairBcs,
|
|
59
|
+
coins: bcs.struct("Table", { id: suiUidBcs, size: bcs.u64() }),
|
|
60
|
+
});
|
|
61
|
+
export function decodeLpVaultObject(object, originalPackageId) {
|
|
62
|
+
const tag = parseStructTag(object.type);
|
|
63
|
+
if (tag.module !== "vault" || tag.name !== "LpVault") {
|
|
64
|
+
throw new TypeError(`object ${object.objectId} is not an LP vault`);
|
|
65
|
+
}
|
|
66
|
+
if (tag.typeParams.length !== 2) {
|
|
67
|
+
throw new TypeError(`LP vault ${object.objectId} must have two type arguments`);
|
|
68
|
+
}
|
|
69
|
+
if (tag.address !== normalizeSuiAddress(originalPackageId)) {
|
|
70
|
+
throw new TypeError(`LP vault ${object.objectId} has an unexpected package`);
|
|
71
|
+
}
|
|
72
|
+
if (object.mutable !== true) {
|
|
73
|
+
throw new TypeError(`LP vault ${object.objectId} must be mutable`);
|
|
74
|
+
}
|
|
75
|
+
const parsed = lpVaultBcs.parse(object.content);
|
|
76
|
+
const objectId = normalizeSuiObjectId(object.objectId);
|
|
77
|
+
if (normalizeSuiObjectId(parsed.id.id.bytes) !== objectId) {
|
|
78
|
+
throw new TypeError(`LP vault ${object.objectId} has a mismatched UID`);
|
|
79
|
+
}
|
|
80
|
+
return {
|
|
81
|
+
objectId,
|
|
82
|
+
initialSharedVersion: normalizePositiveU64("initialSharedVersion", object.initialSharedVersion),
|
|
83
|
+
mutable: true,
|
|
84
|
+
memeType: normalizeTypeParameter(tag.typeParams[0]),
|
|
85
|
+
quoteType: normalizeTypeParameter(tag.typeParams[1]),
|
|
86
|
+
poolId: normalizeSuiObjectId(parsed.pool_id.bytes),
|
|
87
|
+
partnerId: parsed.partner_id,
|
|
88
|
+
protocolMemeResidual: BigInt(parsed.protocol_meme_residual.value),
|
|
89
|
+
protocolQuoteResidual: BigInt(parsed.protocol_quote_residual.value),
|
|
90
|
+
unpaidProtocolMeme: BigInt(parsed.unpaid_protocol_meme.value),
|
|
91
|
+
unpaidProtocolQuote: BigInt(parsed.unpaid_protocol_quote.value),
|
|
92
|
+
feeSplit: parsed.fee_split,
|
|
93
|
+
creatorMeme: BigInt(parsed.creator_meme.value),
|
|
94
|
+
creatorQuote: BigInt(parsed.creator_quote.value),
|
|
95
|
+
autoLpMeme: BigInt(parsed.auto_lp_meme.value),
|
|
96
|
+
autoLpQuote: BigInt(parsed.auto_lp_quote.value),
|
|
97
|
+
rewardsMeme: BigInt(parsed.rewards_meme.value),
|
|
98
|
+
rewardsQuote: BigInt(parsed.rewards_quote.value),
|
|
99
|
+
burnQuote: BigInt(parsed.burn_quote.value),
|
|
100
|
+
nextRound: BigInt(parsed.next_round),
|
|
101
|
+
lastCheckpoint: parsed.last_checkpoint === null ? null : BigInt(parsed.last_checkpoint),
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
export async function getLpVault(client, objectId, originalPackageId) {
|
|
105
|
+
const { object } = await client.core.getObject({
|
|
106
|
+
objectId,
|
|
107
|
+
include: { content: true },
|
|
108
|
+
});
|
|
109
|
+
if (object.owner.$kind !== "Shared") {
|
|
110
|
+
throw new TypeError(`LP vault ${object.objectId} is not a shared object`);
|
|
111
|
+
}
|
|
112
|
+
return decodeLpVaultObject({
|
|
113
|
+
objectId: object.objectId,
|
|
114
|
+
initialSharedVersion: object.owner.Shared.initialSharedVersion,
|
|
115
|
+
mutable: true,
|
|
116
|
+
type: object.type,
|
|
117
|
+
content: object.content,
|
|
118
|
+
}, originalPackageId);
|
|
119
|
+
}
|
|
120
|
+
/** Reads the shared `LpFeePolicy` singleton. */
|
|
121
|
+
export async function getLpFeePolicy(client, objectId, originalPackageId) {
|
|
122
|
+
const { object } = await client.core.getObject({
|
|
123
|
+
objectId,
|
|
124
|
+
include: { content: true },
|
|
125
|
+
});
|
|
126
|
+
if (object.owner.$kind !== "Shared") {
|
|
127
|
+
throw new TypeError(`LP-fee policy ${object.objectId} is not shared`);
|
|
128
|
+
}
|
|
129
|
+
const expected = normalizeStructTag(`${normalizeSuiAddress(originalPackageId)}::lp_fee_policy::LpFeePolicy`);
|
|
130
|
+
if (normalizeStructTag(object.type) !== expected) {
|
|
131
|
+
throw new TypeError(`object ${object.objectId} is not the LP-fee policy`);
|
|
132
|
+
}
|
|
133
|
+
const parsed = lpFeePolicyBcs.parse(object.content);
|
|
134
|
+
if (normalizeSuiObjectId(parsed.id.id.bytes) !==
|
|
135
|
+
normalizeSuiObjectId(object.objectId)) {
|
|
136
|
+
throw new TypeError(`LP-fee policy ${object.objectId} has a mismatched UID`);
|
|
137
|
+
}
|
|
138
|
+
return {
|
|
139
|
+
objectId: normalizeSuiObjectId(object.objectId),
|
|
140
|
+
initialSharedVersion: normalizePositiveU64("initialSharedVersion", object.owner.Shared.initialSharedVersion),
|
|
141
|
+
mutable: false,
|
|
142
|
+
protocolDestination: normalizeSuiAddress(parsed.destination),
|
|
143
|
+
defaultShares: {
|
|
144
|
+
memeBps: parsed.defaults.meme_bps,
|
|
145
|
+
quoteBps: parsed.defaults.quote_bps,
|
|
146
|
+
},
|
|
147
|
+
coinSharesTableId: normalizeSuiObjectId(parsed.coins.id.id.bytes),
|
|
148
|
+
coinSharesCount: BigInt(parsed.coins.size),
|
|
149
|
+
};
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Mirrors `lp_fee_policy::shares<Meme>`: the coin's own pair when an
|
|
153
|
+
* administrator set one, otherwise the default pair. `source` says which.
|
|
154
|
+
*/
|
|
155
|
+
export async function getLpFeeShares(client, policy, memeType) {
|
|
156
|
+
try {
|
|
157
|
+
const { dynamicField } = await client.core.getDynamicField({
|
|
158
|
+
parentId: policy.coinSharesTableId,
|
|
159
|
+
name: {
|
|
160
|
+
type: "0x1::type_name::TypeName",
|
|
161
|
+
bcs: moveTypeNameBcs
|
|
162
|
+
.serialize(originalTypeNameText(memeType))
|
|
163
|
+
.toBytes(),
|
|
164
|
+
},
|
|
165
|
+
});
|
|
166
|
+
const pair = lpFeeSharePairBcs.parse(dynamicField.value.bcs);
|
|
167
|
+
return { memeBps: pair.meme_bps, quoteBps: pair.quote_bps, source: "coin" };
|
|
168
|
+
}
|
|
169
|
+
catch (error) {
|
|
170
|
+
if (!(error instanceof ObjectError) || error.reason !== "notFound") {
|
|
171
|
+
throw error;
|
|
172
|
+
}
|
|
173
|
+
return { ...policy.defaultShares, source: "default" };
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
/** Move `TypeName` text: the normalized tag without the `0x` address prefix. */
|
|
177
|
+
function originalTypeNameText(type) {
|
|
178
|
+
const normalized = normalizeStructTag(type);
|
|
179
|
+
return normalized.startsWith("0x") ? normalized.slice(2) : normalized;
|
|
180
|
+
}
|
|
181
|
+
function normalizeTypeParameter(type) {
|
|
182
|
+
if (type === undefined || typeof type === "string") {
|
|
183
|
+
throw new TypeError("LP vault coin type must be a struct type");
|
|
184
|
+
}
|
|
185
|
+
return normalizeStructTag(type);
|
|
186
|
+
}
|
|
187
|
+
//# sourceMappingURL=state.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state.js","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,314 @@
|
|
|
1
|
+
import type { CoinSourceOptions } from "@interest-protocol/blast-core/coins";
|
|
2
|
+
import type { RewardManifest, RewardProof } from "@interest-protocol/blast-core/rewards/allocations";
|
|
3
|
+
import type { SharedObjectIdentity, SharedObjectReference } from "@interest-protocol/blast-core/sui";
|
|
4
|
+
import type { FeeSplit } from "@interest-protocol/blast-launchpad-sdk/allocation";
|
|
5
|
+
import type { BlastFunAdminRole, LaunchpadDeployment, LaunchSettings, LaunchTypes, PreShareBuyInput } from "@interest-protocol/blast-launchpad-sdk/transactions";
|
|
6
|
+
import { LaunchpadCalls } from "@interest-protocol/blast-launchpad-sdk/transactions";
|
|
7
|
+
import type { TransactionObjectArgument, TransactionObjectInput, TransactionResult } from "@mysten/sui/transactions";
|
|
8
|
+
import { Transaction } from "@mysten/sui/transactions";
|
|
9
|
+
import type { MigratorVenue } from "./state.ts";
|
|
10
|
+
/**
|
|
11
|
+
* The vault's partner, when `LpVaultState.partnerId` is set: the collection
|
|
12
|
+
* then pays it and Blast the LP fees the vault held.
|
|
13
|
+
*/
|
|
14
|
+
export type LpFeePartner = {
|
|
15
|
+
partner?: SharedObjectReference<false> | null;
|
|
16
|
+
};
|
|
17
|
+
export type MigratorsDeployment = {
|
|
18
|
+
packageId: string;
|
|
19
|
+
originalPackageId: string;
|
|
20
|
+
launchpad: LaunchpadDeployment;
|
|
21
|
+
/** Migrators `blast_fun_migrators::PackageVersion` checked by every protected entry. */
|
|
22
|
+
migratorsVersion: SharedObjectIdentity;
|
|
23
|
+
/** Migrators `lp_fee_policy::LpFeePolicy` read by every LP-fee collection. */
|
|
24
|
+
lpFeePolicy: SharedObjectIdentity;
|
|
25
|
+
/** Migrators `venue_config::VenueConfig`, holding each Meme's Cetus `PoolCreationCap`. */
|
|
26
|
+
venueConfig: SharedObjectIdentity;
|
|
27
|
+
};
|
|
28
|
+
import type { CetusMemeSide } from "@interest-protocol/blast-core/cetus";
|
|
29
|
+
export type { CetusMemeSide } from "@interest-protocol/blast-core/cetus";
|
|
30
|
+
/** The Cetus CLMM `config::GlobalConfig` every Cetus route reads. */
|
|
31
|
+
export type CetusObjects = {
|
|
32
|
+
/** Cetus CLMM `config::GlobalConfig`. */
|
|
33
|
+
cetusConfig: SharedObjectReference<false>;
|
|
34
|
+
};
|
|
35
|
+
/** Settings for starting a launch through an adapter in one transaction. */
|
|
36
|
+
export type CreateLaunchOptions = LaunchTypes & LaunchSettings & CoinSourceOptions & {
|
|
37
|
+
/** The `LaunchTicket<Meme>` the generated package's initializer transferred to its publisher. */
|
|
38
|
+
ticket: TransactionObjectInput;
|
|
39
|
+
/** The Meme `Currency<Meme>` in the Coin Registry, fixed at finalization. */
|
|
40
|
+
memeCurrency: SharedObjectReference<true>;
|
|
41
|
+
/** `LaunchConfig.creation_fee` in MIST, paid as an exact SUI coin. */
|
|
42
|
+
creationFee: bigint;
|
|
43
|
+
preShareBuy?: PreShareBuyInput;
|
|
44
|
+
};
|
|
45
|
+
/** Maximum Merkle proof depth the holder-reward leaf count (65,536) allows. */
|
|
46
|
+
export declare const MAX_HOLDER_REWARD_PROOF_DEPTH = 16;
|
|
47
|
+
export declare class MigratorCalls {
|
|
48
|
+
#private;
|
|
49
|
+
readonly deployment: MigratorsDeployment;
|
|
50
|
+
readonly launchpad: LaunchpadCalls;
|
|
51
|
+
constructor(deployment: MigratorsDeployment);
|
|
52
|
+
/** The adapter witness type a launch stores as its `migration_witness`. */
|
|
53
|
+
migrationWitnessType(venue: MigratorVenue): string;
|
|
54
|
+
signIn(options: {
|
|
55
|
+
adminCap: TransactionObjectInput;
|
|
56
|
+
role: BlastFunAdminRole;
|
|
57
|
+
}): (tx: Transaction) => TransactionObjectArgument;
|
|
58
|
+
/**
|
|
59
|
+
* Starts a Cetus launch at `tickSpacing`: Cetus derives the fee rate, and the
|
|
60
|
+
* Meme type's single `PoolCreationCap` is minted and reserved for the pair.
|
|
61
|
+
* Returns the `LaunchInitializer`, which the same PTB must finalize.
|
|
62
|
+
*/
|
|
63
|
+
newCetusLaunch(options: LaunchTypes & CetusObjects & {
|
|
64
|
+
ticket: TransactionObjectInput;
|
|
65
|
+
cetusPools: SharedObjectReference<true>;
|
|
66
|
+
tickSpacing: number;
|
|
67
|
+
}): (tx: Transaction) => TransactionResult;
|
|
68
|
+
/**
|
|
69
|
+
* Starts a Bluefin launch at the creator's tier (tick spacing 1-400, fee rate
|
|
70
|
+
* 1-20,000, Bluefin's own bounds). Returns the `LaunchInitializer`.
|
|
71
|
+
*/
|
|
72
|
+
newBluefinLaunch(options: LaunchTypes & {
|
|
73
|
+
ticket: TransactionObjectInput;
|
|
74
|
+
tickSpacing: number;
|
|
75
|
+
feeRate: bigint;
|
|
76
|
+
}): (tx: Transaction) => TransactionResult;
|
|
77
|
+
/**
|
|
78
|
+
* Migrates a MigrationReady Cetus launch: creates the pool with the reserved
|
|
79
|
+
* capability, seeds full-range liquidity, and burns the position through
|
|
80
|
+
* Cetus LP Burn. Anyone may call it.
|
|
81
|
+
*/
|
|
82
|
+
migrateCetus(options: LaunchTypes & CetusObjects & {
|
|
83
|
+
memeSide: CetusMemeSide;
|
|
84
|
+
launch: SharedObjectReference<true>;
|
|
85
|
+
memeCurrency: SharedObjectReference<true>;
|
|
86
|
+
cetusPools: SharedObjectReference<true>;
|
|
87
|
+
/** Cetus LP Burn `lp_burn::BurnManager`. */
|
|
88
|
+
burnManager: SharedObjectReference<true>;
|
|
89
|
+
}): (tx: Transaction) => void;
|
|
90
|
+
/**
|
|
91
|
+
* Migrates a MigrationReady Bluefin launch into a new `Pool<Meme, Quote>`.
|
|
92
|
+
* `creationFee` must be exactly Bluefin's configured SUI pool-creation fee.
|
|
93
|
+
*/
|
|
94
|
+
migrateBluefin(options: LaunchTypes & {
|
|
95
|
+
launch: SharedObjectReference<true>;
|
|
96
|
+
memeCurrency: SharedObjectReference<true>;
|
|
97
|
+
quoteCurrency: SharedObjectReference<false>;
|
|
98
|
+
bluefinConfig: SharedObjectReference<true>;
|
|
99
|
+
creationFee: TransactionObjectInput;
|
|
100
|
+
}): (tx: Transaction) => void;
|
|
101
|
+
/**
|
|
102
|
+
* Collects the burned migration position's and the auto-LP position's fees,
|
|
103
|
+
* pays Blast's live share, splits the rest, burns the burn share's Meme, and
|
|
104
|
+
* adds the auto-LP share back. Anyone may call it.
|
|
105
|
+
*/
|
|
106
|
+
collectCetusFees(options: LaunchTypes & CetusObjects & {
|
|
107
|
+
memeSide: CetusMemeSide;
|
|
108
|
+
vault: SharedObjectReference<true>;
|
|
109
|
+
memeCurrency: SharedObjectReference<true>;
|
|
110
|
+
burnManager: SharedObjectReference<false>;
|
|
111
|
+
pool: SharedObjectReference<true>;
|
|
112
|
+
}): (tx: Transaction) => void;
|
|
113
|
+
/** Collects, splits, burns, and adds auto-LP for a Bluefin vault. Anyone may call it. */
|
|
114
|
+
collectBluefinFees(options: LaunchTypes & {
|
|
115
|
+
vault: SharedObjectReference<true>;
|
|
116
|
+
memeCurrency: SharedObjectReference<true>;
|
|
117
|
+
bluefinConfig: SharedObjectReference<false>;
|
|
118
|
+
pool: SharedObjectReference<true>;
|
|
119
|
+
}): (tx: Transaction) => void;
|
|
120
|
+
/**
|
|
121
|
+
* Settles the fees accrued under the current split, then commits `feeSplit`
|
|
122
|
+
* as the vault's split. Only the launch's live `CurveFeeCap` authorizes it.
|
|
123
|
+
* `launch` is read immutably by Move.
|
|
124
|
+
*/
|
|
125
|
+
settleAndUpdateCetusFeeSplit(options: LaunchTypes & CetusObjects & {
|
|
126
|
+
memeSide: CetusMemeSide;
|
|
127
|
+
vault: SharedObjectReference<true>;
|
|
128
|
+
launch: SharedObjectReference;
|
|
129
|
+
curveFeeCap: TransactionObjectInput;
|
|
130
|
+
memeCurrency: SharedObjectReference<true>;
|
|
131
|
+
burnManager: SharedObjectReference<false>;
|
|
132
|
+
pool: SharedObjectReference<true>;
|
|
133
|
+
feeSplit: FeeSplit;
|
|
134
|
+
}): (tx: Transaction) => void;
|
|
135
|
+
/** Bluefin counterpart of `settleAndUpdateCetusFeeSplit`. */
|
|
136
|
+
settleAndUpdateBluefinFeeSplit(options: LaunchTypes & {
|
|
137
|
+
vault: SharedObjectReference<true>;
|
|
138
|
+
launch: SharedObjectReference;
|
|
139
|
+
curveFeeCap: TransactionObjectInput;
|
|
140
|
+
memeCurrency: SharedObjectReference<true>;
|
|
141
|
+
bluefinConfig: SharedObjectReference<false>;
|
|
142
|
+
pool: SharedObjectReference<true>;
|
|
143
|
+
feeSplit: FeeSplit;
|
|
144
|
+
}): (tx: Transaction) => void;
|
|
145
|
+
/**
|
|
146
|
+
* Swaps `quoteIn` atomic units of the vault's burn Quote for Meme in its
|
|
147
|
+
* Cetus pool and burns it, under a `BuybackAdmin` witness. The contract
|
|
148
|
+
* aborts with `EBuybackQuoteOutOfRange` when `quoteIn` exceeds the vault's
|
|
149
|
+
* burn Quote, and unless the swap returns at least `minMemeOut`; set it from
|
|
150
|
+
* an off-chain price, since anyone can move the pool's price within a
|
|
151
|
+
* transaction. Unspent Quote waits for the next buyback.
|
|
152
|
+
*/
|
|
153
|
+
buybackAndBurnCetus(options: LaunchTypes & CetusObjects & {
|
|
154
|
+
memeSide: CetusMemeSide;
|
|
155
|
+
vault: SharedObjectReference<true>;
|
|
156
|
+
adminWitness: TransactionObjectInput;
|
|
157
|
+
memeCurrency: SharedObjectReference<true>;
|
|
158
|
+
pool: SharedObjectReference<true>;
|
|
159
|
+
quoteIn: bigint;
|
|
160
|
+
minMemeOut: bigint;
|
|
161
|
+
}): (tx: Transaction) => void;
|
|
162
|
+
/** Bluefin counterpart of `buybackAndBurnCetus`. */
|
|
163
|
+
buybackAndBurnBluefin(options: LaunchTypes & {
|
|
164
|
+
vault: SharedObjectReference<true>;
|
|
165
|
+
adminWitness: TransactionObjectInput;
|
|
166
|
+
memeCurrency: SharedObjectReference<true>;
|
|
167
|
+
bluefinConfig: SharedObjectReference<false>;
|
|
168
|
+
pool: SharedObjectReference<true>;
|
|
169
|
+
quoteIn: bigint;
|
|
170
|
+
minMemeOut: bigint;
|
|
171
|
+
}): (tx: Transaction) => void;
|
|
172
|
+
/**
|
|
173
|
+
* Claims the creator's accrued LP fees with the launch's live `CurveFeeCap`.
|
|
174
|
+
* `launch` is read immutably by Move.
|
|
175
|
+
*/
|
|
176
|
+
claimCreatorFees(options: LaunchTypes & {
|
|
177
|
+
vault: SharedObjectReference<true>;
|
|
178
|
+
launch: SharedObjectReference;
|
|
179
|
+
curveFeeCap: TransactionObjectInput;
|
|
180
|
+
}): (tx: Transaction) => TransactionResult;
|
|
181
|
+
/**
|
|
182
|
+
* `vault::claim_protocol_lp_fees_with_partner`: pays a partnered vault's held
|
|
183
|
+
* Blast LP fees, the launch's partner its cut in force of each asset, rounded
|
|
184
|
+
* down, and the `LpFeePolicy` destination the rest. Anyone may call it;
|
|
185
|
+
* holding nothing pays nothing.
|
|
186
|
+
*/
|
|
187
|
+
claimProtocolLpFeesWithPartner(options: LaunchTypes & {
|
|
188
|
+
vault: SharedObjectReference<true>;
|
|
189
|
+
partner: SharedObjectReference<false>;
|
|
190
|
+
}): (tx: Transaction) => void;
|
|
191
|
+
/** Claims the protocol-owned migration residuals under a `TreasuryAdmin` witness. */
|
|
192
|
+
claimProtocolFees(options: LaunchTypes & {
|
|
193
|
+
vault: SharedObjectReference<true>;
|
|
194
|
+
adminWitness: TransactionObjectInput;
|
|
195
|
+
}): (tx: Transaction) => TransactionResult;
|
|
196
|
+
/** Changes Blast's default Meme and Quote LP-fee shares for coins without their own pair (`FeeAdmin`). */
|
|
197
|
+
setLpFeeDefaultShares(options: {
|
|
198
|
+
adminWitness: TransactionObjectInput;
|
|
199
|
+
memeBps: bigint;
|
|
200
|
+
quoteBps: bigint;
|
|
201
|
+
}): (tx: Transaction) => void;
|
|
202
|
+
/** Sets Blast's LP-fee shares for one original Meme type (`FeeAdmin`). */
|
|
203
|
+
setLpFeeCoinShares(options: {
|
|
204
|
+
memeType: string;
|
|
205
|
+
adminWitness: TransactionObjectInput;
|
|
206
|
+
memeBps: bigint;
|
|
207
|
+
quoteBps: bigint;
|
|
208
|
+
}): (tx: Transaction) => void;
|
|
209
|
+
/** Removes one Meme type's own pair so its collections use the defaults again (`FeeAdmin`). */
|
|
210
|
+
clearLpFeeCoinShares(options: {
|
|
211
|
+
memeType: string;
|
|
212
|
+
adminWitness: TransactionObjectInput;
|
|
213
|
+
}): (tx: Transaction) => void;
|
|
214
|
+
/** Redirects every later protocol LP-fee payout (`TreasuryAdmin`). */
|
|
215
|
+
setLpFeeProtocolDestination(options: {
|
|
216
|
+
adminWitness: TransactionObjectInput;
|
|
217
|
+
destination: string;
|
|
218
|
+
}): (tx: Transaction) => void;
|
|
219
|
+
/**
|
|
220
|
+
* Publishes a holder-reward round from a validated manifest, reserving its
|
|
221
|
+
* budget from the vault's rewards balance, and shares the `Round`
|
|
222
|
+
* (`RewardsAdmin`).
|
|
223
|
+
*/
|
|
224
|
+
publishHolderRewardRound(options: LaunchTypes & {
|
|
225
|
+
vault: SharedObjectReference<true>;
|
|
226
|
+
adminWitness: TransactionObjectInput;
|
|
227
|
+
manifest: RewardManifest;
|
|
228
|
+
}): (tx: Transaction) => void;
|
|
229
|
+
/** Relays one allocation's proof; the round pays its committed beneficiary. */
|
|
230
|
+
claimHolderReward(options: LaunchTypes & {
|
|
231
|
+
round: SharedObjectReference<true>;
|
|
232
|
+
allocation: RewardProof;
|
|
233
|
+
}): (tx: Transaction) => void;
|
|
234
|
+
}
|
|
235
|
+
export declare class MigratorTransactions {
|
|
236
|
+
#private;
|
|
237
|
+
readonly call: MigratorCalls;
|
|
238
|
+
constructor(deployment: MigratorsDeployment, options?: CoinSourceOptions);
|
|
239
|
+
/**
|
|
240
|
+
* Starts, configures, finalizes, and shares a Cetus launch atomically, with
|
|
241
|
+
* an optional purchase on the owned launch, routed to its recipient.
|
|
242
|
+
*/
|
|
243
|
+
createCetusLaunch(options: CreateLaunchOptions & CetusObjects & {
|
|
244
|
+
cetusPools: SharedObjectReference<true>;
|
|
245
|
+
tickSpacing: number;
|
|
246
|
+
}): Transaction;
|
|
247
|
+
/** Bluefin counterpart of `createCetusLaunch`. */
|
|
248
|
+
createBluefinLaunch(options: CreateLaunchOptions & {
|
|
249
|
+
tickSpacing: number;
|
|
250
|
+
feeRate: bigint;
|
|
251
|
+
}): Transaction;
|
|
252
|
+
migrateCetus(options: Parameters<MigratorCalls["migrateCetus"]>[0]): Transaction;
|
|
253
|
+
/** Pays Bluefin's SUI pool-creation fee as an exact-balance coin. */
|
|
254
|
+
migrateBluefin(options: Omit<Parameters<MigratorCalls["migrateBluefin"]>[0], "creationFee"> & {
|
|
255
|
+
creationFee: bigint;
|
|
256
|
+
} & CoinSourceOptions): Transaction;
|
|
257
|
+
/** Then pays the vault's partner when `partner` is given; see `claimProtocolLpFeesWithPartner`. */
|
|
258
|
+
collectCetusFees(options: Parameters<MigratorCalls["collectCetusFees"]>[0] & LpFeePartner): Transaction;
|
|
259
|
+
/** Then pays the vault's partner when `partner` is given; see `claimProtocolLpFeesWithPartner`. */
|
|
260
|
+
collectBluefinFees(options: Parameters<MigratorCalls["collectBluefinFees"]>[0] & LpFeePartner): Transaction;
|
|
261
|
+
/** Pays a partnered vault's partner and Blast the LP fees its collections held. */
|
|
262
|
+
claimProtocolLpFeesWithPartner(options: Parameters<MigratorCalls["claimProtocolLpFeesWithPartner"]>[0]): Transaction;
|
|
263
|
+
settleAndUpdateCetusFeeSplit(options: Omit<Parameters<MigratorCalls["settleAndUpdateCetusFeeSplit"]>[0], "curveFeeCap"> & {
|
|
264
|
+
curveFeeCapId: string;
|
|
265
|
+
}): Transaction;
|
|
266
|
+
settleAndUpdateBluefinFeeSplit(options: Omit<Parameters<MigratorCalls["settleAndUpdateBluefinFeeSplit"]>[0], "curveFeeCap"> & {
|
|
267
|
+
curveFeeCapId: string;
|
|
268
|
+
}): Transaction;
|
|
269
|
+
claimCreatorFees(options: LaunchTypes & {
|
|
270
|
+
vault: SharedObjectReference<true>;
|
|
271
|
+
launch: SharedObjectReference;
|
|
272
|
+
curveFeeCapId: string;
|
|
273
|
+
recipient: string;
|
|
274
|
+
}): Transaction;
|
|
275
|
+
claimProtocolFees(options: LaunchTypes & {
|
|
276
|
+
vault: SharedObjectReference<true>;
|
|
277
|
+
adminCapId: string;
|
|
278
|
+
recipient: string;
|
|
279
|
+
}): Transaction;
|
|
280
|
+
setLpFeeDefaultShares(options: {
|
|
281
|
+
adminCapId: string;
|
|
282
|
+
memeBps: bigint;
|
|
283
|
+
quoteBps: bigint;
|
|
284
|
+
}): Transaction;
|
|
285
|
+
setLpFeeCoinShares(options: {
|
|
286
|
+
memeType: string;
|
|
287
|
+
adminCapId: string;
|
|
288
|
+
memeBps: bigint;
|
|
289
|
+
quoteBps: bigint;
|
|
290
|
+
}): Transaction;
|
|
291
|
+
clearLpFeeCoinShares(options: {
|
|
292
|
+
memeType: string;
|
|
293
|
+
adminCapId: string;
|
|
294
|
+
}): Transaction;
|
|
295
|
+
setLpFeeProtocolDestination(options: {
|
|
296
|
+
adminCapId: string;
|
|
297
|
+
destination: string;
|
|
298
|
+
}): Transaction;
|
|
299
|
+
buybackAndBurnCetus(options: Omit<Parameters<MigratorCalls["buybackAndBurnCetus"]>[0], "adminWitness"> & {
|
|
300
|
+
adminCapId: string;
|
|
301
|
+
}): Transaction;
|
|
302
|
+
buybackAndBurnBluefin(options: Omit<Parameters<MigratorCalls["buybackAndBurnBluefin"]>[0], "adminWitness"> & {
|
|
303
|
+
adminCapId: string;
|
|
304
|
+
}): Transaction;
|
|
305
|
+
publishHolderRewardRound(options: Omit<Parameters<MigratorCalls["publishHolderRewardRound"]>[0], "adminWitness"> & {
|
|
306
|
+
adminCapId: string;
|
|
307
|
+
}): Transaction;
|
|
308
|
+
/** Relays up to `allocations.length` proofs of one round in a single PTB. */
|
|
309
|
+
claimHolderRewards(options: LaunchTypes & {
|
|
310
|
+
round: SharedObjectReference<true>;
|
|
311
|
+
allocations: readonly RewardProof[];
|
|
312
|
+
}): Transaction;
|
|
313
|
+
}
|
|
314
|
+
//# sourceMappingURL=transactions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transactions.d.ts","sourceRoot":"","sources":["../src/transactions.ts"],"names":[],"mappings":"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"}
|