@black-market/sdk 0.10.0 → 0.12.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 +21 -2
- package/dist/lifecycle/abi.d.ts +1 -0
- package/dist/lifecycle/abi.d.ts.map +1 -1
- package/dist/lifecycle/abi.js +1 -0
- package/dist/lifecycle/abi.js.map +1 -1
- package/dist/lifecycle/calibration.d.ts.map +1 -1
- package/dist/lifecycle/calibration.js +2 -0
- package/dist/lifecycle/calibration.js.map +1 -1
- package/dist/lifecycle/deployments/ufg-dynamic-pool-20261021.d.ts +71 -0
- package/dist/lifecycle/deployments/ufg-dynamic-pool-20261021.d.ts.map +1 -0
- package/dist/lifecycle/deployments/ufg-dynamic-pool-20261021.js +73 -0
- package/dist/lifecycle/deployments/ufg-dynamic-pool-20261021.js.map +1 -0
- package/dist/lifecycle/deployments/ufg-fixed-pool-20261021.d.ts +71 -0
- package/dist/lifecycle/deployments/ufg-fixed-pool-20261021.d.ts.map +1 -0
- package/dist/lifecycle/deployments/ufg-fixed-pool-20261021.js +73 -0
- package/dist/lifecycle/deployments/ufg-fixed-pool-20261021.js.map +1 -0
- package/dist/lifecycle/index.d.ts +1 -0
- package/dist/lifecycle/index.d.ts.map +1 -1
- package/dist/lifecycle/index.js +1 -0
- package/dist/lifecycle/index.js.map +1 -1
- package/dist/lifecycle/markets.d.ts +3 -1
- package/dist/lifecycle/markets.d.ts.map +1 -1
- package/dist/lifecycle/markets.js +20 -3
- package/dist/lifecycle/markets.js.map +1 -1
- package/dist/lifecycle/planner.d.ts.map +1 -1
- package/dist/lifecycle/planner.js +83 -54
- package/dist/lifecycle/planner.js.map +1 -1
- package/dist/lifecycle/presets.d.ts +9 -2
- package/dist/lifecycle/presets.d.ts.map +1 -1
- package/dist/lifecycle/presets.js +26 -5
- package/dist/lifecycle/presets.js.map +1 -1
- package/dist/lifecycle/progress.d.ts.map +1 -1
- package/dist/lifecycle/progress.js +26 -5
- package/dist/lifecycle/progress.js.map +1 -1
- package/dist/lifecycle/rpc.js +3 -2
- package/dist/lifecycle/rpc.js.map +1 -1
- package/dist/lifecycle/simulation.d.ts +1 -1
- package/dist/lifecycle/simulation.d.ts.map +1 -1
- package/dist/lifecycle/simulation.js +119 -175
- package/dist/lifecycle/simulation.js.map +1 -1
- package/dist/lifecycle/transactions.d.ts +6 -0
- package/dist/lifecycle/transactions.d.ts.map +1 -1
- package/dist/lifecycle/transactions.js +39 -0
- package/dist/lifecycle/transactions.js.map +1 -1
- package/dist/lifecycle/types.d.ts +17 -4
- package/dist/lifecycle/types.d.ts.map +1 -1
- package/dist/lifecycle/types.js.map +1 -1
- package/dist/lifecycle/ufg-abi.d.ts +2386 -0
- package/dist/lifecycle/ufg-abi.d.ts.map +1 -0
- package/dist/lifecycle/ufg-abi.js +171 -0
- package/dist/lifecycle/ufg-abi.js.map +1 -0
- package/dist/lifecycle/ufg-config.d.ts +38 -0
- package/dist/lifecycle/ufg-config.d.ts.map +1 -0
- package/dist/lifecycle/ufg-config.js +75 -0
- package/dist/lifecycle/ufg-config.js.map +1 -0
- package/dist/lifecycle/ufg.d.ts +21 -0
- package/dist/lifecycle/ufg.d.ts.map +1 -0
- package/dist/lifecycle/ufg.js +98 -0
- package/dist/lifecycle/ufg.js.map +1 -0
- package/docs/launch-lifecycle.md +215 -32
- package/examples/.env.example +4 -0
- package/examples/README.md +35 -2
- package/examples/launch-example-support.ts +1 -0
- package/examples/launch-example.ts +1 -0
- package/examples/launch.ts +1 -0
- package/examples/ufg-launch-config.ts +31 -0
- package/package.json +1 -1
- package/src/lifecycle/abi.ts +1 -0
- package/src/lifecycle/calibration.ts +1 -0
- package/src/lifecycle/deployments/ufg-dynamic-pool-20261021.ts +74 -0
- package/src/lifecycle/deployments/ufg-fixed-pool-20261021.ts +74 -0
- package/src/lifecycle/index.ts +1 -0
- package/src/lifecycle/markets.ts +16 -3
- package/src/lifecycle/planner.ts +75 -51
- package/src/lifecycle/presets.ts +27 -6
- package/src/lifecycle/progress.ts +22 -5
- package/src/lifecycle/rpc.ts +3 -2
- package/src/lifecycle/simulation.ts +114 -166
- package/src/lifecycle/transactions.ts +38 -1
- package/src/lifecycle/types.ts +15 -5
- package/src/lifecycle/ufg-abi.ts +173 -0
- package/src/lifecycle/ufg-config.ts +77 -0
- package/src/lifecycle/ufg.ts +86 -0
|
@@ -10,8 +10,10 @@ import { prepareLaunchSimulation, simulateLaunchTransactions } from "./simulatio
|
|
|
10
10
|
import { LifecyclePlanningError } from "./types.js";
|
|
11
11
|
import { deriveKnownPoolBoundHookDeployment, protectOrderedBuyMinimums, validateBuySlippageBps } from "./calibration.js";
|
|
12
12
|
import { getKnownLifecycleDeployment, getKnownLifecycleProfile } from "./presets.js";
|
|
13
|
-
import { buildLaunchTransactions } from "./transactions.js";
|
|
13
|
+
import { buildLaunchTransactions, packPreparationBatches } from "./transactions.js";
|
|
14
14
|
import { assertLifecycleMarketAllocation, assertLifecycleSupplyAllocation } from "./allocations.js";
|
|
15
|
+
import { assertUfgLaunchAccount, hashUfgLaunchConfig, UFG_LAUNCH_PROXY_ADDRESS } from "./ufg-config.js";
|
|
16
|
+
import { buildUfgLaunchTransactions, buildUfgCancelTransaction, validateUfgLaunchPlan } from "./ufg.js";
|
|
15
17
|
function validatePlanShape(plan) {
|
|
16
18
|
// Encoding checks all exact integer widths, addresses, byte strings and tuple fields.
|
|
17
19
|
const commitment = hashLaunchPlan(plan);
|
|
@@ -86,20 +88,20 @@ function validatePlanShape(plan) {
|
|
|
86
88
|
}
|
|
87
89
|
return { commitment, marketConfigs };
|
|
88
90
|
}
|
|
89
|
-
async function readFunding(client, plan, block) {
|
|
91
|
+
async function readFunding(client, plan, block, account = plan.creator, ufg = false) {
|
|
90
92
|
if (plan.funding.length === 0)
|
|
91
93
|
return { prerequisites: [], approvals: [] };
|
|
92
94
|
const preset = getKnownLifecycleDeployment({ chainId: plan.chainId, orchestrator: plan.orchestrator });
|
|
93
|
-
const escrow = preset?.fundingEscrow ?? await readLifecycleContract(client, plan.orchestrator, launchLifecycleAbi, "fundingEscrow", [], block);
|
|
95
|
+
const escrow = ufg ? UFG_LAUNCH_PROXY_ADDRESS : preset?.fundingEscrow ?? await readLifecycleContract(client, plan.orchestrator, launchLifecycleAbi, "fundingEscrow", [], block);
|
|
94
96
|
// Only allowance observations construct approval commands. Core execution
|
|
95
97
|
// enforces input/output asset, funding target, balance and conversion predicates.
|
|
96
98
|
const prerequisites = await Promise.all(plan.funding.map(async (funding) => {
|
|
97
99
|
const native = funding.kind === LifecycleFundingKind.NativeWrap || funding.kind === LifecycleFundingKind.Swap && funding.inputAsset === zeroAddress;
|
|
98
100
|
const [inputBalance, allowance] = native
|
|
99
|
-
? [rpcQuantity(await lifecyclePinnedRpc(client, "eth_getBalance", [
|
|
101
|
+
? [rpcQuantity(await lifecyclePinnedRpc(client, "eth_getBalance", [account, toHex(block.number)], block), "creator native balance"), undefined]
|
|
100
102
|
: await Promise.all([
|
|
101
|
-
readLifecycleContract(client, funding.inputAsset, lifecycleErc20Abi, "balanceOf", [
|
|
102
|
-
readLifecycleContract(client, funding.inputAsset, lifecycleErc20Abi, "allowance", [
|
|
103
|
+
readLifecycleContract(client, funding.inputAsset, lifecycleErc20Abi, "balanceOf", [account], block),
|
|
104
|
+
readLifecycleContract(client, funding.inputAsset, lifecycleErc20Abi, "allowance", [account, escrow], block),
|
|
103
105
|
]);
|
|
104
106
|
return { funding, inputBalance, requiredInput: funding.inputAmount, allowance, spender: escrow, nativeValue: native ? funding.inputAmount : 0n, conversion: funding.kind === LifecycleFundingKind.NativeWrap ? "native-wrap" : funding.kind === LifecycleFundingKind.Swap ? "allowlisted-swap" : "none" };
|
|
105
107
|
}));
|
|
@@ -118,8 +120,8 @@ async function readFunding(client, plan, block) {
|
|
|
118
120
|
if (total.allowance >= total.amount)
|
|
119
121
|
continue;
|
|
120
122
|
if (total.allowance > 0n)
|
|
121
|
-
approvals.push({ id: `approve-reset:${total.asset}`, kind: "approve-reset", chainId: Number(plan.chainId), from:
|
|
122
|
-
approvals.push({ id: `approve:${total.asset}`, kind: "approve", chainId: Number(plan.chainId), from:
|
|
123
|
+
approvals.push({ id: `approve-reset:${total.asset}`, kind: "approve-reset", chainId: Number(plan.chainId), from: account, to: total.asset, data: encodeFunctionData({ abi: lifecycleErc20Abi, functionName: "approve", args: [escrow, 0n] }), value: 0n, dependencies: [], postconditions: [{ kind: "allowance", asset: total.asset, spender: escrow, minimum: 0n, exact: 0n }] });
|
|
124
|
+
approvals.push({ id: `approve:${total.asset}`, kind: "approve", chainId: Number(plan.chainId), from: account, to: total.asset, data: encodeFunctionData({ abi: lifecycleErc20Abi, functionName: "approve", args: [escrow, total.amount] }), value: 0n, dependencies: [], postconditions: [{ kind: "allowance", asset: total.asset, spender: escrow, minimum: total.amount }] });
|
|
123
125
|
}
|
|
124
126
|
return { prerequisites, approvals };
|
|
125
127
|
}
|
|
@@ -148,14 +150,13 @@ async function readPlanMetadata(client, plan, token, block) {
|
|
|
148
150
|
}))).filter((deployment) => deployment !== undefined);
|
|
149
151
|
return { profiles, hookDeployments, reasons: live.filter((profile) => !profile.admitted).map((profile) => profile.reason ?? "Unlisted lifecycle profile is unavailable") };
|
|
150
152
|
}
|
|
151
|
-
function orderedTransactions(plan, mode, progress, approvals,
|
|
153
|
+
function orderedTransactions(plan, mode, progress, approvals, batches, ufg) {
|
|
152
154
|
if (progress.canonical.phase === LifecyclePhase.Active || progress.canonical.phase === LifecyclePhase.Cancelled)
|
|
153
155
|
return [];
|
|
154
156
|
const prepared = progress.canonical.preparedMarkets;
|
|
155
|
-
const
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
const commands = buildLaunchTransactions({ plan, mode, preparationBatches: mode === "staged" ? batches : undefined }).filter((transaction) => (transaction.kind !== "begin" && transaction.kind !== "atomic" || progress.canonical.phase === LifecyclePhase.None) &&
|
|
157
|
+
const compiled = ufg === undefined ? buildLaunchTransactions({ plan, mode, preparationBatches: mode === "staged" ? batches : undefined })
|
|
158
|
+
: buildUfgLaunchTransactions({ plan, config: ufg.config, mode, preparationBatches: mode === "staged" ? batches : undefined });
|
|
159
|
+
const commands = compiled.filter((transaction) => (transaction.kind !== "begin" && transaction.kind !== "atomic" || progress.canonical.phase === LifecyclePhase.None) &&
|
|
159
160
|
(transaction.kind !== "prepare" || (transaction.marketStart ?? 0) >= prepared));
|
|
160
161
|
const transactions = progress.canonical.phase === LifecyclePhase.None ? [...approvals, ...commands] : commands;
|
|
161
162
|
return transactions.map((transaction, index) => ({ ...transaction, calldataBytes: (transaction.data.length - 2) / 2, dependencies: index === 0 ? [] : [transactions[index - 1].id] }));
|
|
@@ -163,7 +164,8 @@ function orderedTransactions(plan, mode, progress, approvals, batchSize) {
|
|
|
163
164
|
function attachEstimates(transactions, simulation) {
|
|
164
165
|
return transactions.map((transaction) => {
|
|
165
166
|
const estimate = simulation.steps.find((step) => step.transactionId === transaction.id)?.estimate;
|
|
166
|
-
return { ...transaction, calldataBytes: (transaction.data.length - 2) / 2, gas: estimate?.gasLimit, gasPrice: estimate?.gasPrice, estimate,
|
|
167
|
+
return { ...transaction, calldataBytes: (transaction.data.length - 2) / 2, gas: estimate?.gasLimit, gasPrice: estimate?.gasPrice, estimate,
|
|
168
|
+
admission: estimate === undefined ? undefined : { admitted: simulation.admitted, confidence: simulation.confidence, executionProof: simulation.executionProof, protocolFit: simulation.protocolFit, transportPreflight: simulation.transportPreflight, blockNumber: simulation.blockNumber, blockHash: simulation.blockHash, account: simulation.account, chainId: simulation.chainId, reason: simulation.reason, limits: simulation.limits } };
|
|
167
169
|
});
|
|
168
170
|
}
|
|
169
171
|
const reviewedTransactionKinds = ["approve-reset", "approve", "atomic", "begin", "prepare", "activate", "cancel"];
|
|
@@ -189,7 +191,9 @@ function matchesReviewedNextTransaction(next, reviewed) {
|
|
|
189
191
|
next.data.toLowerCase() === reviewed.data.toLowerCase() && next.value === reviewed.value;
|
|
190
192
|
}
|
|
191
193
|
function assertReviewedTransactionUnchanged(options, reviewed, next) {
|
|
192
|
-
if (options.planned.
|
|
194
|
+
if (options.planned.ufg !== undefined)
|
|
195
|
+
assertUfgLaunchAccount(options.planned.plan, options.planned.account);
|
|
196
|
+
if (options.planned.account.toLowerCase() !== next.from.toLowerCase() || options.planned.ufg === undefined && options.planned.plan.creator.toLowerCase() !== next.from.toLowerCase()) {
|
|
193
197
|
throw new LifecyclePlanningError("ACCOUNT_MISMATCH", "Execution account changed during fresh execution or submission proof");
|
|
194
198
|
}
|
|
195
199
|
if (options.planned.chainId !== BigInt(next.chainId) || options.planned.plan.chainId !== BigInt(next.chainId)) {
|
|
@@ -216,6 +220,8 @@ async function readTokenFactoryBinding(client, orchestrator, block) {
|
|
|
216
220
|
function assertPlannedDeploymentBindings(stored, current) {
|
|
217
221
|
if (hashLaunchPlan(stored.plan).toLowerCase() !== stored.planHash.toLowerCase() || current.planHash.toLowerCase() !== stored.planHash.toLowerCase() || current.launchId.toLowerCase() !== stored.launchId.toLowerCase())
|
|
218
222
|
throw new LifecyclePlanningError("PLAN_MUTATED", "Stored economic plan no longer matches its finalized commitment");
|
|
223
|
+
if (stored.ufg === undefined ? current.ufg !== undefined : current.ufg === undefined || hashUfgLaunchConfig(stored.ufg.config) !== stored.ufg.configHash || current.ufg.configHash !== stored.ufg.configHash)
|
|
224
|
+
throw new LifecyclePlanningError("PLAN_MUTATED", "Stored UFG route or treasury config no longer matches its finalized commitment");
|
|
219
225
|
if (current.predictedToken.toLowerCase() !== stored.predictedToken.toLowerCase() || current.tokenFactory.toLowerCase() !== stored.tokenFactory.toLowerCase() || current.tokenFactoryCodeHash.toLowerCase() !== stored.tokenFactoryCodeHash.toLowerCase())
|
|
220
226
|
throw new LifecyclePlanningError("TOKEN_FACTORY_BINDING", "Final token prediction or its immutable factory code binding changed before execution");
|
|
221
227
|
if (!current.simulation.admitted || current.progress.canonical.phase === LifecyclePhase.Active || current.progress.canonical.phase === LifecyclePhase.Cancelled)
|
|
@@ -235,11 +241,14 @@ function validatePlanningIntent(options) {
|
|
|
235
241
|
assertPlanningActive(options.signal);
|
|
236
242
|
if (mode !== "atomic" && mode !== "staged")
|
|
237
243
|
throw new LifecyclePlanningError("EXPLICIT_MODE_REQUIRED", "Choose atomic or staged explicitly; staged is never silently substituted");
|
|
238
|
-
if (
|
|
244
|
+
if (options.ufg !== undefined)
|
|
245
|
+
assertUfgLaunchAccount(plan, account);
|
|
246
|
+
else if (account.toLowerCase() !== plan.creator.toLowerCase())
|
|
239
247
|
throw new LifecyclePlanningError("ACCOUNT_MISMATCH", "Execution account must be the committed creator/payer/refund account");
|
|
240
248
|
if (plan.chainId > BigInt(Number.MAX_SAFE_INTEGER) || plan.chainId <= 0n)
|
|
241
249
|
throw new LifecyclePlanningError("CHAIN_MISMATCH", "Chain ID must be a positive exact JavaScript integer");
|
|
242
|
-
|
|
250
|
+
const shape = validatePlanShape(plan);
|
|
251
|
+
return options.ufg === undefined ? shape : { ...shape, ufgConfigHash: hashUfgLaunchConfig(options.ufg.config) };
|
|
243
252
|
}
|
|
244
253
|
function validatePlanTopology(options, marketConfigs, token) {
|
|
245
254
|
for (const [marketIndex, config] of marketConfigs.entries()) {
|
|
@@ -279,11 +288,13 @@ function assertFinalPlan(planned, signal) {
|
|
|
279
288
|
assertPlanningActive(signal);
|
|
280
289
|
if (hashLaunchPlan(planned.plan).toLowerCase() !== planned.planHash.toLowerCase() || hashLaunchIdentity(planned.plan).toLowerCase() !== planned.launchId.toLowerCase())
|
|
281
290
|
throw new LifecyclePlanningError("PLAN_MUTATED", "Economic plan changed during asynchronous planning; previous reads and simulation are invalid");
|
|
291
|
+
if (planned.ufg !== undefined && hashUfgLaunchConfig(planned.ufg.config) !== planned.ufg.configHash)
|
|
292
|
+
throw new LifecyclePlanningError("PLAN_MUTATED", "UFG treasury config changed during asynchronous planning");
|
|
282
293
|
}
|
|
283
294
|
/** One owner constructs and mines, optionally measures actual ordered buy outputs,
|
|
284
295
|
* then proves only the final protected commitment. No cached execution certificates. */
|
|
285
296
|
export async function prepareAndPlanLifecycleLaunch(options) {
|
|
286
|
-
const { commitment } = validatePlanningIntent(options);
|
|
297
|
+
const { commitment, ufgConfigHash } = validatePlanningIntent(options);
|
|
287
298
|
if (options.buySlippageBps !== undefined)
|
|
288
299
|
validateBuySlippageBps(options.buySlippageBps);
|
|
289
300
|
const needsMining = options.plan.markets.some((market) => isPoolBoundV4ConfigVersion(market.configVersion));
|
|
@@ -295,6 +306,8 @@ export async function prepareAndPlanLifecycleLaunch(options) {
|
|
|
295
306
|
assertPlanningActive(options.signal);
|
|
296
307
|
if (hashLaunchPlan(options.plan).toLowerCase() !== commitment.toLowerCase())
|
|
297
308
|
throw new LifecyclePlanningError("PLAN_MUTATED", "Economic plan changed during asynchronous preparation; previous construction is invalid");
|
|
309
|
+
if ((options.ufg === undefined ? undefined : hashUfgLaunchConfig(options.ufg.config)) !== ufgConfigHash)
|
|
310
|
+
throw new LifecyclePlanningError("PLAN_MUTATED", "UFG config changed during asynchronous preparation");
|
|
298
311
|
};
|
|
299
312
|
return withLifecycleReadClient(options.client, async (client) => {
|
|
300
313
|
const [block, chainId] = await Promise.all([readLifecycleBlock(client), readLifecycleChainId(client)]);
|
|
@@ -363,8 +376,8 @@ export async function planLaunch(options) {
|
|
|
363
376
|
});
|
|
364
377
|
}
|
|
365
378
|
async function planLaunchWithReads(options, client, pinnedBlock, ownedProgress, diagnostic = false, reviewed) {
|
|
366
|
-
const { plan, account, mode } = options;
|
|
367
|
-
const { commitment: planHash, marketConfigs } = validatePlanningIntent(options);
|
|
379
|
+
const { plan, account, mode, ufg } = options;
|
|
380
|
+
const { commitment: planHash, marketConfigs, ufgConfigHash } = validatePlanningIntent(options);
|
|
368
381
|
const launchId = hashLaunchIdentity(plan);
|
|
369
382
|
const [block, chainId] = await lifecycleStage(client, "plan.context", () => Promise.all([
|
|
370
383
|
pinnedBlock ?? readLifecycleBlock(client), readLifecycleChainId(client),
|
|
@@ -388,7 +401,10 @@ async function planLaunchWithReads(options, client, pinnedBlock, ownedProgress,
|
|
|
388
401
|
resolveLifecycleLimits({ client, account, orchestrator: plan.orchestrator, block, chainId: plan.chainId }, options.limits),
|
|
389
402
|
lifecycleStage(client, "plan.progress", async () => {
|
|
390
403
|
const predictedToken = await readLifecycleTokenAtBlock(client, plan, block);
|
|
391
|
-
const identity = { plan, planHash, launchId, predictedToken, account, mode, confirmations: options.confirmations ?? 1
|
|
404
|
+
const identity = { plan, planHash, launchId, predictedToken, account, mode, confirmations: options.confirmations ?? 1,
|
|
405
|
+
...(ufg === undefined ? {} : { ufg: { config: ufg.config, configHash: ufgConfigHash } }) };
|
|
406
|
+
if (ufg !== undefined)
|
|
407
|
+
validateUfgLaunchPlan(plan, ufg.config, predictedToken);
|
|
392
408
|
const progress = ownedProgress ?? await readLaunchProgress({ client, planned: identity, receipts: options.receipts, signal: options.signal }, block);
|
|
393
409
|
if (ownedProgress !== undefined && progress.token.toLowerCase() !== predictedToken.toLowerCase())
|
|
394
410
|
throw new LifecyclePlanningError("TOKEN_IDENTITY", "Predicted token changed after its canonical progress was read");
|
|
@@ -396,8 +412,8 @@ async function planLaunchWithReads(options, client, pinnedBlock, ownedProgress,
|
|
|
396
412
|
}),
|
|
397
413
|
]));
|
|
398
414
|
assertPlanningActive(options.signal);
|
|
399
|
-
const placeholder = { backend: "unavailable", confidence: "provisional", admitted: false, executionProof: "unavailable", protocolFit: "unknown", transportPreflight: "not-requested", blockNumber: block.number, blockHash: block.hash, account, chainId: plan.chainId, limits, steps: [] };
|
|
400
|
-
let planned = { ...identity, tokenFactory, tokenFactoryCodeHash, chainId: plan.chainId, transactions: [], totalCalldataBytes: 0, prerequisites: [], profiles: [], hookDeployments: [], progress, simulation: placeholder,
|
|
415
|
+
const placeholder = { backend: "unavailable", confidence: "provisional", admitted: false, executionProof: "unavailable", protocolFit: "unknown", transportPreflight: "not-requested", blockNumber: block.number, blockHash: block.hash, account, chainId: plan.chainId, limits, steps: [], deferredTransactionIds: [] };
|
|
416
|
+
let planned = { ...identity, tokenFactory, tokenFactoryCodeHash, chainId: plan.chainId, transactions: [], totalCalldataBytes: 0, prerequisites: [], profiles: [], hookDeployments: [], progress, simulation: placeholder, limits: options.limits,
|
|
401
417
|
allowTopologyGaps: options.allowTopologyGaps === true, allowMissingPermanentTail: options.allowMissingPermanentTail === true };
|
|
402
418
|
const receiptsPending = progress.receipts.some((receipt) => receipt.status === "pending" || receipt.status === "unconfirmed");
|
|
403
419
|
if (!progress.confirmationSafe || receiptsPending) {
|
|
@@ -422,58 +438,69 @@ async function planLaunchWithReads(options, client, pinnedBlock, ownedProgress,
|
|
|
422
438
|
if (progress.canonical.phase === LifecyclePhase.None && progress.head.phase === LifecyclePhase.None)
|
|
423
439
|
validatePlanTopology(options, marketConfigs, identity.predictedToken);
|
|
424
440
|
const [funding, metadata] = await lifecycleStage(client, "plan.inputs", () => Promise.all([
|
|
425
|
-
progress.canonical.phase === LifecyclePhase.None ? readFunding(client, plan, block) : { prerequisites: [], approvals: [] },
|
|
441
|
+
progress.canonical.phase === LifecyclePhase.None ? readFunding(client, plan, block, ufg === undefined ? plan.creator : account, ufg !== undefined) : { prerequisites: [], approvals: [] },
|
|
426
442
|
readPlanMetadata(client, plan, identity.predictedToken, block),
|
|
427
443
|
]));
|
|
428
444
|
assertFinalPlan(planned, options.signal);
|
|
429
445
|
planned = { ...planned, prerequisites: funding.prerequisites, profiles: metadata.profiles, hookDeployments: metadata.hookDeployments };
|
|
430
|
-
|
|
431
|
-
|
|
446
|
+
const prepared = progress.canonical.preparedMarkets;
|
|
447
|
+
const computeCap = limits.transactionGasCeiling !== undefined && limits.transactionGasCeiling < limits.executionGasCeiling ? limits.transactionGasCeiling : limits.executionGasCeiling;
|
|
448
|
+
let batches = [];
|
|
449
|
+
if (mode === "staged")
|
|
450
|
+
batches = reviewed === undefined ? packPreparationBatches(plan, prepared, computeCap)
|
|
451
|
+
: [...(prepared > 0 ? [prepared] : []), ...(prepared < plan.markets.length ? [plan.markets.length - prepared] : [])];
|
|
452
|
+
if (reviewed !== undefined && reviewed.kind === "prepare") {
|
|
453
|
+
// Canonical progress fixes the start; the exact held calldata fixes its span.
|
|
454
|
+
// Never rediscover a batch or enlarge a reviewed transaction.
|
|
455
|
+
const match = /^prepare:(\d+):(\d+)$/.exec(reviewed.id);
|
|
456
|
+
const start = Number(match?.[1]), count = Number(match?.[2]);
|
|
457
|
+
if (start !== prepared || !Number.isSafeInteger(count) || count <= 0 || start + count > plan.markets.length)
|
|
458
|
+
throw new LifecyclePlanningError("REVIEWED_TRANSACTION_MISMATCH", "Reviewed preparation differs from canonical unfinished progress");
|
|
459
|
+
batches = [...(prepared > 0 ? [prepared] : []), count, ...(start + count < plan.markets.length ? [plan.markets.length - start - count] : [])];
|
|
460
|
+
}
|
|
461
|
+
let transactions = orderedTransactions(plan, mode, progress, funding.approvals, batches, ufg);
|
|
462
|
+
if (reviewed !== undefined) {
|
|
463
|
+
if (!matchesReviewedNextTransaction(transactions[0], reviewed))
|
|
464
|
+
throw new LifecyclePlanningError("REVIEWED_TRANSACTION_MISMATCH", "Reviewed transaction differs from the current canonical unfinished next step");
|
|
465
|
+
transactions = transactions.slice(0, 1);
|
|
466
|
+
}
|
|
432
467
|
if (metadata.reasons.length > 0) {
|
|
433
468
|
await assertLifecycleBlock(client, block, plan.chainId);
|
|
434
469
|
return { ...planned, simulation: { ...placeholder, confidence: "stateful", reason: metadata.reasons.join("; "), failureCategory: "semantic" }, transactions, totalCalldataBytes: transactions.reduce((total, transaction) => total + (transaction.data.length - 2) / 2, 0) };
|
|
435
470
|
}
|
|
436
|
-
const preparedSimulation = prepareLaunchSimulation({ client, planned, limits: options.limits, fork: options.fork, signal: options.signal }, block);
|
|
471
|
+
const preparedSimulation = prepareLaunchSimulation({ client, planned, limits: options.limits, fork: options.fork, signal: options.signal }, block, true, reviewed);
|
|
437
472
|
try {
|
|
438
|
-
const execute = diagnostic ? preparedSimulation.measure : (candidate) =>
|
|
439
|
-
if (reviewed === undefined)
|
|
440
|
-
return preparedSimulation(candidate);
|
|
441
|
-
if (!matchesReviewedNextTransaction(candidate[0], reviewed)) {
|
|
442
|
-
// A fresh prepare batch may still require SDK-owned capacity discovery.
|
|
443
|
-
// Never use held fees for a different step or caller-selected calldata.
|
|
444
|
-
if (candidate[0]?.kind === "prepare" && reviewed.kind === "prepare")
|
|
445
|
-
return preparedSimulation(candidate);
|
|
446
|
-
throw new LifecyclePlanningError("REVIEWED_TRANSACTION_MISMATCH", "Reviewed transaction differs from the current canonical unfinished next step");
|
|
447
|
-
}
|
|
448
|
-
return preparedSimulation(candidate, reviewed);
|
|
449
|
-
};
|
|
473
|
+
const execute = diagnostic ? preparedSimulation.measure : (candidate) => preparedSimulation(candidate, reviewed);
|
|
450
474
|
let simulation = await execute(transactions);
|
|
451
475
|
assertFinalPlan(planned, options.signal);
|
|
452
476
|
if (mode === "staged") {
|
|
453
|
-
// Only
|
|
454
|
-
//
|
|
455
|
-
while (!simulation.admitted && simulation.
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
simulation.
|
|
459
|
-
const
|
|
460
|
-
if (
|
|
477
|
+
// Only a measurement that consumed almost its entire legal envelope
|
|
478
|
+
// invalidates packing estimates, including gas hidden by CREATE wrappers.
|
|
479
|
+
while (reviewed === undefined && !simulation.admitted && simulation.failedTransactionId?.startsWith("prepare:")) {
|
|
480
|
+
const failedIndex = transactions.findIndex((transaction) => transaction.id === simulation.failedTransactionId);
|
|
481
|
+
const failedTransaction = transactions[failedIndex];
|
|
482
|
+
const step = simulation.steps.find((candidate) => candidate.transactionId === simulation.failedTransactionId);
|
|
483
|
+
const count = failedTransaction?.marketCount ?? 0;
|
|
484
|
+
if (count <= 1 || step?.estimate !== undefined || step?.gasUsed === undefined || step.gasLimit === undefined || step.gasUsed * 100n < step.gasLimit * 95n)
|
|
461
485
|
break;
|
|
462
|
-
|
|
463
|
-
|
|
486
|
+
let first = 0;
|
|
487
|
+
const batchIndex = batches.findIndex((batch) => { const matches = first === failedTransaction?.marketStart; first += batch; return matches; });
|
|
488
|
+
const left = Math.ceil(count / 2);
|
|
489
|
+
batches.splice(batchIndex, 1, left, count - left);
|
|
490
|
+
transactions = orderedTransactions(plan, mode, progress, funding.approvals, batches, ufg);
|
|
464
491
|
simulation = await execute(transactions);
|
|
465
492
|
assertFinalPlan(planned, options.signal);
|
|
466
493
|
}
|
|
467
494
|
if (!simulation.admitted && simulation.failedTransactionId === "activate")
|
|
468
495
|
simulation = { ...simulation, reason: `${simulation.reason ?? "Final activation failed"}; final mint/lock/all-buys/public-opening is indivisible and will not be partitioned` };
|
|
469
496
|
}
|
|
470
|
-
else if (!diagnostic && !simulation.admitted) {
|
|
497
|
+
else if (!diagnostic && !simulation.admitted && !(simulation.capacityConstraint === "compute" && simulation.confidence === "provisional")) {
|
|
471
498
|
simulation = { ...simulation, reason: `${simulation.reason ?? "Exact atomic plan is not admitted"}; choose staged explicitly only if empty preparation can be partitioned and complete activation fits` };
|
|
472
499
|
}
|
|
473
500
|
if (reviewed !== undefined && !matchesReviewedNextTransaction(transactions[0], reviewed)) {
|
|
474
501
|
throw new LifecyclePlanningError("REVIEWED_TRANSACTION_MISMATCH", "Reviewed transaction differs from the current canonical unfinished next step");
|
|
475
502
|
}
|
|
476
|
-
return { ...planned, simulation,
|
|
503
|
+
return { ...planned, simulation, transactions: attachEstimates(transactions, simulation), totalCalldataBytes: transactions.reduce((total, transaction) => total + (transaction.data.length - 2) / 2, 0) };
|
|
477
504
|
}
|
|
478
505
|
finally {
|
|
479
506
|
preparedSimulation.close();
|
|
@@ -550,7 +577,9 @@ export async function buildNextTransaction(options) {
|
|
|
550
577
|
if (progress.canonical.phase === LifecyclePhase.None)
|
|
551
578
|
throw new LifecyclePlanningError("NOT_STARTED", "An unstarted plan has no launch escrow to cancel");
|
|
552
579
|
const { planned } = options;
|
|
553
|
-
|
|
580
|
+
assertFinalPlan(planned, options.signal);
|
|
581
|
+
const transaction = planned.ufg !== undefined ? buildUfgCancelTransaction({ plan: planned.plan, preparedMarkets: progress.canonical.preparedMarkets })
|
|
582
|
+
: { id: "cancel", kind: "cancel", chainId: Number(planned.chainId), from: planned.account, to: planned.plan.orchestrator, data: encodeFunctionData({ abi: launchLifecycleAbi, functionName: "cancelLaunch", args: [planned.plan] }), value: 0n, dependencies: [], postconditions: [{ kind: "launch", phase: "Cancelled", preparedMarkets: progress.canonical.preparedMarkets }] };
|
|
554
583
|
if (reviewed !== undefined && !matchesReviewedNextTransaction(transaction, reviewed))
|
|
555
584
|
throw new LifecyclePlanningError("REVIEWED_TRANSACTION_MISMATCH", "Reviewed transaction differs from the current canonical cancellation");
|
|
556
585
|
const simulation = await simulateLaunchTransactions({ client, planned, limits: options.limits === undefined ? planned.limits : options.limits, fork: options.fork, signal: options.signal }, [transaction], block, reviewed);
|
|
@@ -562,7 +591,7 @@ export async function buildNextTransaction(options) {
|
|
|
562
591
|
return preflightNextTransaction(options, next, simulation, reviewed);
|
|
563
592
|
}
|
|
564
593
|
const refreshed = await lifecycleStage(client, "plan", () => planLaunchWithReads({ client, plan: options.planned.plan, account: options.planned.account, mode: options.planned.mode, limits: options.limits === undefined ? options.planned.limits : options.limits, fork: options.fork, receipts: options.receipts, confirmations: options.confirmations ?? options.planned.confirmations, signal: options.signal,
|
|
565
|
-
allowTopologyGaps: options.planned.allowTopologyGaps, allowMissingPermanentTail: options.planned.allowMissingPermanentTail }, client, block, progress, false, reviewed));
|
|
594
|
+
ufg: options.planned.ufg, allowTopologyGaps: options.planned.allowTopologyGaps, allowMissingPermanentTail: options.planned.allowMissingPermanentTail }, client, block, progress, false, reviewed));
|
|
566
595
|
assertFinalPlan(refreshed, options.signal);
|
|
567
596
|
if (!refreshed.simulation.admitted)
|
|
568
597
|
throw new LifecyclePlanningError("PLAN_NOT_ADMITTED", refreshed.simulation.reason ?? "Remaining exact launch sequence is not admitted", refreshed.simulation);
|
|
@@ -583,7 +612,7 @@ export async function simulateLaunchPlan(options) {
|
|
|
583
612
|
client, plan: planned.plan, account: planned.account, mode: planned.mode,
|
|
584
613
|
limits: options.limits === undefined ? planned.limits : options.limits, fork: options.fork,
|
|
585
614
|
receipts: options.receipts, confirmations: options.confirmations ?? planned.confirmations, signal: options.signal,
|
|
586
|
-
allowTopologyGaps: planned.allowTopologyGaps, allowMissingPermanentTail: planned.allowMissingPermanentTail,
|
|
615
|
+
ufg: planned.ufg, allowTopologyGaps: planned.allowTopologyGaps, allowMissingPermanentTail: planned.allowMissingPermanentTail,
|
|
587
616
|
});
|
|
588
617
|
assertPlannedDeploymentBindings(planned, current);
|
|
589
618
|
return current.simulation;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"planner.js","sourceRoot":"","sources":["../../src/lifecycle/planner.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"planner.js","sourceRoot":"","sources":["../../src/lifecycle/planner.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { Address, Hex } from "viem";
|
|
2
|
+
import type { LaunchPlanV1 } from "./schema.js";
|
|
2
3
|
import type { LifecycleProfile } from "./types.js";
|
|
3
4
|
export declare enum KnownLifecycleProfile {
|
|
4
5
|
Abyss0 = "abyss-0",
|
|
@@ -8,7 +9,9 @@ export declare enum KnownLifecycleProfile {
|
|
|
8
9
|
V4FixedFeePool = "v4-fixed-fee-pool",
|
|
9
10
|
V4DynamicFeePool = "v4-dynamic-fee-pool",
|
|
10
11
|
V4HmmFixedPool = "v4-hmm-fixed-pool",
|
|
11
|
-
V4HmmDynamicPool = "v4-hmm-dynamic-pool"
|
|
12
|
+
V4HmmDynamicPool = "v4-hmm-dynamic-pool",
|
|
13
|
+
V4UfgFixedPool = "v4-ufg-fixed-pool",
|
|
14
|
+
V4UfgDynamicPool = "v4-ufg-dynamic-pool"
|
|
12
15
|
}
|
|
13
16
|
export declare enum KnownLifecycleHook {
|
|
14
17
|
FixedFeePoolV1 = "fixed-fee-pool-v1",
|
|
@@ -52,6 +55,10 @@ type KnownLifecycleDeploymentIdentity = {
|
|
|
52
55
|
chainId: number | bigint;
|
|
53
56
|
orchestrator: Address;
|
|
54
57
|
};
|
|
58
|
+
export declare const HMM_V2_FORWARDING_BASE_GAS = 4250000n;
|
|
59
|
+
export declare const HMM_V2_FORWARDING_EXTRA_MARKET_GAS = 500000n;
|
|
60
|
+
export declare const HMM_V2_PREPARE_GAS = 14500000n;
|
|
61
|
+
export declare function hmmV2ForwardingReserve(plan: LaunchPlanV1): bigint;
|
|
55
62
|
/** Local lookup only. Unknown deployments remain available to explicit live discovery. */
|
|
56
63
|
export declare function getKnownLifecycleDeployment(options: KnownLifecycleDeploymentIdentity): LifecycleDeploymentPreset | undefined;
|
|
57
64
|
/** Resolve a documented enum key or release-owned ID, without replacement metadata. */
|
|
@@ -62,7 +69,7 @@ export declare function getKnownLifecycleProfile(options: KnownLifecycleDeployme
|
|
|
62
69
|
profileId: Hex;
|
|
63
70
|
key?: never;
|
|
64
71
|
})): LifecycleProfilePreset | undefined;
|
|
65
|
-
/** Stable, frozen order: Abyss variants
|
|
72
|
+
/** Stable, frozen order: Abyss variants, fixed/dynamic V4, HMM, then UFG fixed/dynamic. */
|
|
66
73
|
export declare function listKnownLifecycleProfiles(options: KnownLifecycleDeploymentIdentity): readonly LifecycleProfilePreset[];
|
|
67
74
|
export {};
|
|
68
75
|
//# sourceMappingURL=presets.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"presets.d.ts","sourceRoot":"","sources":["../../src/lifecycle/presets.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"presets.d.ts","sourceRoot":"","sources":["../../src/lifecycle/presets.ts"],"names":[],"mappings":"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"}
|