@black-market/sdk 0.16.2 → 0.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. package/README.md +5 -4
  2. package/dist/lifecycle/deployments/rwa-dynamic-pool-v1-20261113.d.ts +71 -0
  3. package/dist/lifecycle/deployments/rwa-dynamic-pool-v1-20261113.d.ts.map +1 -0
  4. package/dist/lifecycle/deployments/rwa-dynamic-pool-v1-20261113.js +73 -0
  5. package/dist/lifecycle/deployments/rwa-dynamic-pool-v1-20261113.js.map +1 -0
  6. package/dist/lifecycle/deployments/rwa-fixed-pool-v1-20261113.d.ts +71 -0
  7. package/dist/lifecycle/deployments/rwa-fixed-pool-v1-20261113.d.ts.map +1 -0
  8. package/dist/lifecycle/deployments/rwa-fixed-pool-v1-20261113.js +73 -0
  9. package/dist/lifecycle/deployments/rwa-fixed-pool-v1-20261113.js.map +1 -0
  10. package/dist/lifecycle/gas-profile.d.ts +1 -1
  11. package/dist/lifecycle/gas-profile.d.ts.map +1 -1
  12. package/dist/lifecycle/gas-profile.js +17 -6
  13. package/dist/lifecycle/gas-profile.js.map +1 -1
  14. package/dist/lifecycle/index.d.ts +2 -0
  15. package/dist/lifecycle/index.d.ts.map +1 -1
  16. package/dist/lifecycle/index.js +2 -0
  17. package/dist/lifecycle/index.js.map +1 -1
  18. package/dist/lifecycle/markets.d.ts +2 -0
  19. package/dist/lifecycle/markets.d.ts.map +1 -1
  20. package/dist/lifecycle/markets.js +32 -4
  21. package/dist/lifecycle/markets.js.map +1 -1
  22. package/dist/lifecycle/opening-buys.js +1 -1
  23. package/dist/lifecycle/opening-buys.js.map +1 -1
  24. package/dist/lifecycle/planner.d.ts.map +1 -1
  25. package/dist/lifecycle/planner.js +5 -1
  26. package/dist/lifecycle/planner.js.map +1 -1
  27. package/dist/lifecycle/presets.d.ts +4 -2
  28. package/dist/lifecycle/presets.d.ts.map +1 -1
  29. package/dist/lifecycle/presets.js +8 -1
  30. package/dist/lifecycle/presets.js.map +1 -1
  31. package/dist/lifecycle/rwa-abi.d.ts +752 -0
  32. package/dist/lifecycle/rwa-abi.d.ts.map +1 -0
  33. package/dist/lifecycle/rwa-abi.js +968 -0
  34. package/dist/lifecycle/rwa-abi.js.map +1 -0
  35. package/dist/lifecycle/rwa.d.ts +42 -0
  36. package/dist/lifecycle/rwa.d.ts.map +1 -0
  37. package/dist/lifecycle/rwa.js +113 -0
  38. package/dist/lifecycle/rwa.js.map +1 -0
  39. package/dist/lifecycle/transactions.d.ts.map +1 -1
  40. package/dist/lifecycle/transactions.js +11 -3
  41. package/dist/lifecycle/transactions.js.map +1 -1
  42. package/docs/launch-lifecycle.md +81 -1
  43. package/docs/lifecycle-gas-profiles.md +60 -3
  44. package/docs/reference.md +61 -0
  45. package/examples/README.md +2 -2
  46. package/package.json +1 -1
  47. package/src/lifecycle/deployments/rwa-dynamic-pool-v1-20261113.ts +74 -0
  48. package/src/lifecycle/deployments/rwa-fixed-pool-v1-20261113.ts +74 -0
  49. package/src/lifecycle/gas-profile.ts +17 -7
  50. package/src/lifecycle/index.ts +2 -0
  51. package/src/lifecycle/markets.ts +24 -2
  52. package/src/lifecycle/opening-buys.ts +1 -1
  53. package/src/lifecycle/planner.ts +6 -1
  54. package/src/lifecycle/presets.ts +8 -1
  55. package/src/lifecycle/rwa-abi.ts +968 -0
  56. package/src/lifecycle/rwa.ts +119 -0
  57. package/src/lifecycle/transactions.ts +9 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rwa-abi.js","sourceRoot":"","sources":["../../src/lifecycle/rwa-abi.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ import { type Address, type Hex } from "viem";
2
+ import { type LaunchPlanV1, type MarketConfigV1 } from "./schema.js";
3
+ export declare const RWA_FIXED_PROFILE_ID: Hex;
4
+ export declare const RWA_DYNAMIC_PROFILE_ID: Hex;
5
+ export declare const RWA_FIXED_ADAPTER_ID: Hex;
6
+ export declare const RWA_DYNAMIC_ADAPTER_ID: Hex;
7
+ /** Upgradeable stock registry (ERC1967 proxy) the deployed RWA collectors read. */
8
+ export declare const RWA_ASSET_REGISTRY_ADDRESS: Address;
9
+ /** USDG is the only quote the deployed RWA collector factories accept. */
10
+ export declare const RWA_QUOTE_ASSET: Address;
11
+ export declare const RWA_MAX_BASKET = 6;
12
+ export declare const RWA_MAX_PREMIUM_BPS = 100;
13
+ /** `maxPriceAge` value that disables the stock-feed age check (the USDG feed keeps its window). */
14
+ export declare const RWA_ANY_PRICE_AGE = 4294967295;
15
+ /**
16
+ * Exactly `RwaLaunchConfigV1`. `basket` is 1-6 strictly ascending listed stock tokens with
17
+ * `weightsBps[i]` for `basket[i]` summing to 10,000. `shareBps` 0-10,000 (0 = off),
18
+ * `premiumBps` 0-100, `maxPriceAge` 0 = registry defaults or `RWA_ANY_PRICE_AGE`.
19
+ */
20
+ export type RwaLaunchConfigV1 = {
21
+ shareBps: number;
22
+ premiumBps: number;
23
+ maxPriceAge: number;
24
+ basket: readonly Address[];
25
+ weightsBps: readonly number[];
26
+ };
27
+ export declare function isRwaProfile(profileId: Hex): boolean;
28
+ /** Static terms only; registry listing is checked on-chain when the launch begins. */
29
+ export declare function validateRwaLaunchConfig(config: RwaLaunchConfigV1): void;
30
+ /** Exactly abi.encode(RwaLaunchConfigV1), including the leading tuple offset word. */
31
+ export declare function encodeRwaLaunchTail(config: RwaLaunchConfigV1): Hex;
32
+ export declare function decodeRwaLaunchTail(encoded: Hex): RwaLaunchConfigV1;
33
+ /** Outer market binding: config6, the variant's adapter and the USDG quote. */
34
+ export declare function validateRwaMarketContext(market: MarketConfigV1): void;
35
+ /**
36
+ * Plan checks for the collector-construction invariants that would otherwise fail at market
37
+ * preparation, after begin: each RWA market's outer binding, a Dividends launch token, and
38
+ * every basket stock committed as a hub fee asset with a 0/10000/0 owner/rewards/burn policy.
39
+ * No-op for plans without RWA markets.
40
+ */
41
+ export declare function validateRwaLaunchPlan(plan: LaunchPlanV1): void;
42
+ //# sourceMappingURL=rwa.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rwa.d.ts","sourceRoot":"","sources":["../../src/lifecycle/rwa.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmE,KAAK,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,MAAM,CAAC;AAE/G,OAAO,EAAuB,KAAK,YAAY,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AAG1F,eAAO,MAAM,oBAAoB,EAAE,GAA0E,CAAC;AAC9G,eAAO,MAAM,sBAAsB,EAAE,GAA0E,CAAC;AAChH,eAAO,MAAM,oBAAoB,EAAE,GAA0E,CAAC;AAC9G,eAAO,MAAM,sBAAsB,EAAE,GAA0E,CAAC;AAChH,mFAAmF;AACnF,eAAO,MAAM,0BAA0B,EAAE,OAAsD,CAAC;AAChG,0EAA0E;AAC1E,eAAO,MAAM,eAAe,EAAE,OAAsD,CAAC;AACrF,eAAO,MAAM,cAAc,IAAI,CAAC;AAChC,eAAO,MAAM,mBAAmB,MAAM,CAAC;AACvC,mGAAmG;AACnG,eAAO,MAAM,iBAAiB,aAAa,CAAC;AAE5C;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,SAAS,OAAO,EAAE,CAAC;IAC3B,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;CAC/B,CAAC;AAUF,wBAAgB,YAAY,CAAC,SAAS,EAAE,GAAG,GAAG,OAAO,CAGpD;AAED,sFAAsF;AACtF,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI,CAiBvE;AAED,sFAAsF;AACtF,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,iBAAiB,GAAG,GAAG,CAMlE;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,GAAG,GAAG,iBAAiB,CAanE;AAED,+EAA+E;AAC/E,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI,CAMrE;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI,CAe9D"}
@@ -0,0 +1,113 @@
1
+ import { decodeAbiParameters, encodeAbiParameters, getAddress, isAddress } from "viem";
2
+ import { decodePoolBoundV4LifecycleMarketConfig } from "./markets.js";
3
+ import { LifecycleRewardMode } from "./schema.js";
4
+ import { LifecyclePlanningError } from "./types.js";
5
+ export const RWA_FIXED_PROFILE_ID = "0x3b170b03f1ff1c808970f43827df234cde866d73608b6e3e3937601ae7c8676b";
6
+ export const RWA_DYNAMIC_PROFILE_ID = "0xab6c24038ff6ec16a300aa268dc4116f1649ae07c272dfc7e814c6f198515043";
7
+ export const RWA_FIXED_ADAPTER_ID = "0x0f13f4a8553a4dece69888deb425b04ff169d41132f3e2097034aff00f584dd6";
8
+ export const RWA_DYNAMIC_ADAPTER_ID = "0x46a5f7c611f6584cc99cffcdeb55183d6c3dcafe5fc6fcce85995be82639bbe1";
9
+ /** Upgradeable stock registry (ERC1967 proxy) the deployed RWA collectors read. */
10
+ export const RWA_ASSET_REGISTRY_ADDRESS = "0x40356d61871C7Af760903FDD6ceb9344D7c3F328";
11
+ /** USDG is the only quote the deployed RWA collector factories accept. */
12
+ export const RWA_QUOTE_ASSET = "0x5fc5360D0400a0Fd4f2af552ADD042D716F1d168";
13
+ export const RWA_MAX_BASKET = 6;
14
+ export const RWA_MAX_PREMIUM_BPS = 100;
15
+ /** `maxPriceAge` value that disables the stock-feed age check (the USDG feed keeps its window). */
16
+ export const RWA_ANY_PRICE_AGE = 0xffffffff;
17
+ const rwaLaunchConfigComponents = [
18
+ { name: "shareBps", type: "uint16" }, { name: "premiumBps", type: "uint16" }, { name: "maxPriceAge", type: "uint32" },
19
+ { name: "basket", type: "address[]" }, { name: "weightsBps", type: "uint16[]" },
20
+ ];
21
+ const invalid = (reason) => new LifecyclePlanningError("INVALID_RWA_CONFIG", reason);
22
+ const uint = (value, max) => Number.isInteger(value) && value >= 0 && value <= max;
23
+ export function isRwaProfile(profileId) {
24
+ const id = profileId.toLowerCase();
25
+ return id === RWA_FIXED_PROFILE_ID || id === RWA_DYNAMIC_PROFILE_ID;
26
+ }
27
+ /** Static terms only; registry listing is checked on-chain when the launch begins. */
28
+ export function validateRwaLaunchConfig(config) {
29
+ if (!uint(config.shareBps, 10000))
30
+ throw invalid("RWA shareBps must be an integer from 0 to 10000");
31
+ if (!uint(config.premiumBps, RWA_MAX_PREMIUM_BPS))
32
+ throw invalid("RWA premiumBps must be an integer from 0 to 100");
33
+ if (!uint(config.maxPriceAge, RWA_ANY_PRICE_AGE))
34
+ throw invalid("RWA maxPriceAge must be a uint32");
35
+ const count = config.basket.length;
36
+ if (count === 0 || count > RWA_MAX_BASKET)
37
+ throw invalid("An RWA basket holds 1 to 6 stock tokens");
38
+ if (config.weightsBps.length !== count)
39
+ throw invalid("RWA weightsBps needs exactly one weight per basket stock");
40
+ let previous = 0n, total = 0;
41
+ for (const [index, asset] of config.basket.entries()) {
42
+ if (!isAddress(asset, { strict: false }) || BigInt(asset) <= previous)
43
+ throw invalid("RWA basket stocks must be unique ascending addresses");
44
+ if (asset.toLowerCase() === RWA_QUOTE_ASSET.toLowerCase())
45
+ throw invalid("USDG cannot be an RWA basket stock");
46
+ const weight = config.weightsBps[index];
47
+ if (!uint(weight, 10000))
48
+ throw invalid("RWA weights must be integer basis points");
49
+ previous = BigInt(asset);
50
+ total += weight;
51
+ }
52
+ if (total !== 10000)
53
+ throw invalid("RWA weightsBps must sum to exactly 10000");
54
+ }
55
+ /** Exactly abi.encode(RwaLaunchConfigV1), including the leading tuple offset word. */
56
+ export function encodeRwaLaunchTail(config) {
57
+ validateRwaLaunchConfig(config);
58
+ return encodeAbiParameters([{ type: "tuple", components: rwaLaunchConfigComponents }], [{
59
+ shareBps: config.shareBps, premiumBps: config.premiumBps, maxPriceAge: config.maxPriceAge,
60
+ basket: config.basket.map((asset) => getAddress(asset)), weightsBps: [...config.weightsBps],
61
+ }]);
62
+ }
63
+ export function decodeRwaLaunchTail(encoded) {
64
+ let decoded;
65
+ try {
66
+ decoded = decodeAbiParameters([{ type: "tuple", components: rwaLaunchConfigComponents }], encoded)[0];
67
+ }
68
+ catch {
69
+ throw invalid("RWA tail must be abi.encode(RwaLaunchConfigV1)");
70
+ }
71
+ const config = {
72
+ shareBps: decoded.shareBps, premiumBps: decoded.premiumBps, maxPriceAge: decoded.maxPriceAge,
73
+ basket: [...decoded.basket], weightsBps: [...decoded.weightsBps],
74
+ };
75
+ if (encodeRwaLaunchTail(config).toLowerCase() !== encoded.toLowerCase())
76
+ throw invalid("RWA tail is not canonical");
77
+ return config;
78
+ }
79
+ /** Outer market binding: config6, the variant's adapter and the USDG quote. */
80
+ export function validateRwaMarketContext(market) {
81
+ if (!isRwaProfile(market.profileId))
82
+ return;
83
+ const adapterId = market.profileId.toLowerCase() === RWA_FIXED_PROFILE_ID ? RWA_FIXED_ADAPTER_ID : RWA_DYNAMIC_ADAPTER_ID;
84
+ if (market.configVersion !== 6 || market.adapterId.toLowerCase() !== adapterId || market.quoteAsset.toLowerCase() !== RWA_QUOTE_ASSET.toLowerCase()) {
85
+ throw invalid("RWA markets require config6, their RWA adapter and a USDG quote");
86
+ }
87
+ }
88
+ /**
89
+ * Plan checks for the collector-construction invariants that would otherwise fail at market
90
+ * preparation, after begin: each RWA market's outer binding, a Dividends launch token, and
91
+ * every basket stock committed as a hub fee asset with a 0/10000/0 owner/rewards/burn policy.
92
+ * No-op for plans without RWA markets.
93
+ */
94
+ export function validateRwaLaunchPlan(plan) {
95
+ const policies = new Map(plan.feeAssets.map((policy) => [policy.asset.toLowerCase(), policy]));
96
+ for (const market of plan.markets) {
97
+ if (!isRwaProfile(market.profileId))
98
+ continue;
99
+ validateRwaMarketContext(market);
100
+ const config = decodePoolBoundV4LifecycleMarketConfig(market.config, 6);
101
+ if (config.version !== 6 || config.rwaLaunchConfig === undefined)
102
+ throw invalid("RWA markets require an RWA tail");
103
+ if (plan.token.rewardMode !== LifecycleRewardMode.Dividends)
104
+ throw invalid("RWA launches require a Dividends launch token");
105
+ for (const asset of config.rwaLaunchConfig.basket) {
106
+ const policy = policies.get(asset.toLowerCase());
107
+ if (policy === undefined || policy.ownerBps !== 0 || policy.rewardsBps !== 10000 || policy.burnBps !== 0) {
108
+ throw invalid("Every RWA basket stock must be a fee asset with a 0/10000/0 owner/rewards/burn policy");
109
+ }
110
+ }
111
+ }
112
+ }
113
+ //# sourceMappingURL=rwa.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rwa.js","sourceRoot":"","sources":["../../src/lifecycle/rwa.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"transactions.d.ts","sourceRoot":"","sources":["../../src/lifecycle/transactions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,KAAK,OAAO,EAAE,MAAM,MAAM,CAAC;AAExD,OAAO,EAAuC,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AACrF,OAAO,EAA0B,KAAK,8BAA8B,EAAE,KAAK,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAQpH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAcvD,eAAO,MAAM,8BAA8B,OAAO,CAAC;AACnD;qFACqF;AACrF,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,KAAK,MAAM,EAAE,GAAG,MAAM,CAAgD;AAEnH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAa/F;AAED;oFACoF;AACpF,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,SAAO,GAAG,MAAM,EAAE,CAG7H;AAED,8EAA8E;AAC9E,wBAAgB,+BAA+B,CAAC,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,CAe5J;AAED,MAAM,MAAM,gBAAgB,GACxB;IAAE,IAAI,EAAE,QAAQ,GAAG,OAAO,GAAG,UAAU,CAAA;CAAE,GACzC;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AACtD,KAAK,iBAAiB,GAAG;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,eAAe,CAAA;CAAE,CAAC;AAEvE,kFAAkF;AAClF,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,gBAAgB,EAAE,GAAG,CAAC,EAAE,iBAAiB,GAAG,oBAAoB,CAYlI;AAED;;gFAEgF;AAChF,wBAAgB,sBAAsB,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,kBAAkB,EAAE,EAAE,8BAA8B,EAAE,GAAG,CAAC,EAAE,iBAAiB,GAAG,oBAAoB,EAAE,CAqB1J;AAED,8EAA8E;AAC9E,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,8BAA8B,GAAG,oBAAoB,EAAE,CAEvG"}
1
+ {"version":3,"file":"transactions.d.ts","sourceRoot":"","sources":["../../src/lifecycle/transactions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,KAAK,OAAO,EAAE,MAAM,MAAM,CAAC;AAExD,OAAO,EAAuC,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AACrF,OAAO,EAA0B,KAAK,8BAA8B,EAAE,KAAK,oBAAoB,EAAE,MAAM,YAAY,CAAC;AASpH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAkBvD,eAAO,MAAM,8BAA8B,OAAO,CAAC;AACnD;qFACqF;AACrF,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,KAAK,MAAM,EAAE,GAAG,MAAM,CAAgD;AAEnH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAe/F;AAED;oFACoF;AACpF,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,SAAO,GAAG,MAAM,EAAE,CAG7H;AAED,8EAA8E;AAC9E,wBAAgB,+BAA+B,CAAC,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,CAe5J;AAED,MAAM,MAAM,gBAAgB,GACxB;IAAE,IAAI,EAAE,QAAQ,GAAG,OAAO,GAAG,UAAU,CAAA;CAAE,GACzC;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AACtD,KAAK,iBAAiB,GAAG;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,eAAe,CAAA;CAAE,CAAC;AAEvE,kFAAkF;AAClF,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,gBAAgB,EAAE,GAAG,CAAC,EAAE,iBAAiB,GAAG,oBAAoB,CAYlI;AAED;;gFAEgF;AAChF,wBAAgB,sBAAsB,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,kBAAkB,EAAE,EAAE,8BAA8B,EAAE,GAAG,CAAC,EAAE,iBAAiB,GAAG,oBAAoB,EAAE,CAqB1J;AAED,8EAA8E;AAC9E,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,8BAA8B,GAAG,oBAAoB,EAAE,CAEvG"}
@@ -8,6 +8,7 @@ import { UFG_LAUNCH_PROXY_ADDRESS, isUfgProfile } from "./ufg-config.js";
8
8
  import { decodeAbyssLifecycleMarketConfig, decodePoolBoundV4LifecycleMarketConfig, decodeV4LifecycleMarketConfig, isPoolBoundV4ConfigVersion } from "./markets.js";
9
9
  import { isHmmProfile } from "./hmm.js";
10
10
  import { isRaetoProfile } from "./raeto.js";
11
+ import { isRwaProfile } from "./rwa.js";
11
12
  import { isAutoCompoundProfile } from "./auto-compound.js";
12
13
  // Native9,723,187 Abyss3 (0x679d…e77), fork32-position10,900,786;
13
14
  // fork V4 fixed/dynamic8-position8,804,466; UFG9,896,176; native HMM8-position14,676,638 (0x459c…5b7).
@@ -20,7 +21,11 @@ const preparationCosts = {
20
21
  raeto: { market: 9300000n, position: 70000n },
21
22
  // Same matrix: auto-compound1 <=8.71M,32 <=10.76M.
22
23
  autoCompound: { market: 8900000n, position: 70000n },
24
+ // template-gas-rwa-matrix.json: RWA one-stock1 9.85M, six-stock1 10.24M, six-stock32 12.29M;
25
+ // the collector checks each basket stock against the hub policy and registry.
26
+ rwa: { market: 9900000n, position: 70000n },
23
27
  };
28
+ const RWA_PREPARATION_GAS_PER_STOCK = 80000n;
24
29
  export const LIFECYCLE_CAPACITY_PADDING_BPS = 2500;
25
30
  /** Full single-market observations include call overhead. Add conservative full
26
31
  * calldata/hash processing (16 intrinsic gas per nonzero byte plus8 for copying). */
@@ -29,13 +34,16 @@ export function preparationGasEstimate(plan, first, count) {
29
34
  let gas = 0n;
30
35
  for (let index = first; index < first + count; index += 1) {
31
36
  const market = plan.markets[index];
37
+ const bound = isPoolBoundV4ConfigVersion(market.configVersion) ? decodePoolBoundV4LifecycleMarketConfig(market.config, market.configVersion) : undefined;
32
38
  const positions = market.configVersion === 1 ? decodeAbyssLifecycleMarketConfig(market.config).positions.length
33
- : isPoolBoundV4ConfigVersion(market.configVersion) ? decodePoolBoundV4LifecycleMarketConfig(market.config, market.configVersion).positions.length
34
- : decodeV4LifecycleMarketConfig(market.config).positions.length;
39
+ : bound !== undefined ? bound.positions.length : decodeV4LifecycleMarketConfig(market.config).positions.length;
35
40
  const cost = market.configVersion === 1 ? preparationCosts.abyss : isHmmProfile(market.profileId) ? preparationCosts.hmm
36
41
  : isUfgProfile(market.profileId) ? preparationCosts.ufg : isRaetoProfile(market.profileId) ? preparationCosts.raeto
37
- : isAutoCompoundProfile(market.profileId) ? preparationCosts.autoCompound : preparationCosts.v4;
42
+ : isRwaProfile(market.profileId) ? preparationCosts.rwa
43
+ : isAutoCompoundProfile(market.profileId) ? preparationCosts.autoCompound : preparationCosts.v4;
38
44
  gas += cost.market + cost.position * BigInt(positions - 1);
45
+ if (bound?.version === 6 && bound.rwaLaunchConfig !== undefined)
46
+ gas += RWA_PREPARATION_GAS_PER_STOCK * BigInt(bound.rwaLaunchConfig.basket.length);
39
47
  }
40
48
  return gas;
41
49
  }
@@ -1 +1 @@
1
- {"version":3,"file":"transactions.js","sourceRoot":"","sources":["../../src/lifecycle/transactions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transactions.js","sourceRoot":"","sources":["../../src/lifecycle/transactions.ts"],"names":[],"mappings":"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"}
@@ -20,6 +20,7 @@ staking, or dividends. A pool profile selects the admitted venue/hook implementa
20
20
  | UFG | Abyss QUOTE/QUOTE_ORACLE or `V4UfgFixedPool`, `V4UfgDynamicPool` | Treasury route; ERC20 without rewards; quote-only fees, executor bounty 0. |
21
21
  | Auto-compounding | `V4AutoCompoundStaticPool`, `V4AutoCompoundDynamicPool` | Net hook fees fund permanently locked full-range liquidity; both fee modes; LP and developer fees 0. |
22
22
  | Raeto | `V4RaetoFixedPool`, `V4RaetoDynamicPool` | QuoteOnly WETH/USDG; Raeto share 5/10/25/50/75%; LP and developer fees 0. |
23
+ | RWA rewards | `V4RwaFixedPool`, `V4RwaDynamicPool` | QuoteOnly USDG; a share of quote fees buys 1–6 listed stock tokens for Dividends holders; LP and developer fees 0. |
23
24
 
24
25
  SDK presets are the source of supported profiles and deployment wiring. Profiles
25
26
  registered after this release appear with a subsequent SDK update.
@@ -716,6 +717,85 @@ batches, exact local opening-buy quotes and the unchanged native 32M total gas
716
717
  ceiling. A ready assessment is a budget/input check, **not execution proof**.
717
718
  See [gas evidence](lifecycle-gas-profiles.md#raeto-and-auto-compounding-v4-evidence).
718
719
 
720
+ ## Configure RWA rewards
721
+
722
+ RWA rewards divert a share of a USDG pool's quote fees into **listed stock
723
+ tokens that stream to holders**. Select `V4RwaFixedPool` (fixed maximum hook fee)
724
+ or `V4RwaDynamicPool` (minimum/maximum/sensitivity schedule). The hook creation
725
+ bytes are identical to the ordinary zero-royalty fixed/dynamic templates; the RWA
726
+ collector, factory, locker, adapter and frozen terms are different.
727
+
728
+ ```ts
729
+ import {
730
+ getKnownLifecycleProfile, KnownLifecycleProfile,
731
+ RWA_QUOTE_ASSET, encodeRwaLaunchTail, validateRwaLaunchPlan,
732
+ type RwaLaunchConfigV1,
733
+ } from "@black-market/sdk/lifecycle";
734
+
735
+ const preset = getKnownLifecycleProfile({
736
+ chainId: 4663, orchestrator: "0x91560876033d568d25CDe98C78c33ff8FC43962c",
737
+ key: KnownLifecycleProfile.V4RwaFixedPool,
738
+ })!;
739
+ // Basket addresses must be ascending and listed in the RWA asset registry.
740
+ const rwaLaunchConfig: RwaLaunchConfigV1 = {
741
+ shareBps: 2500, premiumBps: 50, maxPriceAge: 0,
742
+ basket: ["0x322F0929c4625eD5bAd873c95208D54E1c003b2d", "0xaF3D76f1834A1d425780943C99Ea8A608f8a93f9"],
743
+ weightsBps: [5000, 5000],
744
+ };
745
+ console.log(preset.profile.id, RWA_QUOTE_ASSET, encodeRwaLaunchTail(rwaLaunchConfig));
746
+ // Add rwaLaunchConfig to the USDG market's V4PoolBoundLifecycleMarketConfigV6, set
747
+ // token.rewardMode to LifecycleRewardMode.Dividends and give every basket stock a
748
+ // 0/10000/0 fee policy. Once the plan is built: validateRwaLaunchPlan(plan).
749
+ ```
750
+
751
+ An RWA market must use its RWA config6 profile/adapter, the **USDG** quote,
752
+ `feeMode: 1` (QuoteOnly), `lpFeePips: 0` and `developerFeeBps: 0`. One V4
753
+ market per quote means at most one RWA market per launch; other offerings can
754
+ share the plan. The 2,500/50 values above are illustrative, not recommendations.
755
+
756
+ `rwaLaunchConfig` holds:
757
+
758
+ | Field | Range | Meaning |
759
+ | --- | --- | --- |
760
+ | `shareBps` | 0–10,000 | Share of post-treasury USDG fees earmarked for stock; 0 turns the diversion off. |
761
+ | `premiumBps` | 0–100 | Bonus over the Chainlink value paid to keepers who sell stock into an earmark. |
762
+ | `maxPriceAge` | uint32 | Stock-feed staleness: 0 uses registry defaults, `RWA_ANY_PRICE_AGE` disables the stock age check, anything else is seconds. The USDG feed always keeps its registry window. |
763
+ | `basket` | 1–6 addresses | Strictly ascending stock tokens; never USDG. Fixed for the launch's lifetime. |
764
+ | `weightsBps` | one per stock | Integer basis points summing to exactly 10,000; zero weights are allowed. |
765
+
766
+ The encoder appends exactly `abi.encode(RwaLaunchConfigV1)`, including its
767
+ leading tuple offset (8 + 2 × basket size words). Static violations throw
768
+ `INVALID_RWA_CONFIG` locally; whether each stock is **listed** is live registry
769
+ state, checked on-chain when the launch begins.
770
+
771
+ The collector constructor additionally requires a **Dividends** launch token and
772
+ every basket stock committed as a hub fee asset with a `0/10000/0`
773
+ owner/rewards/burn policy. Those checks would otherwise fail only at market
774
+ preparation, after begin, so `planLaunch`, `prepareAndPlanLifecycleLaunch` and
775
+ `buildNextTransaction` call `validateRwaLaunchPlan(plan)` and refuse before any
776
+ RPC with `INVALID_RWA_CONFIG`. A launch token, USDG and six stocks fill all eight
777
+ fee-asset slots. Term changes change the full plan hash but not the hook's
778
+ zero-salt prefix commitment; always re-review changed plans.
779
+
780
+ At collection the collector moves `floor(quote fees × shareBps / 10000)` into
781
+ per-stock USDG earmarks by the current weights; dust, the unearmarked remainder
782
+ and all launch-token fees go to the hub. Keepers call
783
+ `fill(stock, amount, minQuoteOut, recipient)` to sell exact stock against that
784
+ stock's earmark at the registry's Chainlink value plus `premiumBps`;
785
+ `maxFill(stock)` reports the largest fill now. Anyone can call `forward()` to
786
+ move bought stock to the hub (paused or blocked stock is skipped and stays
787
+ pending); call it in the same transaction as the hub's `claimAndSplit()`. The
788
+ **current fee owner** can change `shareBps`, `premiumBps`, `maxPriceAge` and
789
+ future weights with the collector's setters; existing earmarks never move.
790
+ Use `rwaRewardCollectorV1Abi` and `rwaAssetRegistryV1Abi` (`isListed`,
791
+ `listedAssets`, `quoteFor`, `assetFor`). [Reference and preserved deployment evidence](reference.md#rwa-reward-profiles)
792
+ identify the registry and profile/adapter IDs.
793
+
794
+ Both variants have measured capacity in `robinhood-4663-capacity-v6`, with
795
+ deterministic preparation batches, exact local opening-buy quotes and the
796
+ unchanged native 32M total gas ceiling. A ready assessment is a budget/input
797
+ check, **not execution proof**. See [gas evidence](lifecycle-gas-profiles.md#rwa-rewards-v6-evidence).
798
+
719
799
  ## Configure auto-compounding
720
800
 
721
801
  Select `V4AutoCompoundStaticPool` for a fixed hook fee or
@@ -758,7 +838,7 @@ buys**, so the local ordered opening-buy curve remains exact. Post-opening swaps
758
838
  can compound in `afterSwap`; the hook's low-gas guard reverts `CompoundOutOfGas()`.
759
839
  Do not cap swap gas below `eth_estimateGas` or treat launch bounds as swap limits.
760
840
  Launch transactions now have measured static/dynamic capacity and preparation
761
- costs retained in `robinhood-4663-capacity-v5`, not ordinary fixed-hook guesses. They retain
841
+ costs retained in `robinhood-4663-capacity-v6`, not ordinary fixed-hook guesses. They retain
762
842
  the native 32M total gas ceiling and never execute calldata during planning.
763
843
  See [the fork matrix and ArbOS caveat](lifecycle-gas-profiles.md#raeto-and-auto-compounding-v4-evidence).
764
844
 
@@ -1,6 +1,6 @@
1
1
  # Lifecycle gas, capacity, execution evidence and RPC budgets
2
2
 
3
- Version **0.16.1**, model **`robinhood-4663-capacity-v5`**, separates the native transaction ceiling, conservative capacity bounds, exact opening-curve quotes and actual transaction receipts. A ready assessment is not execution proof.
3
+ Version **0.17.0**, model **`robinhood-4663-capacity-v6`**, separates the native transaction ceiling, conservative capacity bounds, exact opening-curve quotes and actual transaction receipts. A ready assessment is not execution proof.
4
4
 
5
5
  ## One native ceiling, not component-sized gas
6
6
 
@@ -12,7 +12,7 @@ A reviewed launch gas differing from the ceiling is stale and refuses with `STAL
12
12
 
13
13
  ## Capacity selects the mode, not the gas limit
14
14
 
15
- `computeLifecycleLaunchGasBounds({ plan, predictedToken, ufg?, headroomBps? })` returns conservative `atomicComputeGasUpperBound` and `activationComputeGasUpperBound`, excluding poster gas, or undefined for unknown coverage. The v5 model retains v4 coverage for Raeto fixed/dynamic and current auto-compounding static/dynamic in addition to the existing Abyss, V4, HMM and UFG templates. It accounts for token/reward creation, actual UFG proxy/treasury route, measured market/position work, ordered buys, NFT minting and HMM forwarding overhead, and adds atomic conversion work. UFG route overhead is independent of market profile names.
15
+ `computeLifecycleLaunchGasBounds({ plan, predictedToken, ufg?, headroomBps? })` returns conservative `atomicComputeGasUpperBound` and `activationComputeGasUpperBound`, excluding poster gas, or undefined for unknown coverage. The v6 model adds measured RWA rewards fixed/dynamic coverage and retains the v4 Raeto fixed/dynamic and current auto-compounding static/dynamic coverage in addition to the existing Abyss, V4, HMM and UFG templates. It accounts for token/reward creation, actual UFG proxy/treasury route, measured market/position work, ordered buys, NFT minting and HMM forwarding overhead, and adds atomic conversion work. UFG route overhead is independent of market profile names.
16
16
 
17
17
  An atomic request is a preference. Multiple markets always select staged; one known-profile market can remain atomic, including conversion funding, only when its padded compute bound plus poster allocation fits. Explicit staged remains staged. Review and persist returned `planned.mode`, not the requested mode. No positions, markets or buys are dropped, and the gas envelope is never resized.
18
18
 
@@ -73,7 +73,7 @@ it is never selected as a planning backend.
73
73
 
74
74
  ## Retained empirical evidence
75
75
 
76
- The v5 model retains the v4 [Raeto and auto-compounding measurements](#raeto-and-auto-compounding-v4-evidence) and adds the conversion reserve described above. Recorded v4 smoke evidence keeps its original version and is not rewritten as new execution evidence. These are empirical capacity bounds, not gas-limit sizing, a promise about arbitrary upgrades/future ArbOS rules, or native execution proof. Currency admission is separate: only Raeto imposes its deployed WETH/USDG quote allowlist.
76
+ The v6 model adds the [RWA rewards measurements](#rwa-rewards-v6-evidence), retains the v4 [Raeto and auto-compounding measurements](#raeto-and-auto-compounding-v4-evidence) and the v5 conversion reserve described above. Recorded v4 smoke evidence keeps its original version and is not rewritten as new execution evidence. These are empirical capacity bounds, not gas-limit sizing, a promise about arbitrary upgrades/future ArbOS rules, or native execution proof. Currency admission is separate: only Raeto (WETH/USDG) and RWA rewards (USDG) impose deployed quote allowlists.
77
77
 
78
78
  Research retained176 lifecycle receipts, including75 successful current-template atomic/activation observations with opening buys. Isolated forks extend depth, buys and combinations; failed CREATE2 cases were not counted as successful coverage. One Abyss and one fixed-V4 historical native/fork calibration matched compute exactly (19,272,603 and18,130,251 gas), while minimum successful envelopes were higher (20,527,230 and19,356,279). These two calibrations do not establish general Anvil/Nitro equivalence. Compute and poster components remain separate. Profiles are empirical capacity bounds, never transaction gas sizing or proof about arbitrary upgrades/future ArbOS rules.
79
79
 
@@ -195,6 +195,63 @@ TEMPLATE_FORK_RPC_URL=http://127.0.0.1:8571 \
195
195
  node test/integration/template-gas.fork.mjs --smoke
196
196
  ```
197
197
 
198
+ ## RWA rewards v6 evidence
199
+
200
+ The same owned-fork harness runs with `--rwa` against a separate pin after both
201
+ RWA admissions and records `test/fixtures/template-gas-rwa-matrix.json` and the
202
+ read-only `test/fixtures/template-gas-rwa-smoke.json`. Every case is a
203
+ Dividends launch with one USDG market whose fee assets are the launch token,
204
+ USDG and the basket; each basket is the registry's lowest listed stock
205
+ addresses at the pin (one or six). The harness checks each collector's on-chain
206
+ basket, share, premium, age, token, quote and registry against the planned terms,
207
+ plus exact opening-buy outputs.
208
+
209
+ The committed run contains **44 real launches / 88 successful launch
210
+ transactions** at Robinhood block **113,693,643**
211
+ (`0xea409fea2955aa229e8b1bff0e63d4ffb88c8eba0f85bd8553d9e6479e545461`), Anvil
212
+ 1.6.0: for both templates, the full six-stock grid of 1/8/32 positions × 0/1/4
213
+ buys × atomic/staged, plus one-stock cases at 1 position/0 buys and 32
214
+ positions/4 buys.
215
+
216
+ Observed peak EVM `gasUsed`, in millions:
217
+
218
+ | Template | Cases | Atomic max | Atomic max that fit 32M | Prepare max | Activation max |
219
+ | --- | ---: | ---: | ---: | ---: | ---: |
220
+ | RWA fixed | 22 | 45.872 | 27.334 | 12.293 | 24.426 |
221
+ | RWA dynamic | 22 | 45.931 | 27.389 | 12.293 | 24.509 |
222
+
223
+ The 32-position atomic cases exceed 32M and select staged; every activation fits,
224
+ including six stocks, 32 positions and four buys. At one position, a six-stock
225
+ basket adds about 0.4M preparation, 0.5M activation and 1.6M atomic gas over one stock. Fixed and dynamic
226
+ differ by under 0.1M. The same fit, forwarding-estimate, 5% margin and
227
+ below-32M-when-observed-to-fit checks apply as for the v4 matrix.
228
+
229
+ | RWA component (compute basis, before padding) | Value |
230
+ | --- | --- |
231
+ | One-market atomic base | 17,000,000 |
232
+ | Atomic extra position | 550,000 |
233
+ | Activation call base / per market / per position | 1,500,000 / 250,000 / 540,000 |
234
+ | Preparation per market / extra position / per basket stock | 9,900,000 / 70,000 / 80,000 |
235
+ | Each opening buy | 500,000 + 150,000 + 20,000 × that market's positions |
236
+
237
+ RWA buys use about 0.66M gas each at one position and 1.25M at 32 positions;
238
+ Anvil's forwarding estimate reaches about 1.7M per buy at 32 positions.
239
+ Position revalidation per buy is cheaper than Raeto's. The lower
240
+ atomic base and per-position activation keep the observed eight-position,
241
+ four-buy atomic and 32-position, four-buy activation fits plannable under 32M;
242
+ poster allocation can still stage or refuse those exact boundaries in planning.
243
+
244
+ ```sh
245
+ source ~/.config/robinhood-archive-rpc.env
246
+ export ROBINHOOD_ARCHIVE_RPC_URL
247
+ anvil --fork-url "$ROBINHOOD_ARCHIVE_RPC_URL" \
248
+ --fork-block-number 113693643 --chain-id 4663 --port 8571 --host 127.0.0.1 \
249
+ --hardfork cancun --gas-limit 120000000 --quiet
250
+ # Second terminal, after pnpm build:
251
+ TEMPLATE_FORK_RPC_URL=http://127.0.0.1:8571 node test/integration/template-gas.fork.mjs --rwa
252
+ TEMPLATE_FORK_RPC_URL=http://127.0.0.1:8571 node test/integration/template-gas.fork.mjs --rwa --smoke
253
+ ```
254
+
198
255
  ## Exact ordered opening-buy math
199
256
 
200
257
  `computeLifecycleOpeningBuys({ plan, predictedToken })` follows all liquidity bands, prior buys, initialized zero-net ticks, bitmap boundaries, both currency directions, LP/opening-hook fees, partial fills and integer output floors. HMM opening work occurs after initial buys. Auto-compounding defers until opening completes, after all initial buys; Raeto reuses the ordinary fixed/dynamic fee curve. V4's zero price-limit sentinel resolves locally to the contract-defined directional limit without changing calldata; Abyss still rejects zero.
package/docs/reference.md CHANGED
@@ -21,6 +21,7 @@ start historical log queries there, in chunks of at most **10M blocks**.
21
21
  | `UFG_UPSTREAM_FACTORY_ADDRESS` | `0xA170b5A58C111334A7237F2Ea2c428ec5022f68E` |
22
22
  | Known deployment `launchLens` | `0xcb4bb3caca71fe52eace8170cf83e901418646f8` |
23
23
  | `RAETO_PAYOUT_REGISTRY_ADDRESS` | `0xBEC2C0e91612090F82df6743F31CDF18B4386b50` |
24
+ | `RWA_ASSET_REGISTRY_ADDRESS` | `0x40356d61871C7Af760903FDD6ceb9344D7c3F328` |
24
25
 
25
26
  `getKnownLifecycleDeployment`, `getKnownLifecycleProfile`, and
26
27
  `listKnownLifecycleProfiles` are pure selectors keyed by chain/core. Unknown
@@ -225,6 +226,66 @@ pnpm build
225
226
  node --test test/integration/raeto.live.test.mjs
226
227
  ```
227
228
 
229
+ ## RWA reward profiles
230
+
231
+ All of the following are exported from `@black-market/sdk/lifecycle` (and the
232
+ root). These presets are supported on the known Robinhood 4663 deployment.
233
+
234
+ | Profile key / identity constant | Profile ID |
235
+ | --- | --- |
236
+ | `V4RwaFixedPool` / `RWA_FIXED_PROFILE_ID` | `0x3b170b03f1ff1c808970f43827df234cde866d73608b6e3e3937601ae7c8676b` |
237
+ | `V4RwaDynamicPool` / `RWA_DYNAMIC_PROFILE_ID` | `0xab6c24038ff6ec16a300aa268dc4116f1649ae07c272dfc7e814c6f198515043` |
238
+
239
+ `RWA_FIXED_ADAPTER_ID` is
240
+ `0x0f13f4a8553a4dece69888deb425b04ff169d41132f3e2097034aff00f584dd6`;
241
+ `RWA_DYNAMIC_ADAPTER_ID` is
242
+ `0x46a5f7c611f6584cc99cffcdeb55183d6c3dcafe5fc6fcce85995be82639bbe1`.
243
+ `isRwaProfile(profileId)` compares IDs case-insensitively.
244
+ `RWA_ASSET_REGISTRY_ADDRESS` is the owner-upgradeable stock registry (ERC1967 proxy,
245
+ implementation `0x6e95829569EDbbd1C018e0E6B635f0210BE57aF4`) that both collector
246
+ factories read. `RWA_QUOTE_ASSET` is USDG,
247
+ `0x5fc5360D0400a0Fd4f2af552ADD042D716F1d168`. `RWA_MAX_BASKET` is 6,
248
+ `RWA_MAX_PREMIUM_BPS` is 100 and `RWA_ANY_PRICE_AGE` is `0xffffffff`.
249
+
250
+ `RwaLaunchConfigV1 = { shareBps, premiumBps, maxPriceAge, basket, weightsBps }`.
251
+ `validateRwaLaunchConfig`, `encodeRwaLaunchTail` and `decodeRwaLaunchTail`
252
+ enforce share 0–10,000, premium 0–100, uint32 age, a 1–6 strictly ascending
253
+ non-USDG basket and integer weights summing to exactly 10,000, and exactly
254
+ `abi.encode(RwaLaunchConfigV1)` with its leading tuple offset. Truncated, extended
255
+ or noncanonical tails throw `INVALID_RWA_CONFIG`. V6 `rwaLaunchConfig` is
256
+ mutually exclusive with all other tails; RWA requires QuoteOnly, zero
257
+ LP/developer fees, its own adapter and the USDG quote.
258
+ `validateRwaLaunchPlan(plan)` additionally requires a Dividends token and a
259
+ `0/10000/0` fee policy for every basket stock; it ignores non-RWA markets and is
260
+ applied by planning and continuation before any RPC.
261
+
262
+ `rwaRewardCollectorV1Abi` is generated from verified standard-output and includes
263
+ the term/earmark/pending getters (`basket`, `weightBps`, `earmarked`,
264
+ `totalEarmarked`, `pendingStock`, `shareBps`, `premiumBps`, `maxPriceAge`,
265
+ `launchToken`, `quoteAsset`, `poolId`, `hub`, `registry`), `maxFill`, `fill`,
266
+ `forward`, the four fee-owner setters, all `Rwa*` events and the collector's
267
+ revert errors. `rwaAssetRegistryV1Abi` covers `isListed`, `listedAssets`,
268
+ `assetFeed`, `quoteFor`, `assetFor`, the quote-feed getters, `owner`, listing
269
+ events and oracle errors. See [collection and keeper semantics](launch-lifecycle.md#configure-rwa-rewards).
270
+
271
+ `test/fixtures/rwa-registry-readback.json` preserves admission bytes/receipts,
272
+ runtime hashes, factory metadata, the registry's proxy/implementation hashes and
273
+ listing, verified ABI provenance and real factory `decodeAndValidate` results for
274
+ ten accepted and rejected term sets at **113,693,643**
275
+ (`0xea409fea2955aa229e8b1bff0e63d4ffb88c8eba0f85bd8553d9e6479e545461`).
276
+ Every RWA source is identical at upstream `fde23bb` and the deployed `f3076e7`
277
+ (go-live record `9af36c6`). The generator proves hook creation bytes equal the
278
+ SDK's existing fixed and zero-royalty dynamic bytecode, and that the SDK codec
279
+ reproduces every accepted tail and refuses every static rejection.
280
+
281
+ ```sh
282
+ # Offline, deterministic regeneration from saved evidence (Node 24+):
283
+ node --experimental-transform-types scripts/generate-rwa-presets.mjs
284
+ # Explicit read-only refresh, checking the preserved go-live records:
285
+ node --experimental-transform-types scripts/generate-rwa-presets.mjs \
286
+ --readback /path/to/black-market
287
+ ```
288
+
228
289
  ## Choose a fee tier
229
290
 
230
291
  One million pips is 100%; 10,000 pips is 1%. Basis points use a 10,000 denominator.
@@ -1,6 +1,6 @@
1
1
  # Run the examples
2
2
 
3
- These commands use the checkout's built `@black-market/sdk` **0.16.1** and viem.
3
+ These commands use the checkout's built `@black-market/sdk` **0.17.0** and viem.
4
4
  Use **Node 24+** for direct TypeScript execution. Start with the one-market
5
5
  `launch-erc20-abyss.ts`; larger cases require staged preparation and a bounded activation.
6
6
  For valuation, token ordering, ranges, and buy protection, read the
@@ -20,7 +20,7 @@ chmod 600 .env
20
20
  Launch wrappers load `.env` from the working directory with `process.loadEnvFile`.
21
21
  Existing environment values take precedence. Values are literal; shell interpolation
22
22
  is not applied. Use the matching SDK version when copying wrappers into a consumer project:
23
- `pnpm add @black-market/sdk@0.16.1 viem`.
23
+ `pnpm add @black-market/sdk@0.17.0 viem`.
24
24
  Copy `launch-example.ts`, `launch-example-support.ts`, and `launch-example-kyber.ts` with the wrapper.
25
25
 
26
26
  ### Configure the environment
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@black-market/sdk",
3
- "version": "0.16.2",
3
+ "version": "0.17.0",
4
4
  "description": "TypeScript SDK for Abyss token launches, swaps, and lending.",
5
5
  "license": "MIT",
6
6
  "repository": {