@black-market/sdk 0.11.0 → 0.13.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 +96 -79
- 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/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 +101 -46
- package/dist/lifecycle/planner.js.map +1 -1
- package/dist/lifecycle/presets.d.ts +4 -2
- package/dist/lifecycle/presets.d.ts.map +1 -1
- package/dist/lifecycle/presets.js +11 -4
- package/dist/lifecycle/presets.js.map +1 -1
- package/dist/lifecycle/progress.d.ts +3 -1
- package/dist/lifecycle/progress.d.ts.map +1 -1
- package/dist/lifecycle/progress.js +145 -59
- package/dist/lifecycle/progress.js.map +1 -1
- package/dist/lifecycle/rpc.d.ts +8 -2
- package/dist/lifecycle/rpc.d.ts.map +1 -1
- package/dist/lifecycle/rpc.js +165 -9
- 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 +15 -11
- package/dist/lifecycle/simulation.js.map +1 -1
- package/dist/lifecycle/types.d.ts +23 -1
- 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 +611 -1363
- package/docs/reference.md +332 -0
- package/examples/.env.example +3 -2
- package/examples/README.md +172 -539
- package/examples/launch-example-support.ts +11 -3
- package/examples/launch-example.ts +1 -1
- package/examples/launch-lifecycle-smoke.ts +1 -1
- package/examples/ufg-launch-config.ts +31 -0
- package/package.json +1 -1
- package/src/lifecycle/abi.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 +95 -45
- package/src/lifecycle/presets.ts +11 -4
- package/src/lifecycle/progress.ts +131 -51
- package/src/lifecycle/rpc.ts +158 -10
- package/src/lifecycle/simulation.ts +14 -10
- package/src/lifecycle/types.ts +15 -2
- package/src/lifecycle/ufg-abi.ts +173 -0
- package/src/lifecycle/ufg-config.ts +77 -0
- package/src/lifecycle/ufg.ts +86 -0
|
@@ -3,15 +3,17 @@ import { ABYSS_FEE_TIERS } from "../abyss.js";
|
|
|
3
3
|
import { assertLaunchTopologyCoverage, getTickAtSqrtRatio } from "../launch.js";
|
|
4
4
|
import { launchLifecycleAbi, lifecycleAdapterAbi, lifecycleErc20Abi } from "./abi.js";
|
|
5
5
|
import { hashLaunchIdentity, hashLaunchPlan, LifecycleFundingKind, LifecyclePhase, LifecycleRewardMode, LifecycleTokenKind, LIFECYCLE_MAX_REWARD_ERC20_SUPPLY, LIFECYCLE_MAX_ERC404_SUPPLY, parseLaunchPlan, serializeLaunchPlan } from "./schema.js";
|
|
6
|
-
import { readLaunchProgress, readLifecycleProfiles, readLifecycleTokenAtBlock, readPoolBoundHookDeployment } from "./progress.js";
|
|
6
|
+
import { readLaunchProgress, readLifecycleHeadProgress, readLifecycleProfiles, readLifecycleTokenAtBlock, readPoolBoundHookDeployment } from "./progress.js";
|
|
7
7
|
import { decodeAbyssLifecycleMarketConfig, decodePoolBoundV4LifecycleMarketConfig, decodeV4LifecycleMarketConfig, encodePoolBoundV4LifecycleMarketConfig, isPoolBoundV4ConfigVersion, minePoolBoundHookSalt } from "./markets.js";
|
|
8
|
-
import { assertLifecycleBlock, assertLifecycleReadClientOpen, lifecycleFailureReason, lifecyclePinnedRpc, lifecycleStaticRpc, lifecycleRpc, lifecycleStage, readLifecycleBlock, readLifecycleChainId, readLifecycleContract, resolveLifecycleLimits, rpcHex, rpcQuantity, withLifecycleReadClient } from "./rpc.js";
|
|
8
|
+
import { assertLifecycleBlock, assertLifecycleReadClientOpen, lifecycleFailureReason, lifecyclePinnedRpc, lifecycleStaticRpc, lifecycleRpc, lifecycleStage, readLifecycleBlock, readLifecycleChainId, readLifecycleContract, readLifecycleGasPrice, resolveLifecycleLimits, rpcHex, rpcQuantity, withLifecycleReadClient } from "./rpc.js";
|
|
9
9
|
import { prepareLaunchSimulation, simulateLaunchTransactions } from "./simulation.js";
|
|
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
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,16 @@ 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, batches) {
|
|
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
|
|
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) &&
|
|
156
160
|
(transaction.kind !== "prepare" || (transaction.marketStart ?? 0) >= prepared));
|
|
157
161
|
const transactions = progress.canonical.phase === LifecyclePhase.None ? [...approvals, ...commands] : commands;
|
|
158
|
-
return transactions.map((transaction, index) => ({ ...transaction, calldataBytes: (transaction.data.length - 2) / 2, dependencies: index === 0 ? [] : [transactions[index - 1].id] }));
|
|
162
|
+
return transactions.map((transaction, index) => ({ ...transaction, nonce: progress.pendingAccountNonce + BigInt(index), calldataBytes: (transaction.data.length - 2) / 2, dependencies: index === 0 ? [] : [transactions[index - 1].id] }));
|
|
159
163
|
}
|
|
160
164
|
function attachEstimates(transactions, simulation) {
|
|
161
165
|
return transactions.map((transaction) => {
|
|
@@ -176,7 +180,8 @@ function readReviewedNextTransaction(transaction) {
|
|
|
176
180
|
typeof transaction.data !== "string" || !/^0x(?:[\da-fA-F]{2})*$/.test(transaction.data) ||
|
|
177
181
|
typeof transaction.value !== "bigint" || transaction.value < 0n || transaction.value >= 1n << 256n ||
|
|
178
182
|
typeof transaction.gas !== "bigint" || transaction.gas <= 0n || transaction.gas >= 1n << 64n ||
|
|
179
|
-
typeof transaction.gasPrice !== "bigint" || transaction.gasPrice < 0n || transaction.gasPrice >= 1n << 256n
|
|
183
|
+
typeof transaction.gasPrice !== "bigint" || transaction.gasPrice < 0n || transaction.gasPrice >= 1n << 256n ||
|
|
184
|
+
transaction.nonce !== undefined && (typeof transaction.nonce !== "bigint" || transaction.nonce < 0n || transaction.nonce >= 1n << 64n)) {
|
|
180
185
|
throw new LifecyclePlanningError("INVALID_REVIEWED_TRANSACTION", "Reviewed transaction must contain a well-formed exact chain/account/target/calldata/value and uint64 gas/uint256 price envelope");
|
|
181
186
|
}
|
|
182
187
|
return transaction;
|
|
@@ -184,10 +189,13 @@ function readReviewedNextTransaction(transaction) {
|
|
|
184
189
|
function matchesReviewedNextTransaction(next, reviewed) {
|
|
185
190
|
return next !== undefined && next.id === reviewed.id && next.kind === reviewed.kind && next.chainId === reviewed.chainId &&
|
|
186
191
|
next.from.toLowerCase() === reviewed.from.toLowerCase() && next.to.toLowerCase() === reviewed.to.toLowerCase() &&
|
|
187
|
-
next.data.toLowerCase() === reviewed.data.toLowerCase() && next.value === reviewed.value
|
|
192
|
+
next.data.toLowerCase() === reviewed.data.toLowerCase() && next.value === reviewed.value &&
|
|
193
|
+
(reviewed.nonce === undefined || next.nonce === reviewed.nonce);
|
|
188
194
|
}
|
|
189
195
|
function assertReviewedTransactionUnchanged(options, reviewed, next) {
|
|
190
|
-
if (options.planned.
|
|
196
|
+
if (options.planned.ufg !== undefined)
|
|
197
|
+
assertUfgLaunchAccount(options.planned.plan, options.planned.account);
|
|
198
|
+
if (options.planned.account.toLowerCase() !== next.from.toLowerCase() || options.planned.ufg === undefined && options.planned.plan.creator.toLowerCase() !== next.from.toLowerCase()) {
|
|
191
199
|
throw new LifecyclePlanningError("ACCOUNT_MISMATCH", "Execution account changed during fresh execution or submission proof");
|
|
192
200
|
}
|
|
193
201
|
if (options.planned.chainId !== BigInt(next.chainId) || options.planned.plan.chainId !== BigInt(next.chainId)) {
|
|
@@ -214,6 +222,8 @@ async function readTokenFactoryBinding(client, orchestrator, block) {
|
|
|
214
222
|
function assertPlannedDeploymentBindings(stored, current) {
|
|
215
223
|
if (hashLaunchPlan(stored.plan).toLowerCase() !== stored.planHash.toLowerCase() || current.planHash.toLowerCase() !== stored.planHash.toLowerCase() || current.launchId.toLowerCase() !== stored.launchId.toLowerCase())
|
|
216
224
|
throw new LifecyclePlanningError("PLAN_MUTATED", "Stored economic plan no longer matches its finalized commitment");
|
|
225
|
+
if (stored.ufg === undefined ? current.ufg !== undefined : current.ufg === undefined || hashUfgLaunchConfig(stored.ufg.config) !== stored.ufg.configHash || current.ufg.configHash !== stored.ufg.configHash)
|
|
226
|
+
throw new LifecyclePlanningError("PLAN_MUTATED", "Stored UFG route or treasury config no longer matches its finalized commitment");
|
|
217
227
|
if (current.predictedToken.toLowerCase() !== stored.predictedToken.toLowerCase() || current.tokenFactory.toLowerCase() !== stored.tokenFactory.toLowerCase() || current.tokenFactoryCodeHash.toLowerCase() !== stored.tokenFactoryCodeHash.toLowerCase())
|
|
218
228
|
throw new LifecyclePlanningError("TOKEN_FACTORY_BINDING", "Final token prediction or its immutable factory code binding changed before execution");
|
|
219
229
|
if (!current.simulation.admitted || current.progress.canonical.phase === LifecyclePhase.Active || current.progress.canonical.phase === LifecyclePhase.Cancelled)
|
|
@@ -233,11 +243,14 @@ function validatePlanningIntent(options) {
|
|
|
233
243
|
assertPlanningActive(options.signal);
|
|
234
244
|
if (mode !== "atomic" && mode !== "staged")
|
|
235
245
|
throw new LifecyclePlanningError("EXPLICIT_MODE_REQUIRED", "Choose atomic or staged explicitly; staged is never silently substituted");
|
|
236
|
-
if (
|
|
246
|
+
if (options.ufg !== undefined)
|
|
247
|
+
assertUfgLaunchAccount(plan, account);
|
|
248
|
+
else if (account.toLowerCase() !== plan.creator.toLowerCase())
|
|
237
249
|
throw new LifecyclePlanningError("ACCOUNT_MISMATCH", "Execution account must be the committed creator/payer/refund account");
|
|
238
250
|
if (plan.chainId > BigInt(Number.MAX_SAFE_INTEGER) || plan.chainId <= 0n)
|
|
239
251
|
throw new LifecyclePlanningError("CHAIN_MISMATCH", "Chain ID must be a positive exact JavaScript integer");
|
|
240
|
-
|
|
252
|
+
const shape = validatePlanShape(plan);
|
|
253
|
+
return options.ufg === undefined ? shape : { ...shape, ufgConfigHash: hashUfgLaunchConfig(options.ufg.config) };
|
|
241
254
|
}
|
|
242
255
|
function validatePlanTopology(options, marketConfigs, token) {
|
|
243
256
|
for (const [marketIndex, config] of marketConfigs.entries()) {
|
|
@@ -277,24 +290,37 @@ function assertFinalPlan(planned, signal) {
|
|
|
277
290
|
assertPlanningActive(signal);
|
|
278
291
|
if (hashLaunchPlan(planned.plan).toLowerCase() !== planned.planHash.toLowerCase() || hashLaunchIdentity(planned.plan).toLowerCase() !== planned.launchId.toLowerCase())
|
|
279
292
|
throw new LifecyclePlanningError("PLAN_MUTATED", "Economic plan changed during asynchronous planning; previous reads and simulation are invalid");
|
|
293
|
+
if (planned.ufg !== undefined && hashUfgLaunchConfig(planned.ufg.config) !== planned.ufg.configHash)
|
|
294
|
+
throw new LifecyclePlanningError("PLAN_MUTATED", "UFG treasury config changed during asynchronous planning");
|
|
280
295
|
}
|
|
281
296
|
/** One owner constructs and mines, optionally measures actual ordered buy outputs,
|
|
282
297
|
* then proves only the final protected commitment. No cached execution certificates. */
|
|
283
298
|
export async function prepareAndPlanLifecycleLaunch(options) {
|
|
284
|
-
const { commitment } = validatePlanningIntent(options);
|
|
299
|
+
const { commitment, ufgConfigHash } = validatePlanningIntent(options);
|
|
285
300
|
if (options.buySlippageBps !== undefined)
|
|
286
301
|
validateBuySlippageBps(options.buySlippageBps);
|
|
302
|
+
const fixed = options.fixedFinalEnvelope;
|
|
303
|
+
if (fixed !== undefined && (fixed === null || typeof fixed !== "object" || options.mode !== "atomic" || typeof fixed.gas !== "bigint" || fixed.gas <= 0n || fixed.gas >= 1n << 64n ||
|
|
304
|
+
fixed.gasPrice !== undefined && (typeof fixed.gasPrice !== "bigint" || fixed.gasPrice < 0n || fixed.gasPrice >= 1n << 256n))) {
|
|
305
|
+
throw new LifecyclePlanningError("INVALID_GAS_ENVELOPE", "Fixed final envelope requires atomic mode, exact positive uint64 gas and optional uint256 price");
|
|
306
|
+
}
|
|
307
|
+
const heldEnvelope = fixed === undefined ? undefined : Object.freeze({ ...fixed });
|
|
287
308
|
const needsMining = options.plan.markets.some((market) => isPoolBoundV4ConfigVersion(market.configVersion));
|
|
288
309
|
const needsProtection = options.buySlippageBps !== undefined && options.plan.buys.length !== 0;
|
|
289
|
-
if (!needsMining && !needsProtection)
|
|
310
|
+
if (!needsMining && !needsProtection && fixed === undefined)
|
|
290
311
|
return planLaunch(options);
|
|
291
312
|
const draft = parseLaunchPlan(serializeLaunchPlan(options.plan));
|
|
292
313
|
const assertDraft = () => {
|
|
293
314
|
assertPlanningActive(options.signal);
|
|
294
315
|
if (hashLaunchPlan(options.plan).toLowerCase() !== commitment.toLowerCase())
|
|
295
316
|
throw new LifecyclePlanningError("PLAN_MUTATED", "Economic plan changed during asynchronous preparation; previous construction is invalid");
|
|
317
|
+
if ((options.ufg === undefined ? undefined : hashUfgLaunchConfig(options.ufg.config)) !== ufgConfigHash)
|
|
318
|
+
throw new LifecyclePlanningError("PLAN_MUTATED", "UFG config changed during asynchronous preparation");
|
|
319
|
+
if (fixed === undefined ? options.fixedFinalEnvelope !== undefined : options.fixedFinalEnvelope !== fixed ||
|
|
320
|
+
fixed.gas !== heldEnvelope.gas || fixed.gasPrice !== heldEnvelope.gasPrice)
|
|
321
|
+
throw new LifecyclePlanningError("INVALID_GAS_ENVELOPE", "Fixed final envelope changed during preparation");
|
|
296
322
|
};
|
|
297
|
-
|
|
323
|
+
const result = await withLifecycleReadClient(options.client, async (client) => {
|
|
298
324
|
const [block, chainId] = await Promise.all([readLifecycleBlock(client), readLifecycleChainId(client)]);
|
|
299
325
|
if (chainId !== draft.chainId)
|
|
300
326
|
throw new LifecyclePlanningError("CHAIN_MISMATCH", "RPC chain differs from the economic plan being finalized");
|
|
@@ -322,13 +348,19 @@ export async function prepareAndPlanLifecycleLaunch(options) {
|
|
|
322
348
|
// start at a fresh post-mining snapshot and share it through final protection.
|
|
323
349
|
const executionBlock = needsMining ? await readLifecycleBlock(client) : block;
|
|
324
350
|
assertDraft();
|
|
351
|
+
const price = heldEnvelope === undefined ? undefined : heldEnvelope.gasPrice ?? rpcQuantity(await readLifecycleGasPrice(client), "gas price");
|
|
352
|
+
const baseFeeEnvelope = (executionBlock.baseFeePerGas ?? 0n) * 2n;
|
|
353
|
+
const finalEnvelope = heldEnvelope === undefined ? undefined : Object.freeze({
|
|
354
|
+
gas: heldEnvelope.gas,
|
|
355
|
+
gasPrice: heldEnvelope.gasPrice ?? (price > baseFeeEnvelope ? price : baseFeeEnvelope),
|
|
356
|
+
});
|
|
325
357
|
let plan = { ...draft, markets };
|
|
326
358
|
let ownedProgress;
|
|
327
359
|
if (needsProtection) {
|
|
328
360
|
// A diagnostic minimum is never returned as an admitted or executable plan.
|
|
329
361
|
// Price guards, funding minima, recipients and all ordered budgets stay exact.
|
|
330
362
|
const diagnosticPlan = { ...plan, buys: plan.buys.map((buy) => ({ ...buy, minTokenOut: 1n })) };
|
|
331
|
-
const diagnostic = await lifecycleStage(client, "plan", () => planLaunchWithReads({ ...options, plan: diagnosticPlan }, client, executionBlock, undefined, true));
|
|
363
|
+
const diagnostic = await lifecycleStage(client, "plan", () => planLaunchWithReads({ ...options, plan: diagnosticPlan }, client, executionBlock, undefined, true, undefined, finalEnvelope));
|
|
332
364
|
assertDraft();
|
|
333
365
|
if (diagnostic.progress.canonical.phase !== LifecyclePhase.None || diagnostic.progress.head.phase !== LifecyclePhase.None)
|
|
334
366
|
throw new LifecyclePlanningError("LAUNCH_ALREADY_STARTED", "Buy protection cannot replace an already committed launch plan");
|
|
@@ -337,7 +369,7 @@ export async function prepareAndPlanLifecycleLaunch(options) {
|
|
|
337
369
|
// state. No onchain commitment existed at this exact snapshot to replace.
|
|
338
370
|
ownedProgress = { ...diagnostic.progress, planHash: hashLaunchPlan(plan) };
|
|
339
371
|
}
|
|
340
|
-
const planned = await lifecycleStage(client, "plan", () => planLaunchWithReads({ ...options, plan }, client, executionBlock, ownedProgress));
|
|
372
|
+
const planned = await lifecycleStage(client, "plan", () => planLaunchWithReads({ ...options, plan }, client, executionBlock, ownedProgress, false, undefined, finalEnvelope));
|
|
341
373
|
assertDraft();
|
|
342
374
|
assertFinalPlan(planned, options.signal);
|
|
343
375
|
if (planned.progress.canonical.phase !== LifecyclePhase.Active && planned.progress.canonical.phase !== LifecyclePhase.Cancelled) {
|
|
@@ -351,18 +383,23 @@ export async function prepareAndPlanLifecycleLaunch(options) {
|
|
|
351
383
|
throw new LifecyclePlanningError("PROTECTED_PLAN_NOT_ADMITTED", planned.simulation.reason ?? "The final protected launch did not establish exact execution proof", planned.simulation);
|
|
352
384
|
return planned;
|
|
353
385
|
});
|
|
386
|
+
assertDraft();
|
|
387
|
+
assertFinalPlan(result, options.signal);
|
|
388
|
+
return result;
|
|
354
389
|
}
|
|
355
390
|
/** Independently fresh current-state admission of an already finalized commitment. No broadcasts. */
|
|
356
391
|
export async function planLaunch(options) {
|
|
357
|
-
|
|
392
|
+
const result = await withLifecycleReadClient(options.client, async (client) => {
|
|
358
393
|
const planned = await lifecycleStage(client, "plan", () => planLaunchWithReads(options, client));
|
|
359
394
|
assertFinalPlan(planned, options.signal);
|
|
360
395
|
return planned;
|
|
361
396
|
});
|
|
397
|
+
assertFinalPlan(result, options.signal);
|
|
398
|
+
return result;
|
|
362
399
|
}
|
|
363
|
-
async function planLaunchWithReads(options, client, pinnedBlock, ownedProgress, diagnostic = false, reviewed) {
|
|
364
|
-
const { plan, account, mode } = options;
|
|
365
|
-
const { commitment: planHash, marketConfigs } = validatePlanningIntent(options);
|
|
400
|
+
async function planLaunchWithReads(options, client, pinnedBlock, ownedProgress, diagnostic = false, reviewed, fixedFinalEnvelope) {
|
|
401
|
+
const { plan, account, mode, ufg } = options;
|
|
402
|
+
const { commitment: planHash, marketConfigs, ufgConfigHash } = validatePlanningIntent(options);
|
|
366
403
|
const launchId = hashLaunchIdentity(plan);
|
|
367
404
|
const [block, chainId] = await lifecycleStage(client, "plan.context", () => Promise.all([
|
|
368
405
|
pinnedBlock ?? readLifecycleBlock(client), readLifecycleChainId(client),
|
|
@@ -385,8 +422,14 @@ async function planLaunchWithReads(options, client, pinnedBlock, ownedProgress,
|
|
|
385
422
|
preset ?? readTokenFactoryBinding(client, plan.orchestrator, block),
|
|
386
423
|
resolveLifecycleLimits({ client, account, orchestrator: plan.orchestrator, block, chainId: plan.chainId }, options.limits),
|
|
387
424
|
lifecycleStage(client, "plan.progress", async () => {
|
|
388
|
-
const predictedToken = await
|
|
389
|
-
|
|
425
|
+
const [predictedToken] = await Promise.all([
|
|
426
|
+
readLifecycleTokenAtBlock(client, plan, block),
|
|
427
|
+
ownedProgress === undefined ? readLifecycleHeadProgress(client, plan, account, block) : undefined,
|
|
428
|
+
]);
|
|
429
|
+
const identity = { plan, planHash, launchId, predictedToken, account, mode, confirmations: options.confirmations ?? 1,
|
|
430
|
+
...(ufg === undefined ? {} : { ufg: { config: ufg.config, configHash: ufgConfigHash } }) };
|
|
431
|
+
if (ufg !== undefined)
|
|
432
|
+
validateUfgLaunchPlan(plan, ufg.config, predictedToken);
|
|
390
433
|
const progress = ownedProgress ?? await readLaunchProgress({ client, planned: identity, receipts: options.receipts, signal: options.signal }, block);
|
|
391
434
|
if (ownedProgress !== undefined && progress.token.toLowerCase() !== predictedToken.toLowerCase())
|
|
392
435
|
throw new LifecyclePlanningError("TOKEN_IDENTITY", "Predicted token changed after its canonical progress was read");
|
|
@@ -420,7 +463,7 @@ async function planLaunchWithReads(options, client, pinnedBlock, ownedProgress,
|
|
|
420
463
|
if (progress.canonical.phase === LifecyclePhase.None && progress.head.phase === LifecyclePhase.None)
|
|
421
464
|
validatePlanTopology(options, marketConfigs, identity.predictedToken);
|
|
422
465
|
const [funding, metadata] = await lifecycleStage(client, "plan.inputs", () => Promise.all([
|
|
423
|
-
progress.canonical.phase === LifecyclePhase.None ? readFunding(client, plan, block) : { prerequisites: [], approvals: [] },
|
|
466
|
+
progress.canonical.phase === LifecyclePhase.None ? readFunding(client, plan, block, ufg === undefined ? plan.creator : account, ufg !== undefined) : { prerequisites: [], approvals: [] },
|
|
424
467
|
readPlanMetadata(client, plan, identity.predictedToken, block),
|
|
425
468
|
]));
|
|
426
469
|
assertFinalPlan(planned, options.signal);
|
|
@@ -440,7 +483,10 @@ async function planLaunchWithReads(options, client, pinnedBlock, ownedProgress,
|
|
|
440
483
|
throw new LifecyclePlanningError("REVIEWED_TRANSACTION_MISMATCH", "Reviewed preparation differs from canonical unfinished progress");
|
|
441
484
|
batches = [...(prepared > 0 ? [prepared] : []), count, ...(start + count < plan.markets.length ? [plan.markets.length - start - count] : [])];
|
|
442
485
|
}
|
|
443
|
-
let transactions = orderedTransactions(plan, mode, progress, funding.approvals, batches);
|
|
486
|
+
let transactions = orderedTransactions(plan, mode, progress, funding.approvals, batches, ufg);
|
|
487
|
+
if (fixedFinalEnvelope !== undefined && (transactions.length !== 1 || transactions[0].kind !== "atomic")) {
|
|
488
|
+
throw new LifecyclePlanningError("INVALID_GAS_ENVELOPE", "Fixed final envelope requires one immediate atomic launch with no preceding approvals");
|
|
489
|
+
}
|
|
444
490
|
if (reviewed !== undefined) {
|
|
445
491
|
if (!matchesReviewedNextTransaction(transactions[0], reviewed))
|
|
446
492
|
throw new LifecyclePlanningError("REVIEWED_TRANSACTION_MISMATCH", "Reviewed transaction differs from the current canonical unfinished next step");
|
|
@@ -450,9 +496,10 @@ async function planLaunchWithReads(options, client, pinnedBlock, ownedProgress,
|
|
|
450
496
|
await assertLifecycleBlock(client, block, plan.chainId);
|
|
451
497
|
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) };
|
|
452
498
|
}
|
|
453
|
-
const
|
|
499
|
+
const envelope = diagnostic ? undefined : reviewed ?? fixedFinalEnvelope;
|
|
500
|
+
const preparedSimulation = prepareLaunchSimulation({ client, planned, limits: options.limits, fork: options.fork, signal: options.signal }, block, true, envelope, fixedFinalEnvelope?.gasPrice);
|
|
454
501
|
try {
|
|
455
|
-
const execute = diagnostic ? preparedSimulation.measure : (candidate) => preparedSimulation(candidate,
|
|
502
|
+
const execute = diagnostic ? preparedSimulation.measure : (candidate) => preparedSimulation(candidate, envelope);
|
|
456
503
|
let simulation = await execute(transactions);
|
|
457
504
|
assertFinalPlan(planned, options.signal);
|
|
458
505
|
if (mode === "staged") {
|
|
@@ -469,7 +516,7 @@ async function planLaunchWithReads(options, client, pinnedBlock, ownedProgress,
|
|
|
469
516
|
const batchIndex = batches.findIndex((batch) => { const matches = first === failedTransaction?.marketStart; first += batch; return matches; });
|
|
470
517
|
const left = Math.ceil(count / 2);
|
|
471
518
|
batches.splice(batchIndex, 1, left, count - left);
|
|
472
|
-
transactions = orderedTransactions(plan, mode, progress, funding.approvals, batches);
|
|
519
|
+
transactions = orderedTransactions(plan, mode, progress, funding.approvals, batches, ufg);
|
|
473
520
|
simulation = await execute(transactions);
|
|
474
521
|
assertFinalPlan(planned, options.signal);
|
|
475
522
|
}
|
|
@@ -505,6 +552,7 @@ async function preflightNextTransaction(options, next, simulation, reviewed) {
|
|
|
505
552
|
throw new Error("Active submission RPC chain differs from the reviewed transaction");
|
|
506
553
|
const estimated = rpcQuantity(await lifecycleRpc(submissionClient, "eth_estimateGas", [{
|
|
507
554
|
from: next.from, to: next.to, data: next.data, value: toHex(next.value), gas: toHex(next.gas), gasPrice: toHex(next.gasPrice),
|
|
555
|
+
...(next.nonce === undefined ? {} : { nonce: toHex(next.nonce) }),
|
|
508
556
|
}, "latest"]), "submission gas estimate");
|
|
509
557
|
if (estimated <= 0n || estimated > next.gas)
|
|
510
558
|
throw new Error("Submission RPC gas estimate exceeds the exact reviewed envelope or is zero");
|
|
@@ -518,14 +566,6 @@ async function preflightNextTransaction(options, next, simulation, reviewed) {
|
|
|
518
566
|
const reason = `Exact next-transaction submission preflight failed: ${lifecycleFailureReason(failure)}`;
|
|
519
567
|
throw new LifecyclePlanningError("SUBMISSION_PREFLIGHT_FAILED", reason, { ...simulation, transportPreflight: "failed", reason });
|
|
520
568
|
}
|
|
521
|
-
const [canonical, chainId] = await Promise.all([
|
|
522
|
-
readLifecycleBlock(options.client, toHex(simulation.blockNumber)),
|
|
523
|
-
lifecycleRpc(options.client, "eth_chainId"),
|
|
524
|
-
]);
|
|
525
|
-
if (canonical.hash.toLowerCase() !== simulation.blockHash.toLowerCase())
|
|
526
|
-
throw new LifecyclePlanningError("STATE_REORGED", "Pinned launch proof changed during submission preflight; rebuild from canonical progress");
|
|
527
|
-
if (rpcQuantity(chainId, "chain ID") !== simulation.chainId)
|
|
528
|
-
throw new LifecyclePlanningError("CHAIN_MISMATCH", "Source RPC chain changed during submission preflight");
|
|
529
569
|
if (next.admission === undefined)
|
|
530
570
|
throw new LifecyclePlanningError("MISSING_GAS_PROOF", "Next transaction omitted its exact simulation admission", simulation);
|
|
531
571
|
assertPlanningActive(options.signal);
|
|
@@ -539,9 +579,17 @@ export async function buildNextTransaction(options) {
|
|
|
539
579
|
// Snapshot only the reviewed wire fields; caller proofs and commands are never
|
|
540
580
|
// reused, and final checks compare the mutable input with this one local copy.
|
|
541
581
|
const reviewed = supplied === undefined ? undefined : Object.freeze({ id: supplied.id, kind: supplied.kind, chainId: supplied.chainId,
|
|
542
|
-
from: supplied.from, to: supplied.to, data: supplied.data, value: supplied.value, gas: supplied.gas, gasPrice: supplied.gasPrice });
|
|
543
|
-
|
|
582
|
+
from: supplied.from, to: supplied.to, data: supplied.data, value: supplied.value, gas: supplied.gas, gasPrice: supplied.gasPrice, nonce: supplied.nonce });
|
|
583
|
+
const result = await withLifecycleReadClient(options.client, async (client) => {
|
|
544
584
|
const block = await readLifecycleBlock(client);
|
|
585
|
+
const limitSource = options.limits === undefined ? options.planned.limits : options.limits;
|
|
586
|
+
if (getKnownLifecycleDeployment({ chainId: options.planned.chainId, orchestrator: options.planned.plan.orchestrator }) !== undefined && typeof limitSource !== "function") {
|
|
587
|
+
await Promise.all([
|
|
588
|
+
readLifecycleTokenAtBlock(client, options.planned.plan, block),
|
|
589
|
+
readLifecycleHeadProgress(client, options.planned.plan, options.planned.account, block),
|
|
590
|
+
resolveLifecycleLimits({ client, account: options.planned.account, orchestrator: options.planned.plan.orchestrator, block, chainId: options.planned.chainId }, limitSource),
|
|
591
|
+
]);
|
|
592
|
+
}
|
|
545
593
|
const progress = await readLaunchProgress({ ...options, client }, block);
|
|
546
594
|
if (progress.canonical.phase === LifecyclePhase.Active || progress.canonical.phase === LifecyclePhase.Cancelled) {
|
|
547
595
|
// Only the confirmed canonical terminal phase is terminal; a head-only
|
|
@@ -559,7 +607,10 @@ export async function buildNextTransaction(options) {
|
|
|
559
607
|
if (progress.canonical.phase === LifecyclePhase.None)
|
|
560
608
|
throw new LifecyclePlanningError("NOT_STARTED", "An unstarted plan has no launch escrow to cancel");
|
|
561
609
|
const { planned } = options;
|
|
562
|
-
|
|
610
|
+
assertFinalPlan(planned, options.signal);
|
|
611
|
+
const transaction = planned.ufg !== undefined ? buildUfgCancelTransaction({ plan: planned.plan, preparedMarkets: progress.canonical.preparedMarkets })
|
|
612
|
+
: { 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 }] };
|
|
613
|
+
transaction.nonce = progress.pendingAccountNonce;
|
|
563
614
|
if (reviewed !== undefined && !matchesReviewedNextTransaction(transaction, reviewed))
|
|
564
615
|
throw new LifecyclePlanningError("REVIEWED_TRANSACTION_MISMATCH", "Reviewed transaction differs from the current canonical cancellation");
|
|
565
616
|
const simulation = await simulateLaunchTransactions({ client, planned, limits: options.limits === undefined ? planned.limits : options.limits, fork: options.fork, signal: options.signal }, [transaction], block, reviewed);
|
|
@@ -571,7 +622,7 @@ export async function buildNextTransaction(options) {
|
|
|
571
622
|
return preflightNextTransaction(options, next, simulation, reviewed);
|
|
572
623
|
}
|
|
573
624
|
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,
|
|
574
|
-
allowTopologyGaps: options.planned.allowTopologyGaps, allowMissingPermanentTail: options.planned.allowMissingPermanentTail }, client, block, progress, false, reviewed));
|
|
625
|
+
ufg: options.planned.ufg, allowTopologyGaps: options.planned.allowTopologyGaps, allowMissingPermanentTail: options.planned.allowMissingPermanentTail }, client, block, progress, false, reviewed));
|
|
575
626
|
assertFinalPlan(refreshed, options.signal);
|
|
576
627
|
if (!refreshed.simulation.admitted)
|
|
577
628
|
throw new LifecyclePlanningError("PLAN_NOT_ADMITTED", refreshed.simulation.reason ?? "Remaining exact launch sequence is not admitted", refreshed.simulation);
|
|
@@ -581,6 +632,10 @@ export async function buildNextTransaction(options) {
|
|
|
581
632
|
return undefined;
|
|
582
633
|
return preflightNextTransaction(options, next, refreshed.simulation, reviewed);
|
|
583
634
|
});
|
|
635
|
+
assertFinalPlan(options.planned, options.signal);
|
|
636
|
+
if (result !== undefined)
|
|
637
|
+
assertReviewedTransactionUnchanged(options, reviewed, result);
|
|
638
|
+
return result;
|
|
584
639
|
}
|
|
585
640
|
/** Re-simulates only canonical unfinished work with the same submitted receipt
|
|
586
641
|
* evidence and confirmation depth as build-next, never silently dropping context. */
|
|
@@ -592,7 +647,7 @@ export async function simulateLaunchPlan(options) {
|
|
|
592
647
|
client, plan: planned.plan, account: planned.account, mode: planned.mode,
|
|
593
648
|
limits: options.limits === undefined ? planned.limits : options.limits, fork: options.fork,
|
|
594
649
|
receipts: options.receipts, confirmations: options.confirmations ?? planned.confirmations, signal: options.signal,
|
|
595
|
-
allowTopologyGaps: planned.allowTopologyGaps, allowMissingPermanentTail: planned.allowMissingPermanentTail,
|
|
650
|
+
ufg: planned.ufg, allowTopologyGaps: planned.allowTopologyGaps, allowMissingPermanentTail: planned.allowMissingPermanentTail,
|
|
596
651
|
});
|
|
597
652
|
assertPlannedDeploymentBindings(planned, current);
|
|
598
653
|
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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"}
|