@black-market/sdk 0.11.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 +17 -0
- 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 +42 -22
- 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.map +1 -1
- package/dist/lifecycle/progress.js +26 -5
- package/dist/lifecycle/progress.js.map +1 -1
- package/dist/lifecycle/simulation.d.ts.map +1 -1
- package/dist/lifecycle/simulation.js +4 -1
- package/dist/lifecycle/simulation.js.map +1 -1
- package/dist/lifecycle/types.d.ts +11 -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 +138 -0
- package/examples/README.md +16 -2
- 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 +37 -22
- package/src/lifecycle/presets.ts +11 -4
- package/src/lifecycle/progress.ts +22 -5
- package/src/lifecycle/simulation.ts +3 -1
- package/src/lifecycle/types.ts +6 -1
- package/src/lifecycle/ufg-abi.ts +173 -0
- package/src/lifecycle/ufg-config.ts +77 -0
- package/src/lifecycle/ufg.ts +86 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ufg-fixed-pool-20261021.d.ts","sourceRoot":"","sources":["../../../src/lifecycle/deployments/ufg-fixed-pool-20261021.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8CA,CAAC;AAC9B,eAAO,MAAM,eAAe;;;;;;EAMM,CAAC;AACnC,eAAO,MAAM,oBAAoB;;;;;;;;;EASC,CAAC;AACnC,eAAO,MAAM,gBAAgB;;;;;EAKC,CAAC"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
// Generated by scripts/generate-ufg-presets.mjs from ufg-registry-readback.json.
|
|
2
|
+
// Robinhood block 94551140, 0x0778956b5a7bad65f8182b969ac4efc6a7182a0a922fbcb94dc87bfea26e9cc4. Creation code is byte-identical to the existing fixed zero-royalty hook.
|
|
3
|
+
export const ufgFixedEnvelope = Object.freeze({
|
|
4
|
+
artifactDigest: "0x11c4c7b1f265ed708b7d53ab828c89d237ca821333daa808f1913986c6f8f1ab",
|
|
5
|
+
reviewManifestDigest: "0x0a3a0dfcae4fa51b2cccb2213e44800b7e3b74e681a66bc090f2e403a15b64b3",
|
|
6
|
+
configBoundsDigest: "0x72e0b2d542556d472a47f9c38b2c91079c72793af847dee77933f0eca203129d",
|
|
7
|
+
termsDigest: "0xf2503b91eeec87f95c4f5e47df517a143422c766528c403ea44bdbd9b40df10e",
|
|
8
|
+
topology: 2,
|
|
9
|
+
configVersion: 6,
|
|
10
|
+
economicVersion: 3,
|
|
11
|
+
capabilities: 123n,
|
|
12
|
+
flags: 0n,
|
|
13
|
+
callbackFlags: 6908,
|
|
14
|
+
callbackMask: 16383,
|
|
15
|
+
protocolTreasury: "0x961981916AB6575C3af3eeCecbf6A3b7Fad7C9e1",
|
|
16
|
+
protocolFeeDenominator: 6,
|
|
17
|
+
beneficiary: "0x7cb44b8693b3C350A2BcD4b681aF85365aa27783",
|
|
18
|
+
maximumDeveloperFeeBps: 0,
|
|
19
|
+
bounds: Object.freeze({
|
|
20
|
+
minimumTickSpacing: 1,
|
|
21
|
+
maximumTickSpacing: 32767,
|
|
22
|
+
maximumPositions: 32,
|
|
23
|
+
maximumOracleCardinality: 4096,
|
|
24
|
+
feeModeFlags: 3,
|
|
25
|
+
}),
|
|
26
|
+
graph: Object.freeze({
|
|
27
|
+
manager: "0x8366a39CC670B4001A1121B8F6A443A643e40951",
|
|
28
|
+
hookRoot: "0x0000000000000000000000000000000000000000",
|
|
29
|
+
oracleFactory: "0xe7feF2BC860B25bbdEB6F6AB96d88bAAa77ddad7",
|
|
30
|
+
locker: "0xfbc0AbCD1A3EA65aF2196fa8Af1327a49B4C92FC",
|
|
31
|
+
collectorFactory: "0x46a8493b8f84E3Da412856Dd256263107e3873F2",
|
|
32
|
+
collectorDeployer: "0x50d6C10435dD928e426B8094FB944582c4FCa6f7",
|
|
33
|
+
hookDeployer: "0x4b04Ed1B02885DE905d8a14207EAC93F6AB231b2",
|
|
34
|
+
coreCodeHash: "0x9fb8f46c3b980b9db25dfdb487a69a308a86be145860269b4036a4e74480787b",
|
|
35
|
+
managerCodeHash: "0xbd3881180b547f5fe817545743cfb4343e96b1bc6640dcd70c106b0066e95626",
|
|
36
|
+
hookRuntimeCodeHash: "0x0000000000000000000000000000000000000000000000000000000000000000",
|
|
37
|
+
oracleFactoryCodeHash: "0x974fb5c72d91ccb99f1eb4679a5d4432c82bbaa0906b1c2917ec4da3499b7b98",
|
|
38
|
+
lockerCodeHash: "0xa6fd4decc88671feb632d1871688a96582b46fd500b53f587d0fe18dad23fc2d",
|
|
39
|
+
collectorFactoryCodeHash: "0xb0bd33507bebe1bb969153961237ee9a5661dd9ed60b9384a8869fa03ec5ed51",
|
|
40
|
+
collectorDeployerCodeHash: "0x79118bf755c242e2a190f9602c021e59ccc49d51eeff3b0c1524b4a53c25618d",
|
|
41
|
+
hookDeployerCodeHash: "0xc97b52314cfc0225fcc0a901382898870e57394b318124956367d8fd3818506c",
|
|
42
|
+
hookCreationCodeHash: "0x11c4c7b1f265ed708b7d53ab828c89d237ca821333daa808f1913986c6f8f1ab",
|
|
43
|
+
codeChunk0: "0x94Fd6fB6E3db16Ef97c9bEEA229617b2Ec00c196",
|
|
44
|
+
codeChunk0Hash: "0xe5f56287276954b21f4211cabf2d9c251aae68836c5fa86ce68091ffccdee26b",
|
|
45
|
+
codeChunk1: "0x191F43334Ed2D7d154BF635E961BCb0e9848CB7c",
|
|
46
|
+
codeChunk1Hash: "0x76efd61e1a109a85140ce3473c43694a83f490eaac54d18673c17872a5262a47",
|
|
47
|
+
sharedHookSalt: "0x0000000000000000000000000000000000000000000000000000000000000000",
|
|
48
|
+
}),
|
|
49
|
+
});
|
|
50
|
+
export const ufgFixedAdapter = Object.freeze({
|
|
51
|
+
implementation: "0x3c7bb8541DBe2C8576E1000C4B6B803fDD36CA5d",
|
|
52
|
+
codeHash: "0x27079feaeb1a0ce8034588c46d15fead2a6407451d6f9e37059cade7c2df7610",
|
|
53
|
+
capabilities: 123n,
|
|
54
|
+
configVersion: 6,
|
|
55
|
+
enabled: true,
|
|
56
|
+
});
|
|
57
|
+
export const ufgFixedRegistration = Object.freeze({
|
|
58
|
+
adapterId: "0x073a4d46af70a3d4f69641e4f9dcdc9d8c279cd443daff960bbdf65a3b5fc758",
|
|
59
|
+
configSchema: "0x51c5ca14c40012f78425cd1afb1ea77980da3fed0490a00911a8a4ed34792045",
|
|
60
|
+
dependencyDigest: "0xead7c65bd240844e961647f7cd059948afd384dfea490807f576325cad78aee0",
|
|
61
|
+
venue: "0x8366a39CC670B4001A1121B8F6A443A643e40951",
|
|
62
|
+
factory: "0x0000000000000000000000000000000000000000",
|
|
63
|
+
hook: "0x0000000000000000000000000000000000000000",
|
|
64
|
+
capabilities: 123n,
|
|
65
|
+
enabled: true,
|
|
66
|
+
});
|
|
67
|
+
export const ufgFixedTopology = Object.freeze({
|
|
68
|
+
hookTopology: 2,
|
|
69
|
+
configVersion: 6,
|
|
70
|
+
hookDeployer: "0x4b04Ed1B02885DE905d8a14207EAC93F6AB231b2",
|
|
71
|
+
hookCreationCodeHash: "0x11c4c7b1f265ed708b7d53ab828c89d237ca821333daa808f1913986c6f8f1ab",
|
|
72
|
+
});
|
|
73
|
+
//# sourceMappingURL=ufg-fixed-pool-20261021.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ufg-fixed-pool-20261021.js","sourceRoot":"","sources":["../../../src/lifecycle/deployments/ufg-fixed-pool-20261021.ts"],"names":[],"mappings":"AAEA,iFAAiF;AACjF,yKAAyK;AACzK,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC;IAC5C,cAAc,EAAE,oEAAoE;IACpF,oBAAoB,EAAE,oEAAoE;IAC1F,kBAAkB,EAAE,oEAAoE;IACxF,WAAW,EAAE,oEAAoE;IACjF,QAAQ,EAAE,CAAC;IACX,aAAa,EAAE,CAAC;IAChB,eAAe,EAAE,CAAC;IAClB,YAAY,EAAE,IAAI;IAClB,KAAK,EAAE,EAAE;IACT,aAAa,EAAE,IAAI;IACnB,YAAY,EAAE,KAAK;IACnB,gBAAgB,EAAE,4CAA4C;IAC9D,sBAAsB,EAAE,CAAC;IACzB,WAAW,EAAE,4CAA4C;IACzD,sBAAsB,EAAE,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC;QACpB,kBAAkB,EAAE,CAAC;QACrB,kBAAkB,EAAE,KAAK;QACzB,gBAAgB,EAAE,EAAE;QACpB,wBAAwB,EAAE,IAAI;QAC9B,YAAY,EAAE,CAAC;KAChB,CAAC;IACF,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC;QACnB,OAAO,EAAE,4CAA4C;QACrD,QAAQ,EAAE,4CAA4C;QACtD,aAAa,EAAE,4CAA4C;QAC3D,MAAM,EAAE,4CAA4C;QACpD,gBAAgB,EAAE,4CAA4C;QAC9D,iBAAiB,EAAE,4CAA4C;QAC/D,YAAY,EAAE,4CAA4C;QAC1D,YAAY,EAAE,oEAAoE;QAClF,eAAe,EAAE,oEAAoE;QACrF,mBAAmB,EAAE,oEAAoE;QACzF,qBAAqB,EAAE,oEAAoE;QAC3F,cAAc,EAAE,oEAAoE;QACpF,wBAAwB,EAAE,oEAAoE;QAC9F,yBAAyB,EAAE,oEAAoE;QAC/F,oBAAoB,EAAE,oEAAoE;QAC1F,oBAAoB,EAAE,oEAAoE;QAC1F,UAAU,EAAE,4CAA4C;QACxD,cAAc,EAAE,oEAAoE;QACpF,UAAU,EAAE,4CAA4C;QACxD,cAAc,EAAE,oEAAoE;QACpF,cAAc,EAAE,oEAAoE;KACrF,CAAC;CACH,CAA4B,CAAC;AAC9B,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC;IAC3C,cAAc,EAAE,4CAA4C;IAC5D,QAAQ,EAAE,oEAAoE;IAC9E,YAAY,EAAE,IAAI;IAClB,aAAa,EAAE,CAAC;IAChB,OAAO,EAAE,IAAI;CACd,CAAiC,CAAC;AACnC,MAAM,CAAC,MAAM,oBAAoB,GAAG,MAAM,CAAC,MAAM,CAAC;IAChD,SAAS,EAAE,oEAAoE;IAC/E,YAAY,EAAE,oEAAoE;IAClF,gBAAgB,EAAE,oEAAoE;IACtF,KAAK,EAAE,4CAA4C;IACnD,OAAO,EAAE,4CAA4C;IACrD,IAAI,EAAE,4CAA4C;IAClD,YAAY,EAAE,IAAI;IAClB,OAAO,EAAE,IAAI;CACd,CAAiC,CAAC;AACnC,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC;IAC5C,YAAY,EAAE,CAAC;IACf,aAAa,EAAE,CAAC;IAChB,YAAY,EAAE,4CAA4C;IAC1D,oBAAoB,EAAE,oEAAoE;CAC3F,CAA6B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lifecycle/index.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,OAAO,EAAE,2BAA2B,EAAE,MAAM,UAAU,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,6BAA6B,EAAE,MAAM,cAAc,CAAC;AACnH,OAAO,EAAE,4BAA4B,EAAE,kBAAkB,EAAE,KAAK,2BAA2B,EAAE,KAAK,sBAAsB,EAAE,MAAM,cAAc,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lifecycle/index.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,OAAO,EAAE,2BAA2B,EAAE,MAAM,UAAU,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,6BAA6B,EAAE,MAAM,cAAc,CAAC;AACnH,OAAO,EAAE,4BAA4B,EAAE,kBAAkB,EAAE,KAAK,2BAA2B,EAAE,KAAK,sBAAsB,EAAE,MAAM,cAAc,CAAC"}
|
package/dist/lifecycle/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/lifecycle/index.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,OAAO,EAAE,2BAA2B,EAAE,MAAM,UAAU,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,6BAA6B,EAAE,MAAM,cAAc,CAAC;AACnH,OAAO,EAAE,4BAA4B,EAAE,kBAAkB,EAAiE,MAAM,cAAc,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/lifecycle/index.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,OAAO,EAAE,2BAA2B,EAAE,MAAM,UAAU,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,6BAA6B,EAAE,MAAM,cAAc,CAAC;AACnH,OAAO,EAAE,4BAA4B,EAAE,kBAAkB,EAAiE,MAAM,cAAc,CAAC"}
|
|
@@ -2,6 +2,7 @@ import { type Address, type Hex } from "viem";
|
|
|
2
2
|
import type { MarketConfigV1 } from "./schema.js";
|
|
3
3
|
import { type LifecycleProfile, type PoolBoundHookSaltProgress } from "./types.js";
|
|
4
4
|
import { type HmmLaunchConfig } from "./hmm.js";
|
|
5
|
+
import { type UfgLaunchConfig } from "./ufg-config.js";
|
|
5
6
|
export type V4LifecyclePositionConfig = {
|
|
6
7
|
tickLower: number;
|
|
7
8
|
tickUpper: number;
|
|
@@ -119,6 +120,7 @@ export type V4PoolBoundLifecycleMarketConfigV6 = Omit<V4LifecycleMarketConfig, "
|
|
|
119
120
|
feeSensitivityPipsSecondsPerTick: number;
|
|
120
121
|
hookSalt: Hex;
|
|
121
122
|
hmmLaunchConfig?: HmmLaunchConfig;
|
|
123
|
+
ufgLaunchConfig?: UfgLaunchConfig;
|
|
122
124
|
};
|
|
123
125
|
export type V4PoolBoundLifecycleMarketConfig = V4PoolBoundLifecycleMarketConfigV5 | V4PoolBoundLifecycleMarketConfigV6;
|
|
124
126
|
export declare const V4_LIFECYCLE_CONFIG_SCHEMA: `0x${string}`;
|
|
@@ -265,7 +267,7 @@ export declare const poolBoundV4LifecycleMarketComponentsV6: readonly [{
|
|
|
265
267
|
}];
|
|
266
268
|
export declare function isPoolBoundV4ConfigVersion(version: number): version is PoolBoundLifecycleConfigVersion;
|
|
267
269
|
export declare function poolBoundV4LifecycleConfigSchema(version: PoolBoundLifecycleConfigVersion): Hex;
|
|
268
|
-
/**
|
|
270
|
+
/** Auxiliary launch profiles require their typed tail and append it automatically. */
|
|
269
271
|
export declare function encodePoolBoundV4LifecycleMarketConfig(config: V4PoolBoundLifecycleMarketConfig): Hex;
|
|
270
272
|
export declare function decodePoolBoundV4LifecycleMarketConfig(encoded: Hex, expectedVersion?: PoolBoundLifecycleConfigVersion): V4PoolBoundLifecycleMarketConfig;
|
|
271
273
|
/** Immutable per-pool fee policy: pips, and fee-pips * seconds per observed tick. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"markets.d.ts","sourceRoot":"","sources":["../../src/lifecycle/markets.ts"],"names":[],"mappings":"AAAA,OAAO,EAA6H,KAAK,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,MAAM,CAAC;AACzK,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAA0B,KAAK,gBAAgB,EAAE,KAAK,yBAAyB,EAAE,MAAM,YAAY,CAAC;AAC3G,OAAO,EAA0D,KAAK,eAAe,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"markets.d.ts","sourceRoot":"","sources":["../../src/lifecycle/markets.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { concatHex, decodeAbiParameters, encodeAbiParameters, getAddress, hexToBytes, keccak256, pad, stringToHex, toHex, zeroHash } from "viem";
|
|
2
2
|
import { LifecyclePlanningError } from "./types.js";
|
|
3
3
|
import { decodeHmmLaunchTail, encodeHmmLaunchTail, isHmmProfile } from "./hmm.js";
|
|
4
|
+
import { decodeUfgLaunchConfig, encodeUfgLaunchConfig, isUfgProfile } from "./ufg-config.js";
|
|
4
5
|
export const v4LifecyclePositionComponents = [
|
|
5
6
|
{ name: "tickLower", type: "int24" }, { name: "tickUpper", type: "int24" },
|
|
6
7
|
{ name: "liquidity", type: "uint128" }, { name: "salt", type: "bytes32" }, { name: "maxTokenAmount", type: "uint256" },
|
|
@@ -70,9 +71,20 @@ function assertV1HookFeeShape(config) {
|
|
|
70
71
|
throw new LifecyclePlanningError("UNSUPPORTED_CONFIG_VERSION", "Config5/V1 cannot encode config6/V2 fee-policy fields");
|
|
71
72
|
}
|
|
72
73
|
}
|
|
73
|
-
/**
|
|
74
|
+
/** Auxiliary launch profiles require their typed tail and append it automatically. */
|
|
74
75
|
export function encodePoolBoundV4LifecycleMarketConfig(config) {
|
|
75
76
|
const prefix = encodePoolBoundV4Prefix(config);
|
|
77
|
+
if (isUfgProfile(config.profileId)) {
|
|
78
|
+
if (config.version !== 6 || config.ufgLaunchConfig === undefined)
|
|
79
|
+
throw new LifecyclePlanningError("INVALID_UFG_CONFIG", "UFG profiles require config6 and an explicit ufgLaunchConfig");
|
|
80
|
+
if (config.hmmLaunchConfig !== undefined)
|
|
81
|
+
throw new LifecyclePlanningError("INVALID_UFG_CONFIG", "UFG profiles cannot carry an HMM tail");
|
|
82
|
+
if (config.lpFeePips !== 0 || config.feeMode !== 1)
|
|
83
|
+
throw new LifecyclePlanningError("INVALID_UFG_CONFIG", "UFG requires QuoteOnly feeMode 1 and zero LP fee");
|
|
84
|
+
return concatHex([prefix, encodeUfgLaunchConfig(config.ufgLaunchConfig)]);
|
|
85
|
+
}
|
|
86
|
+
if (config.version === 6 && config.ufgLaunchConfig !== undefined)
|
|
87
|
+
throw new LifecyclePlanningError("INVALID_UFG_CONFIG", "A UFG launch tail requires a UFG profile");
|
|
76
88
|
if (isHmmProfile(config.profileId)) {
|
|
77
89
|
if (config.version !== 6 || config.hmmLaunchConfig === undefined)
|
|
78
90
|
throw new LifecyclePlanningError("INVALID_HMM_CONFIG", "HMM profiles require config6 and an explicit hmmLaunchConfig");
|
|
@@ -116,6 +128,11 @@ export function decodePoolBoundV4LifecycleMarketConfig(encoded, expectedVersion)
|
|
|
116
128
|
const prefixLength = encodePoolBoundV4Prefix(config).length;
|
|
117
129
|
config.hmmLaunchConfig = decodeHmmLaunchTail(`0x${encoded.slice(prefixLength)}`);
|
|
118
130
|
}
|
|
131
|
+
if (isUfgProfile(config.profileId)) {
|
|
132
|
+
if (config.version !== 6)
|
|
133
|
+
throw new LifecyclePlanningError("INVALID_UFG_CONFIG", "UFG profiles require config6");
|
|
134
|
+
config.ufgLaunchConfig = decodeUfgLaunchConfig(`0x${encoded.slice(encodePoolBoundV4Prefix(config).length)}`);
|
|
135
|
+
}
|
|
119
136
|
if (encodePoolBoundV4LifecycleMarketConfig(config).toLowerCase() !== encoded.toLowerCase())
|
|
120
137
|
throw new LifecyclePlanningError("INVALID_BOUND_MARKET", "Pool-bound config is not canonical for its explicit schema");
|
|
121
138
|
return config;
|
|
@@ -226,8 +243,8 @@ export function hashPoolBoundV4MarketCommitment(options) {
|
|
|
226
243
|
const config = decodePoolBoundV4LifecycleMarketConfig(market.config, market.configVersion);
|
|
227
244
|
if (config.profileId.toLowerCase() !== market.profileId.toLowerCase())
|
|
228
245
|
throw new LifecyclePlanningError("INVALID_BOUND_MARKET", "Config profile differs from the committed market profile");
|
|
229
|
-
//
|
|
230
|
-
// The full plan commitment separately binds every byte of
|
|
246
|
+
// Collector factories commit only the V6 prefix, not auxiliary launch tails.
|
|
247
|
+
// The full plan commitment separately binds every byte of those tails.
|
|
231
248
|
const configHash = keccak256(encodePoolBoundV4Prefix({ ...config, hookSalt: zeroHash }));
|
|
232
249
|
return keccak256(encodeAbiParameters([
|
|
233
250
|
{ type: "bytes32" }, { type: "uint256" }, { type: "address" }, { type: "address" }, { type: "address" },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"markets.js","sourceRoot":"","sources":["../../src/lifecycle/markets.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"markets.js","sourceRoot":"","sources":["../../src/lifecycle/markets.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"planner.d.ts","sourceRoot":"","sources":["../../src/lifecycle/planner.ts"],"names":[],"mappings":"AASA,OAAO,EAA0B,KAAK,2BAA2B,EAAkN,KAAK,mBAAmB,EAAE,KAAK,oBAAoB,EAAE,KAAK,aAAa,EAAE,KAAK,iBAAiB,EAAE,KAAK,oCAAoC,EAAE,KAAK,yBAAyB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"planner.d.ts","sourceRoot":"","sources":["../../src/lifecycle/planner.ts"],"names":[],"mappings":"AASA,OAAO,EAA0B,KAAK,2BAA2B,EAAkN,KAAK,mBAAmB,EAAE,KAAK,oBAAoB,EAAE,KAAK,aAAa,EAAE,KAAK,iBAAiB,EAAE,KAAK,oCAAoC,EAAE,KAAK,yBAAyB,EAAE,MAAM,YAAY,CAAC;AAqQld;wFACwF;AACxF,wBAAsB,6BAA6B,CAAC,OAAO,EAAE,oCAAoC,GAAG,OAAO,CAAC,aAAa,CAAC,CA+DzH;AAED,qGAAqG;AACrG,wBAAsB,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,aAAa,CAAC,CAMnF;AA0JD;uFACuF;AACvF,wBAAsB,oBAAoB,CAAC,OAAO,EAAE,2BAA2B,GAAG,OAAO,CAAC,oBAAoB,GAAG,SAAS,CAAC,CAyC1H;AAED;qFACqF;AACrF,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,yBAAyB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAWzG"}
|
|
@@ -12,6 +12,8 @@ import { deriveKnownPoolBoundHookDeployment, protectOrderedBuyMinimums, validate
|
|
|
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,11 +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, 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
162
|
return transactions.map((transaction, index) => ({ ...transaction, calldataBytes: (transaction.data.length - 2) / 2, dependencies: index === 0 ? [] : [transactions[index - 1].id] }));
|
|
@@ -187,7 +191,9 @@ function matchesReviewedNextTransaction(next, reviewed) {
|
|
|
187
191
|
next.data.toLowerCase() === reviewed.data.toLowerCase() && next.value === reviewed.value;
|
|
188
192
|
}
|
|
189
193
|
function assertReviewedTransactionUnchanged(options, reviewed, next) {
|
|
190
|
-
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()) {
|
|
191
197
|
throw new LifecyclePlanningError("ACCOUNT_MISMATCH", "Execution account changed during fresh execution or submission proof");
|
|
192
198
|
}
|
|
193
199
|
if (options.planned.chainId !== BigInt(next.chainId) || options.planned.plan.chainId !== BigInt(next.chainId)) {
|
|
@@ -214,6 +220,8 @@ async function readTokenFactoryBinding(client, orchestrator, block) {
|
|
|
214
220
|
function assertPlannedDeploymentBindings(stored, current) {
|
|
215
221
|
if (hashLaunchPlan(stored.plan).toLowerCase() !== stored.planHash.toLowerCase() || current.planHash.toLowerCase() !== stored.planHash.toLowerCase() || current.launchId.toLowerCase() !== stored.launchId.toLowerCase())
|
|
216
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");
|
|
217
225
|
if (current.predictedToken.toLowerCase() !== stored.predictedToken.toLowerCase() || current.tokenFactory.toLowerCase() !== stored.tokenFactory.toLowerCase() || current.tokenFactoryCodeHash.toLowerCase() !== stored.tokenFactoryCodeHash.toLowerCase())
|
|
218
226
|
throw new LifecyclePlanningError("TOKEN_FACTORY_BINDING", "Final token prediction or its immutable factory code binding changed before execution");
|
|
219
227
|
if (!current.simulation.admitted || current.progress.canonical.phase === LifecyclePhase.Active || current.progress.canonical.phase === LifecyclePhase.Cancelled)
|
|
@@ -233,11 +241,14 @@ function validatePlanningIntent(options) {
|
|
|
233
241
|
assertPlanningActive(options.signal);
|
|
234
242
|
if (mode !== "atomic" && mode !== "staged")
|
|
235
243
|
throw new LifecyclePlanningError("EXPLICIT_MODE_REQUIRED", "Choose atomic or staged explicitly; staged is never silently substituted");
|
|
236
|
-
if (
|
|
244
|
+
if (options.ufg !== undefined)
|
|
245
|
+
assertUfgLaunchAccount(plan, account);
|
|
246
|
+
else if (account.toLowerCase() !== plan.creator.toLowerCase())
|
|
237
247
|
throw new LifecyclePlanningError("ACCOUNT_MISMATCH", "Execution account must be the committed creator/payer/refund account");
|
|
238
248
|
if (plan.chainId > BigInt(Number.MAX_SAFE_INTEGER) || plan.chainId <= 0n)
|
|
239
249
|
throw new LifecyclePlanningError("CHAIN_MISMATCH", "Chain ID must be a positive exact JavaScript integer");
|
|
240
|
-
|
|
250
|
+
const shape = validatePlanShape(plan);
|
|
251
|
+
return options.ufg === undefined ? shape : { ...shape, ufgConfigHash: hashUfgLaunchConfig(options.ufg.config) };
|
|
241
252
|
}
|
|
242
253
|
function validatePlanTopology(options, marketConfigs, token) {
|
|
243
254
|
for (const [marketIndex, config] of marketConfigs.entries()) {
|
|
@@ -277,11 +288,13 @@ function assertFinalPlan(planned, signal) {
|
|
|
277
288
|
assertPlanningActive(signal);
|
|
278
289
|
if (hashLaunchPlan(planned.plan).toLowerCase() !== planned.planHash.toLowerCase() || hashLaunchIdentity(planned.plan).toLowerCase() !== planned.launchId.toLowerCase())
|
|
279
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");
|
|
280
293
|
}
|
|
281
294
|
/** One owner constructs and mines, optionally measures actual ordered buy outputs,
|
|
282
295
|
* then proves only the final protected commitment. No cached execution certificates. */
|
|
283
296
|
export async function prepareAndPlanLifecycleLaunch(options) {
|
|
284
|
-
const { commitment } = validatePlanningIntent(options);
|
|
297
|
+
const { commitment, ufgConfigHash } = validatePlanningIntent(options);
|
|
285
298
|
if (options.buySlippageBps !== undefined)
|
|
286
299
|
validateBuySlippageBps(options.buySlippageBps);
|
|
287
300
|
const needsMining = options.plan.markets.some((market) => isPoolBoundV4ConfigVersion(market.configVersion));
|
|
@@ -293,6 +306,8 @@ export async function prepareAndPlanLifecycleLaunch(options) {
|
|
|
293
306
|
assertPlanningActive(options.signal);
|
|
294
307
|
if (hashLaunchPlan(options.plan).toLowerCase() !== commitment.toLowerCase())
|
|
295
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");
|
|
296
311
|
};
|
|
297
312
|
return withLifecycleReadClient(options.client, async (client) => {
|
|
298
313
|
const [block, chainId] = await Promise.all([readLifecycleBlock(client), readLifecycleChainId(client)]);
|
|
@@ -361,8 +376,8 @@ export async function planLaunch(options) {
|
|
|
361
376
|
});
|
|
362
377
|
}
|
|
363
378
|
async function planLaunchWithReads(options, client, pinnedBlock, ownedProgress, diagnostic = false, reviewed) {
|
|
364
|
-
const { plan, account, mode } = options;
|
|
365
|
-
const { commitment: planHash, marketConfigs } = validatePlanningIntent(options);
|
|
379
|
+
const { plan, account, mode, ufg } = options;
|
|
380
|
+
const { commitment: planHash, marketConfigs, ufgConfigHash } = validatePlanningIntent(options);
|
|
366
381
|
const launchId = hashLaunchIdentity(plan);
|
|
367
382
|
const [block, chainId] = await lifecycleStage(client, "plan.context", () => Promise.all([
|
|
368
383
|
pinnedBlock ?? readLifecycleBlock(client), readLifecycleChainId(client),
|
|
@@ -386,7 +401,10 @@ async function planLaunchWithReads(options, client, pinnedBlock, ownedProgress,
|
|
|
386
401
|
resolveLifecycleLimits({ client, account, orchestrator: plan.orchestrator, block, chainId: plan.chainId }, options.limits),
|
|
387
402
|
lifecycleStage(client, "plan.progress", async () => {
|
|
388
403
|
const predictedToken = await readLifecycleTokenAtBlock(client, plan, block);
|
|
389
|
-
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);
|
|
390
408
|
const progress = ownedProgress ?? await readLaunchProgress({ client, planned: identity, receipts: options.receipts, signal: options.signal }, block);
|
|
391
409
|
if (ownedProgress !== undefined && progress.token.toLowerCase() !== predictedToken.toLowerCase())
|
|
392
410
|
throw new LifecyclePlanningError("TOKEN_IDENTITY", "Predicted token changed after its canonical progress was read");
|
|
@@ -420,7 +438,7 @@ async function planLaunchWithReads(options, client, pinnedBlock, ownedProgress,
|
|
|
420
438
|
if (progress.canonical.phase === LifecyclePhase.None && progress.head.phase === LifecyclePhase.None)
|
|
421
439
|
validatePlanTopology(options, marketConfigs, identity.predictedToken);
|
|
422
440
|
const [funding, metadata] = await lifecycleStage(client, "plan.inputs", () => Promise.all([
|
|
423
|
-
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: [] },
|
|
424
442
|
readPlanMetadata(client, plan, identity.predictedToken, block),
|
|
425
443
|
]));
|
|
426
444
|
assertFinalPlan(planned, options.signal);
|
|
@@ -440,7 +458,7 @@ async function planLaunchWithReads(options, client, pinnedBlock, ownedProgress,
|
|
|
440
458
|
throw new LifecyclePlanningError("REVIEWED_TRANSACTION_MISMATCH", "Reviewed preparation differs from canonical unfinished progress");
|
|
441
459
|
batches = [...(prepared > 0 ? [prepared] : []), count, ...(start + count < plan.markets.length ? [plan.markets.length - start - count] : [])];
|
|
442
460
|
}
|
|
443
|
-
let transactions = orderedTransactions(plan, mode, progress, funding.approvals, batches);
|
|
461
|
+
let transactions = orderedTransactions(plan, mode, progress, funding.approvals, batches, ufg);
|
|
444
462
|
if (reviewed !== undefined) {
|
|
445
463
|
if (!matchesReviewedNextTransaction(transactions[0], reviewed))
|
|
446
464
|
throw new LifecyclePlanningError("REVIEWED_TRANSACTION_MISMATCH", "Reviewed transaction differs from the current canonical unfinished next step");
|
|
@@ -469,7 +487,7 @@ async function planLaunchWithReads(options, client, pinnedBlock, ownedProgress,
|
|
|
469
487
|
const batchIndex = batches.findIndex((batch) => { const matches = first === failedTransaction?.marketStart; first += batch; return matches; });
|
|
470
488
|
const left = Math.ceil(count / 2);
|
|
471
489
|
batches.splice(batchIndex, 1, left, count - left);
|
|
472
|
-
transactions = orderedTransactions(plan, mode, progress, funding.approvals, batches);
|
|
490
|
+
transactions = orderedTransactions(plan, mode, progress, funding.approvals, batches, ufg);
|
|
473
491
|
simulation = await execute(transactions);
|
|
474
492
|
assertFinalPlan(planned, options.signal);
|
|
475
493
|
}
|
|
@@ -559,7 +577,9 @@ export async function buildNextTransaction(options) {
|
|
|
559
577
|
if (progress.canonical.phase === LifecyclePhase.None)
|
|
560
578
|
throw new LifecyclePlanningError("NOT_STARTED", "An unstarted plan has no launch escrow to cancel");
|
|
561
579
|
const { planned } = options;
|
|
562
|
-
|
|
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 }] };
|
|
563
583
|
if (reviewed !== undefined && !matchesReviewedNextTransaction(transaction, reviewed))
|
|
564
584
|
throw new LifecyclePlanningError("REVIEWED_TRANSACTION_MISMATCH", "Reviewed transaction differs from the current canonical cancellation");
|
|
565
585
|
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 +591,7 @@ export async function buildNextTransaction(options) {
|
|
|
571
591
|
return preflightNextTransaction(options, next, simulation, reviewed);
|
|
572
592
|
}
|
|
573
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,
|
|
574
|
-
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));
|
|
575
595
|
assertFinalPlan(refreshed, options.signal);
|
|
576
596
|
if (!refreshed.simulation.admitted)
|
|
577
597
|
throw new LifecyclePlanningError("PLAN_NOT_ADMITTED", refreshed.simulation.reason ?? "Remaining exact launch sequence is not admitted", refreshed.simulation);
|
|
@@ -592,7 +612,7 @@ export async function simulateLaunchPlan(options) {
|
|
|
592
612
|
client, plan: planned.plan, account: planned.account, mode: planned.mode,
|
|
593
613
|
limits: options.limits === undefined ? planned.limits : options.limits, fork: options.fork,
|
|
594
614
|
receipts: options.receipts, confirmations: options.confirmations ?? planned.confirmations, signal: options.signal,
|
|
595
|
-
allowTopologyGaps: planned.allowTopologyGaps, allowMissingPermanentTail: planned.allowMissingPermanentTail,
|
|
615
|
+
ufg: planned.ufg, allowTopologyGaps: planned.allowTopologyGaps, allowMissingPermanentTail: planned.allowMissingPermanentTail,
|
|
596
616
|
});
|
|
597
617
|
assertPlannedDeploymentBindings(planned, current);
|
|
598
618
|
return current.simulation;
|