@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.
- package/README.md +5 -4
- package/dist/lifecycle/deployments/rwa-dynamic-pool-v1-20261113.d.ts +71 -0
- package/dist/lifecycle/deployments/rwa-dynamic-pool-v1-20261113.d.ts.map +1 -0
- package/dist/lifecycle/deployments/rwa-dynamic-pool-v1-20261113.js +73 -0
- package/dist/lifecycle/deployments/rwa-dynamic-pool-v1-20261113.js.map +1 -0
- package/dist/lifecycle/deployments/rwa-fixed-pool-v1-20261113.d.ts +71 -0
- package/dist/lifecycle/deployments/rwa-fixed-pool-v1-20261113.d.ts.map +1 -0
- package/dist/lifecycle/deployments/rwa-fixed-pool-v1-20261113.js +73 -0
- package/dist/lifecycle/deployments/rwa-fixed-pool-v1-20261113.js.map +1 -0
- package/dist/lifecycle/gas-profile.d.ts +1 -1
- package/dist/lifecycle/gas-profile.d.ts.map +1 -1
- package/dist/lifecycle/gas-profile.js +17 -6
- package/dist/lifecycle/gas-profile.js.map +1 -1
- package/dist/lifecycle/index.d.ts +2 -0
- package/dist/lifecycle/index.d.ts.map +1 -1
- package/dist/lifecycle/index.js +2 -0
- package/dist/lifecycle/index.js.map +1 -1
- package/dist/lifecycle/markets.d.ts +2 -0
- package/dist/lifecycle/markets.d.ts.map +1 -1
- package/dist/lifecycle/markets.js +32 -4
- package/dist/lifecycle/markets.js.map +1 -1
- package/dist/lifecycle/opening-buys.js +1 -1
- package/dist/lifecycle/opening-buys.js.map +1 -1
- package/dist/lifecycle/planner.d.ts.map +1 -1
- package/dist/lifecycle/planner.js +5 -1
- 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 +8 -1
- package/dist/lifecycle/presets.js.map +1 -1
- package/dist/lifecycle/rwa-abi.d.ts +752 -0
- package/dist/lifecycle/rwa-abi.d.ts.map +1 -0
- package/dist/lifecycle/rwa-abi.js +968 -0
- package/dist/lifecycle/rwa-abi.js.map +1 -0
- package/dist/lifecycle/rwa.d.ts +42 -0
- package/dist/lifecycle/rwa.d.ts.map +1 -0
- package/dist/lifecycle/rwa.js +113 -0
- package/dist/lifecycle/rwa.js.map +1 -0
- package/dist/lifecycle/transactions.d.ts.map +1 -1
- package/dist/lifecycle/transactions.js +11 -3
- package/dist/lifecycle/transactions.js.map +1 -1
- package/docs/launch-lifecycle.md +81 -1
- package/docs/lifecycle-gas-profiles.md +60 -3
- package/docs/reference.md +61 -0
- package/examples/README.md +2 -2
- package/package.json +1 -1
- package/src/lifecycle/deployments/rwa-dynamic-pool-v1-20261113.ts +74 -0
- package/src/lifecycle/deployments/rwa-fixed-pool-v1-20261113.ts +74 -0
- package/src/lifecycle/gas-profile.ts +17 -7
- package/src/lifecycle/index.ts +2 -0
- package/src/lifecycle/markets.ts +24 -2
- package/src/lifecycle/opening-buys.ts +1 -1
- package/src/lifecycle/planner.ts +6 -1
- package/src/lifecycle/presets.ts +8 -1
- package/src/lifecycle/rwa-abi.ts +968 -0
- package/src/lifecycle/rwa.ts +119 -0
- 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":"AAAA,+FAA+F;AAC/F,uEAAuE;AACvE,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC;QACE,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,iBAAiB;QACzB,MAAM,EAAE,OAAO;KAChB;IACD;QACE,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,qBAAqB;QAC7B,MAAM,EAAE,OAAO;KAChB;IACD;QACE,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,gBAAgB;QACxB,MAAM,EAAE,OAAO;KAChB;IACD;QACE,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,kBAAkB;QAC1B,MAAM,EAAE,OAAO;KAChB;IACD;QACE,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,cAAc;QACtB,MAAM,EAAE,OAAO;KAChB;IACD;QACE,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,gBAAgB;QACxB,MAAM,EAAE,OAAO;KAChB;IACD;QACE,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,kBAAkB;QAC1B,MAAM,EAAE,OAAO;KAChB;IACD;QACE,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,cAAc;QACtB,MAAM,EAAE,OAAO;KAChB;IACD;QACE,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,kBAAkB;QAC1B,MAAM,EAAE,OAAO;KAChB;IACD;QACE,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,UAAU;QAClB,MAAM,EAAE,OAAO;KAChB;IACD;QACE,WAAW,EAAE,KAAK;QAClB,QAAQ,EAAE;YACR;gBACE,SAAS,EAAE,IAAI;gBACf,cAAc,EAAE,SAAS;gBACzB,MAAM,EAAE,OAAO;gBACf,MAAM,EAAE,SAAS;aAClB;YACD;gBACE,SAAS,EAAE,KAAK;gBAChB,cAAc,EAAE,SAAS;gBACzB,MAAM,EAAE,QAAQ;gBAChB,MAAM,EAAE,SAAS;aAClB;YACD;gBACE,SAAS,EAAE,KAAK;gBAChB,cAAc,EAAE,QAAQ;gBACxB,MAAM,EAAE,WAAW;gBACnB,MAAM,EAAE,QAAQ;aACjB;SACF;QACD,MAAM,EAAE,mBAAmB;QAC3B,MAAM,EAAE,OAAO;KAChB;IACD;QACE,WAAW,EAAE,KAAK;QAClB,QAAQ,EAAE;YACR;gBACE,SAAS,EAAE,IAAI;gBACf,cAAc,EAAE,SAAS;gBACzB,MAAM,EAAE,aAAa;gBACrB,MAAM,EAAE,SAAS;aAClB;YACD;gBACE,SAAS,EAAE,IAAI;gBACf,cAAc,EAAE,SAAS;gBACzB,MAAM,EAAE,QAAQ;gBAChB,MAAM,EAAE,SAAS;aAClB;YACD;gBACE,SAAS,EAAE,KAAK;gBAChB,cAAc,EAAE,SAAS;gBACzB,MAAM,EAAE,qBAAqB;gBAC7B,MAAM,EAAE,SAAS;aAClB;YACD;gBACE,SAAS,EAAE,KAAK;gBAChB,cAAc,EAAE,SAAS;gBACzB,MAAM,EAAE,gBAAgB;gBACxB,MAAM,EAAE,SAAS;aAClB;YACD;gBACE,SAAS,EAAE,KAAK;gBAChB,cAAc,EAAE,SAAS;gBACzB,MAAM,EAAE,gBAAgB;gBACxB,MAAM,EAAE,SAAS;aAClB;YACD;gBACE,SAAS,EAAE,KAAK;gBAChB,cAAc,EAAE,QAAQ;gBACxB,MAAM,EAAE,UAAU;gBAClB,MAAM,EAAE,QAAQ;aACjB;SACF;QACD,MAAM,EAAE,kBAAkB;QAC1B,MAAM,EAAE,OAAO;KAChB;IACD;QACE,WAAW,EAAE,KAAK;QAClB,QAAQ,EAAE;YACR;gBACE,SAAS,EAAE,IAAI;gBACf,cAAc,EAAE,SAAS;gBACzB,MAAM,EAAE,OAAO;gBACf,MAAM,EAAE,SAAS;aAClB;YACD;gBACE,SAAS,EAAE,IAAI;gBACf,cAAc,EAAE,SAAS;gBACzB,MAAM,EAAE,QAAQ;gBAChB,MAAM,EAAE,SAAS;aAClB;YACD;gBACE,SAAS,EAAE,IAAI;gBACf,cAAc,EAAE,SAAS;gBACzB,MAAM,EAAE,WAAW;gBACnB,MAAM,EAAE,SAAS;aAClB;YACD;gBACE,SAAS,EAAE,KAAK;gBAChB,cAAc,EAAE,SAAS;gBACzB,MAAM,EAAE,aAAa;gBACrB,MAAM,EAAE,SAAS;aAClB;YACD;gBACE,SAAS,EAAE,KAAK;gBAChB,cAAc,EAAE,SAAS;gBACzB,MAAM,EAAE,aAAa;gBACrB,MAAM,EAAE,SAAS;aAClB;YACD;gBACE,SAAS,EAAE,KAAK;gBAChB,cAAc,EAAE,QAAQ;gBACxB,MAAM,EAAE,YAAY;gBACpB,MAAM,EAAE,QAAQ;aACjB;YACD;gBACE,SAAS,EAAE,KAAK;gBAChB,cAAc,EAAE,QAAQ;gBACxB,MAAM,EAAE,aAAa;gBACrB,MAAM,EAAE,QAAQ;aACjB;SACF;QACD,MAAM,EAAE,WAAW;QACnB,MAAM,EAAE,OAAO;KAChB;IACD;QACE,WAAW,EAAE,KAAK;QAClB,QAAQ,EAAE;YACR;gBACE,SAAS,EAAE,IAAI;gBACf,cAAc,EAAE,SAAS;gBACzB,MAAM,EAAE,UAAU;gBAClB,MAAM,EAAE,SAAS;aAClB;YACD;gBACE,SAAS,EAAE,KAAK;gBAChB,cAAc,EAAE,QAAQ;gBACxB,MAAM,EAAE,qBAAqB;gBAC7B,MAAM,EAAE,QAAQ;aACjB;YACD;gBACE,SAAS,EAAE,KAAK;gBAChB,cAAc,EAAE,QAAQ;gBACxB,MAAM,EAAE,gBAAgB;gBACxB,MAAM,EAAE,QAAQ;aACjB;SACF;QACD,MAAM,EAAE,uBAAuB;QAC/B,MAAM,EAAE,OAAO;KAChB;IACD;QACE,WAAW,EAAE,KAAK;QAClB,QAAQ,EAAE;YACR;gBACE,SAAS,EAAE,IAAI;gBACf,cAAc,EAAE,SAAS;gBACzB,MAAM,EAAE,UAAU;gBAClB,MAAM,EAAE,SAAS;aAClB;YACD;gBACE,SAAS,EAAE,KAAK;gBAChB,cAAc,EAAE,QAAQ;gBACxB,MAAM,EAAE,oBAAoB;gBAC5B,MAAM,EAAE,QAAQ;aACjB;YACD;gBACE,SAAS,EAAE,KAAK;gBAChB,cAAc,EAAE,QAAQ;gBACxB,MAAM,EAAE,eAAe;gBACvB,MAAM,EAAE,QAAQ;aACjB;SACF;QACD,MAAM,EAAE,mBAAmB;QAC3B,MAAM,EAAE,OAAO;KAChB;IACD;QACE,WAAW,EAAE,KAAK;QAClB,QAAQ,EAAE;YACR;gBACE,SAAS,EAAE,IAAI;gBACf,cAAc,EAAE,SAAS;gBACzB,MAAM,EAAE,UAAU;gBAClB,MAAM,EAAE,SAAS;aAClB;YACD;gBACE,SAAS,EAAE,KAAK;gBAChB,cAAc,EAAE,QAAQ;gBACxB,MAAM,EAAE,kBAAkB;gBAC1B,MAAM,EAAE,QAAQ;aACjB;YACD;gBACE,SAAS,EAAE,KAAK;gBAChB,cAAc,EAAE,QAAQ;gBACxB,MAAM,EAAE,aAAa;gBACrB,MAAM,EAAE,QAAQ;aACjB;SACF;QACD,MAAM,EAAE,iBAAiB;QACzB,MAAM,EAAE,OAAO;KAChB;IACD;QACE,WAAW,EAAE,KAAK;QAClB,QAAQ,EAAE;YACR;gBACE,SAAS,EAAE,IAAI;gBACf,cAAc,EAAE,SAAS;gBACzB,MAAM,EAAE,OAAO;gBACf,MAAM,EAAE,SAAS;aAClB;YACD;gBACE,SAAS,EAAE,KAAK;gBAChB,cAAc,EAAE,SAAS;gBACzB,MAAM,EAAE,QAAQ;gBAChB,MAAM,EAAE,SAAS;aAClB;SACF;QACD,MAAM,EAAE,wBAAwB;QAChC,MAAM,EAAE,OAAO;KAChB;IACD;QACE,WAAW,EAAE,KAAK;QAClB,QAAQ,EAAE;YACR;gBACE,SAAS,EAAE,IAAI;gBACf,cAAc,EAAE,SAAS;gBACzB,MAAM,EAAE,OAAO;gBACf,MAAM,EAAE,SAAS;aAClB;YACD;gBACE,SAAS,EAAE,KAAK;gBAChB,cAAc,EAAE,SAAS;gBACzB,MAAM,EAAE,QAAQ;gBAChB,MAAM,EAAE,SAAS;aAClB;SACF;QACD,MAAM,EAAE,mBAAmB;QAC3B,MAAM,EAAE,OAAO;KAChB;IACD;QACE,WAAW,EAAE,KAAK;QAClB,QAAQ,EAAE;YACR;gBACE,SAAS,EAAE,IAAI;gBACf,cAAc,EAAE,SAAS;gBACzB,MAAM,EAAE,aAAa;gBACrB,MAAM,EAAE,SAAS;aAClB;YACD;gBACE,SAAS,EAAE,IAAI;gBACf,cAAc,EAAE,SAAS;gBACzB,MAAM,EAAE,QAAQ;gBAChB,MAAM,EAAE,SAAS;aAClB;YACD;gBACE,SAAS,EAAE,IAAI;gBACf,cAAc,EAAE,SAAS;gBACzB,MAAM,EAAE,KAAK;gBACb,MAAM,EAAE,SAAS;aAClB;YACD;gBACE,YAAY,EAAE;oBACZ;wBACE,cAAc,EAAE,QAAQ;wBACxB,MAAM,EAAE,UAAU;wBAClB,MAAM,EAAE,QAAQ;qBACjB;oBACD;wBACE,cAAc,EAAE,QAAQ;wBACxB,MAAM,EAAE,YAAY;wBACpB,MAAM,EAAE,QAAQ;qBACjB;oBACD;wBACE,cAAc,EAAE,QAAQ;wBACxB,MAAM,EAAE,aAAa;wBACrB,MAAM,EAAE,QAAQ;qBACjB;oBACD;wBACE,cAAc,EAAE,WAAW;wBAC3B,MAAM,EAAE,QAAQ;wBAChB,MAAM,EAAE,WAAW;qBACpB;oBACD;wBACE,cAAc,EAAE,UAAU;wBAC1B,MAAM,EAAE,YAAY;wBACpB,MAAM,EAAE,UAAU;qBACnB;iBACF;gBACD,SAAS,EAAE,KAAK;gBAChB,cAAc,EAAE,0BAA0B;gBAC1C,MAAM,EAAE,OAAO;gBACf,MAAM,EAAE,OAAO;aAChB;SACF;QACD,MAAM,EAAE,qBAAqB;QAC7B,MAAM,EAAE,OAAO;KAChB;IACD;QACE,WAAW,EAAE,KAAK;QAClB,QAAQ,EAAE;YACR;gBACE,SAAS,EAAE,IAAI;gBACf,cAAc,EAAE,SAAS;gBACzB,MAAM,EAAE,UAAU;gBAClB,MAAM,EAAE,SAAS;aAClB;YACD;gBACE,SAAS,EAAE,KAAK;gBAChB,cAAc,EAAE,UAAU;gBAC1B,MAAM,EAAE,YAAY;gBACpB,MAAM,EAAE,UAAU;aACnB;SACF;QACD,MAAM,EAAE,mBAAmB;QAC3B,MAAM,EAAE,OAAO;KAChB;IACD;QACE,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,QAAQ;QAChB,SAAS,EAAE;YACT;gBACE,cAAc,EAAE,WAAW;gBAC3B,MAAM,EAAE,EAAE;gBACV,MAAM,EAAE,WAAW;aACpB;SACF;QACD,iBAAiB,EAAE,MAAM;QACzB,MAAM,EAAE,UAAU;KACnB;IACD;QACE,QAAQ,EAAE;YACR;gBACE,cAAc,EAAE,SAAS;gBACzB,MAAM,EAAE,OAAO;gBACf,MAAM,EAAE,SAAS;aAClB;SACF;QACD,MAAM,EAAE,WAAW;QACnB,SAAS,EAAE;YACT;gBACE,cAAc,EAAE,SAAS;gBACzB,MAAM,EAAE,QAAQ;gBAChB,MAAM,EAAE,SAAS;aAClB;SACF;QACD,iBAAiB,EAAE,MAAM;QACzB,MAAM,EAAE,UAAU;KACnB;IACD;QACE,QAAQ,EAAE;YACR;gBACE,cAAc,EAAE,SAAS;gBACzB,MAAM,EAAE,OAAO;gBACf,MAAM,EAAE,SAAS;aAClB;YACD;gBACE,cAAc,EAAE,SAAS;gBACzB,MAAM,EAAE,aAAa;gBACrB,MAAM,EAAE,SAAS;aAClB;YACD;gBACE,cAAc,EAAE,SAAS;gBACzB,MAAM,EAAE,aAAa;gBACrB,MAAM,EAAE,SAAS;aAClB;YACD;gBACE,cAAc,EAAE,SAAS;gBACzB,MAAM,EAAE,WAAW;gBACnB,MAAM,EAAE,SAAS;aAClB;SACF;QACD,MAAM,EAAE,MAAM;QACd,SAAS,EAAE;YACT;gBACE,cAAc,EAAE,SAAS;gBACzB,MAAM,EAAE,UAAU;gBAClB,MAAM,EAAE,SAAS;aAClB;SACF;QACD,iBAAiB,EAAE,YAAY;QAC/B,MAAM,EAAE,UAAU;KACnB;IACD;QACE,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,SAAS;QACjB,SAAS,EAAE;YACT;gBACE,cAAc,EAAE,WAAW;gBAC3B,MAAM,EAAE,SAAS;gBACjB,MAAM,EAAE,WAAW;aACpB;SACF;QACD,iBAAiB,EAAE,YAAY;QAC/B,MAAM,EAAE,UAAU;KACnB;IACD;QACE,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,KAAK;QACb,SAAS,EAAE;YACT;gBACE,cAAc,EAAE,SAAS;gBACzB,MAAM,EAAE,EAAE;gBACV,MAAM,EAAE,SAAS;aAClB;SACF;QACD,iBAAiB,EAAE,MAAM;QACzB,MAAM,EAAE,UAAU;KACnB;IACD;QACE,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,aAAa;QACrB,SAAS,EAAE;YACT;gBACE,cAAc,EAAE,SAAS;gBACzB,MAAM,EAAE,EAAE;gBACV,MAAM,EAAE,SAAS;aAClB;SACF;QACD,iBAAiB,EAAE,MAAM;QACzB,MAAM,EAAE,UAAU;KACnB;IACD;QACE,QAAQ,EAAE;YACR;gBACE,cAAc,EAAE,SAAS;gBACzB,MAAM,EAAE,OAAO;gBACf,MAAM,EAAE,SAAS;aAClB;SACF;QACD,MAAM,EAAE,SAAS;QACjB,SAAS,EAAE;YACT;gBACE,cAAc,EAAE,SAAS;gBACzB,MAAM,EAAE,aAAa;gBACrB,MAAM,EAAE,SAAS;aAClB;YACD;gBACE,cAAc,EAAE,SAAS;gBACzB,MAAM,EAAE,UAAU;gBAClB,MAAM,EAAE,SAAS;aAClB;SACF;QACD,iBAAiB,EAAE,MAAM;QACzB,MAAM,EAAE,UAAU;KACnB;IACD;QACE,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,aAAa;QACrB,SAAS,EAAE;YACT;gBACE,cAAc,EAAE,QAAQ;gBACxB,MAAM,EAAE,EAAE;gBACV,MAAM,EAAE,QAAQ;aACjB;SACF;QACD,iBAAiB,EAAE,MAAM;QACzB,MAAM,EAAE,UAAU;KACnB;IACD;QACE,QAAQ,EAAE;YACR;gBACE,cAAc,EAAE,SAAS;gBACzB,MAAM,EAAE,OAAO;gBACf,MAAM,EAAE,SAAS;aAClB;SACF;QACD,MAAM,EAAE,cAAc;QACtB,SAAS,EAAE;YACT;gBACE,cAAc,EAAE,SAAS;gBACzB,MAAM,EAAE,QAAQ;gBAChB,MAAM,EAAE,SAAS;aAClB;SACF;QACD,iBAAiB,EAAE,MAAM;QACzB,MAAM,EAAE,UAAU;KACnB;IACD;QACE,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,QAAQ;QAChB,SAAS,EAAE;YACT;gBACE,cAAc,EAAE,SAAS;gBACzB,MAAM,EAAE,EAAE;gBACV,MAAM,EAAE,SAAS;aAClB;SACF;QACD,iBAAiB,EAAE,MAAM;QACzB,MAAM,EAAE,UAAU;KACnB;IACD;QACE,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,YAAY;QACpB,SAAS,EAAE;YACT;gBACE,cAAc,EAAE,QAAQ;gBACxB,MAAM,EAAE,EAAE;gBACV,MAAM,EAAE,QAAQ;aACjB;SACF;QACD,iBAAiB,EAAE,MAAM;QACzB,MAAM,EAAE,UAAU;KACnB;IACD;QACE,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,YAAY;QACpB,SAAS,EAAE;YACT;gBACE,cAAc,EAAE,SAAS;gBACzB,MAAM,EAAE,EAAE;gBACV,MAAM,EAAE,SAAS;aAClB;SACF;QACD,iBAAiB,EAAE,MAAM;QACzB,MAAM,EAAE,UAAU;KACnB;IACD;QACE,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,UAAU;QAClB,SAAS,EAAE;YACT;gBACE,cAAc,EAAE,6BAA6B;gBAC7C,MAAM,EAAE,EAAE;gBACV,MAAM,EAAE,SAAS;aAClB;SACF;QACD,iBAAiB,EAAE,MAAM;QACzB,MAAM,EAAE,UAAU;KACnB;IACD;QACE,QAAQ,EAAE;YACR;gBACE,cAAc,EAAE,QAAQ;gBACxB,MAAM,EAAE,gBAAgB;gBACxB,MAAM,EAAE,QAAQ;aACjB;SACF;QACD,MAAM,EAAE,gBAAgB;QACxB,SAAS,EAAE,EAAE;QACb,iBAAiB,EAAE,YAAY;QAC/B,MAAM,EAAE,UAAU;KACnB;IACD;QACE,QAAQ,EAAE;YACR;gBACE,cAAc,EAAE,QAAQ;gBACxB,MAAM,EAAE,eAAe;gBACvB,MAAM,EAAE,QAAQ;aACjB;SACF;QACD,MAAM,EAAE,eAAe;QACvB,SAAS,EAAE,EAAE;QACb,iBAAiB,EAAE,YAAY;QAC/B,MAAM,EAAE,UAAU;KACnB;IACD;QACE,QAAQ,EAAE;YACR;gBACE,cAAc,EAAE,QAAQ;gBACxB,MAAM,EAAE,aAAa;gBACrB,MAAM,EAAE,QAAQ;aACjB;SACF;QACD,MAAM,EAAE,aAAa;QACrB,SAAS,EAAE,EAAE;QACb,iBAAiB,EAAE,YAAY;QAC/B,MAAM,EAAE,UAAU;KACnB;IACD;QACE,QAAQ,EAAE;YACR;gBACE,cAAc,EAAE,UAAU;gBAC1B,MAAM,EAAE,eAAe;gBACvB,MAAM,EAAE,UAAU;aACnB;SACF;QACD,MAAM,EAAE,YAAY;QACpB,SAAS,EAAE,EAAE;QACb,iBAAiB,EAAE,YAAY;QAC/B,MAAM,EAAE,UAAU;KACnB;IACD;QACE,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,UAAU;QAClB,SAAS,EAAE;YACT;gBACE,cAAc,EAAE,QAAQ;gBACxB,MAAM,EAAE,EAAE;gBACV,MAAM,EAAE,QAAQ;aACjB;SACF;QACD,iBAAiB,EAAE,MAAM;QACzB,MAAM,EAAE,UAAU;KACnB;IACD;QACE,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,gBAAgB;QACxB,SAAS,EAAE;YACT;gBACE,cAAc,EAAE,SAAS;gBACzB,MAAM,EAAE,EAAE;gBACV,MAAM,EAAE,SAAS;aAClB;SACF;QACD,iBAAiB,EAAE,MAAM;QACzB,MAAM,EAAE,UAAU;KACnB;IACD;QACE,QAAQ,EAAE;YACR;gBACE,cAAc,EAAE,SAAS;gBACzB,MAAM,EAAE,OAAO;gBACf,MAAM,EAAE,SAAS;aAClB;SACF;QACD,MAAM,EAAE,WAAW;QACnB,SAAS,EAAE;YACT;gBACE,cAAc,EAAE,QAAQ;gBACxB,MAAM,EAAE,QAAQ;gBAChB,MAAM,EAAE,QAAQ;aACjB;SACF;QACD,iBAAiB,EAAE,MAAM;QACzB,MAAM,EAAE,UAAU;KACnB;CACO,CAAC;AAEX,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC;QACE,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,gBAAgB;QACxB,MAAM,EAAE,OAAO;KAChB;IACD;QACE,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,cAAc;QACtB,MAAM,EAAE,OAAO;KAChB;IACD;QACE,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,WAAW;QACnB,MAAM,EAAE,OAAO;KAChB;IACD;QACE,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,cAAc;QACtB,MAAM,EAAE,OAAO;KAChB;IACD;QACE,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,eAAe;QACvB,MAAM,EAAE,OAAO;KAChB;IACD;QACE,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,YAAY;QACpB,MAAM,EAAE,OAAO;KAChB;IACD;QACE,WAAW,EAAE,KAAK;QAClB,QAAQ,EAAE;YACR;gBACE,SAAS,EAAE,IAAI;gBACf,cAAc,EAAE,SAAS;gBACzB,MAAM,EAAE,OAAO;gBACf,MAAM,EAAE,SAAS;aAClB;SACF;QACD,MAAM,EAAE,cAAc;QACtB,MAAM,EAAE,OAAO;KAChB;IACD;QACE,WAAW,EAAE,KAAK;QAClB,QAAQ,EAAE;YACR;gBACE,SAAS,EAAE,IAAI;gBACf,cAAc,EAAE,SAAS;gBACzB,MAAM,EAAE,OAAO;gBACf,MAAM,EAAE,SAAS;aAClB;YACD;gBACE,SAAS,EAAE,IAAI;gBACf,cAAc,EAAE,SAAS;gBACzB,MAAM,EAAE,MAAM;gBACd,MAAM,EAAE,SAAS;aAClB;YACD;gBACE,SAAS,EAAE,KAAK;gBAChB,cAAc,EAAE,QAAQ;gBACxB,MAAM,EAAE,iBAAiB;gBACzB,MAAM,EAAE,QAAQ;aACjB;SACF;QACD,MAAM,EAAE,UAAU;QAClB,MAAM,EAAE,OAAO;KAChB;IACD;QACE,WAAW,EAAE,KAAK;QAClB,QAAQ,EAAE;YACR;gBACE,SAAS,EAAE,IAAI;gBACf,cAAc,EAAE,SAAS;gBACzB,MAAM,EAAE,MAAM;gBACd,MAAM,EAAE,SAAS;aAClB;YACD;gBACE,SAAS,EAAE,KAAK;gBAChB,cAAc,EAAE,QAAQ;gBACxB,MAAM,EAAE,iBAAiB;gBACzB,MAAM,EAAE,QAAQ;aACjB;YACD;gBACE,SAAS,EAAE,KAAK;gBAChB,cAAc,EAAE,QAAQ;gBACxB,MAAM,EAAE,YAAY;gBACpB,MAAM,EAAE,QAAQ;aACjB;SACF;QACD,MAAM,EAAE,cAAc;QACtB,MAAM,EAAE,OAAO;KAChB;IACD;QACE,QAAQ,EAAE;YACR;gBACE,cAAc,EAAE,SAAS;gBACzB,MAAM,EAAE,OAAO;gBACf,MAAM,EAAE,SAAS;aAClB;SACF;QACD,MAAM,EAAE,WAAW;QACnB,SAAS,EAAE;YACT;gBACE,YAAY,EAAE;oBACZ;wBACE,cAAc,EAAE,SAAS;wBACzB,MAAM,EAAE,MAAM;wBACd,MAAM,EAAE,SAAS;qBAClB;oBACD;wBACE,cAAc,EAAE,QAAQ;wBACxB,MAAM,EAAE,iBAAiB;wBACzB,MAAM,EAAE,QAAQ;qBACjB;oBACD;wBACE,cAAc,EAAE,MAAM;wBACtB,MAAM,EAAE,QAAQ;wBAChB,MAAM,EAAE,MAAM;qBACf;iBACF;gBACD,cAAc,EAAE,qCAAqC;gBACrD,MAAM,EAAE,EAAE;gBACV,MAAM,EAAE,OAAO;aAChB;SACF;QACD,iBAAiB,EAAE,MAAM;QACzB,MAAM,EAAE,UAAU;KACnB;IACD;QACE,QAAQ,EAAE;YACR;gBACE,cAAc,EAAE,SAAS;gBACzB,MAAM,EAAE,OAAO;gBACf,MAAM,EAAE,SAAS;aAClB;YACD;gBACE,cAAc,EAAE,SAAS;gBACzB,MAAM,EAAE,aAAa;gBACrB,MAAM,EAAE,SAAS;aAClB;YACD;gBACE,cAAc,EAAE,QAAQ;gBACxB,MAAM,EAAE,YAAY;gBACpB,MAAM,EAAE,QAAQ;aACjB;YACD;gBACE,cAAc,EAAE,QAAQ;gBACxB,MAAM,EAAE,aAAa;gBACrB,MAAM,EAAE,QAAQ;aACjB;SACF;QACD,MAAM,EAAE,UAAU;QAClB,SAAS,EAAE;YACT;gBACE,cAAc,EAAE,SAAS;gBACzB,MAAM,EAAE,EAAE;gBACV,MAAM,EAAE,SAAS;aAClB;SACF;QACD,iBAAiB,EAAE,MAAM;QACzB,MAAM,EAAE,UAAU;KACnB;IACD;QACE,QAAQ,EAAE;YACR;gBACE,cAAc,EAAE,SAAS;gBACzB,MAAM,EAAE,OAAO;gBACf,MAAM,EAAE,SAAS;aAClB;SACF;QACD,MAAM,EAAE,UAAU;QAClB,SAAS,EAAE;YACT;gBACE,cAAc,EAAE,MAAM;gBACtB,MAAM,EAAE,EAAE;gBACV,MAAM,EAAE,MAAM;aACf;SACF;QACD,iBAAiB,EAAE,MAAM;QACzB,MAAM,EAAE,UAAU;KACnB;IACD;QACE,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,cAAc;QACtB,SAAS,EAAE;YACT;gBACE,cAAc,EAAE,WAAW;gBAC3B,MAAM,EAAE,EAAE;gBACV,MAAM,EAAE,WAAW;aACpB;SACF;QACD,iBAAiB,EAAE,MAAM;QACzB,MAAM,EAAE,UAAU;KACnB;IACD;QACE,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,OAAO;QACf,SAAS,EAAE;YACT;gBACE,cAAc,EAAE,SAAS;gBACzB,MAAM,EAAE,EAAE;gBACV,MAAM,EAAE,SAAS;aAClB;SACF;QACD,iBAAiB,EAAE,MAAM;QACzB,MAAM,EAAE,UAAU;KACnB;IACD;QACE,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,YAAY;QACpB,SAAS,EAAE;YACT;gBACE,cAAc,EAAE,SAAS;gBACzB,MAAM,EAAE,EAAE;gBACV,MAAM,EAAE,SAAS;aAClB;SACF;QACD,iBAAiB,EAAE,MAAM;QACzB,MAAM,EAAE,UAAU;KACnB;IACD;QACE,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,WAAW;QACnB,SAAS,EAAE;YACT;gBACE,cAAc,EAAE,SAAS;gBACzB,MAAM,EAAE,EAAE;gBACV,MAAM,EAAE,SAAS;aAClB;SACF;QACD,iBAAiB,EAAE,MAAM;QACzB,MAAM,EAAE,UAAU;KACnB;IACD;QACE,QAAQ,EAAE;YACR;gBACE,cAAc,EAAE,SAAS;gBACzB,MAAM,EAAE,OAAO;gBACf,MAAM,EAAE,SAAS;aAClB;YACD;gBACE,cAAc,EAAE,SAAS;gBACzB,MAAM,EAAE,aAAa;gBACrB,MAAM,EAAE,SAAS;aAClB;YACD;gBACE,cAAc,EAAE,QAAQ;gBACxB,MAAM,EAAE,YAAY;gBACpB,MAAM,EAAE,QAAQ;aACjB;YACD;gBACE,cAAc,EAAE,QAAQ;gBACxB,MAAM,EAAE,aAAa;gBACrB,MAAM,EAAE,QAAQ;aACjB;SACF;QACD,MAAM,EAAE,UAAU;QAClB,SAAS,EAAE;YACT;gBACE,cAAc,EAAE,SAAS;gBACzB,MAAM,EAAE,EAAE;gBACV,MAAM,EAAE,SAAS;aAClB;SACF;QACD,iBAAiB,EAAE,MAAM;QACzB,MAAM,EAAE,UAAU;KACnB;IACD;QACE,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,sBAAsB;QAC9B,SAAS,EAAE;YACT;gBACE,cAAc,EAAE,QAAQ;gBACxB,MAAM,EAAE,EAAE;gBACV,MAAM,EAAE,QAAQ;aACjB;SACF;QACD,iBAAiB,EAAE,MAAM;QACzB,MAAM,EAAE,UAAU;KACnB;IACD;QACE,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,iBAAiB;QACzB,SAAS,EAAE;YACT;gBACE,cAAc,EAAE,QAAQ;gBACxB,MAAM,EAAE,EAAE;gBACV,MAAM,EAAE,QAAQ;aACjB;SACF;QACD,iBAAiB,EAAE,MAAM;QACzB,MAAM,EAAE,UAAU;KACnB;CACO,CAAC"}
|
|
@@ -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;
|
|
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
|
-
:
|
|
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
|
-
:
|
|
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":"AAAA,OAAO,EAAE,kBAAkB,EAAgB,MAAM,MAAM,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAqB,MAAM,aAAa,CAAC;AACrF,OAAO,EAAE,sBAAsB,EAAkE,MAAM,YAAY,CAAC;AACpH,OAAO,EAAE,8BAA8B,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,wBAAwB,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACzE,OAAO,EAAE,gCAAgC,EAAE,sCAAsC,EAAE,6BAA6B,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;AACnK,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAG3D,kEAAkE;AAClE,uGAAuG;AACvG,MAAM,gBAAgB,GAAG;IACvB,KAAK,EAAE,EAAE,MAAM,EAAE,QAAU,EAAE,QAAQ,EAAE,MAAO,EAAE;IAChD,EAAE,EAAE,EAAE,MAAM,EAAE,QAAU,EAAE,QAAQ,EAAE,MAAO,EAAE;IAC7C,GAAG,EAAE,EAAE,MAAM,EAAE,SAAW,EAAE,QAAQ,EAAE,MAAO,EAAE;IAC/C,GAAG,EAAE,EAAE,MAAM,EAAE,SAAW,EAAE,QAAQ,EAAE,MAAO,EAAE;IAC/C,wDAAwD;IACxD,KAAK,EAAE,EAAE,MAAM,EAAE,QAAU,EAAE,QAAQ,EAAE,MAAO,EAAE;IAChD,mDAAmD;IACnD,YAAY,EAAE,EAAE,MAAM,EAAE,QAAU,EAAE,QAAQ,EAAE,MAAO,EAAE;
|
|
1
|
+
{"version":3,"file":"transactions.js","sourceRoot":"","sources":["../../src/lifecycle/transactions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAgB,MAAM,MAAM,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAqB,MAAM,aAAa,CAAC;AACrF,OAAO,EAAE,sBAAsB,EAAkE,MAAM,YAAY,CAAC;AACpH,OAAO,EAAE,8BAA8B,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,wBAAwB,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACzE,OAAO,EAAE,gCAAgC,EAAE,sCAAsC,EAAE,6BAA6B,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;AACnK,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAG3D,kEAAkE;AAClE,uGAAuG;AACvG,MAAM,gBAAgB,GAAG;IACvB,KAAK,EAAE,EAAE,MAAM,EAAE,QAAU,EAAE,QAAQ,EAAE,MAAO,EAAE;IAChD,EAAE,EAAE,EAAE,MAAM,EAAE,QAAU,EAAE,QAAQ,EAAE,MAAO,EAAE;IAC7C,GAAG,EAAE,EAAE,MAAM,EAAE,SAAW,EAAE,QAAQ,EAAE,MAAO,EAAE;IAC/C,GAAG,EAAE,EAAE,MAAM,EAAE,SAAW,EAAE,QAAQ,EAAE,MAAO,EAAE;IAC/C,wDAAwD;IACxD,KAAK,EAAE,EAAE,MAAM,EAAE,QAAU,EAAE,QAAQ,EAAE,MAAO,EAAE;IAChD,mDAAmD;IACnD,YAAY,EAAE,EAAE,MAAM,EAAE,QAAU,EAAE,QAAQ,EAAE,MAAO,EAAE;IACvD,6FAA6F;IAC7F,8EAA8E;IAC9E,GAAG,EAAE,EAAE,MAAM,EAAE,QAAU,EAAE,QAAQ,EAAE,MAAO,EAAE;CACtC,CAAC;AACX,MAAM,6BAA6B,GAAG,MAAO,CAAC;AAC9C,MAAM,CAAC,MAAM,8BAA8B,GAAG,IAAI,CAAC;AACnD;qFACqF;AACrF,MAAM,UAAU,sBAAsB,CAAC,IAAmB,IAAY,OAAO,GAAG,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAEnH,MAAM,UAAU,sBAAsB,CAAC,IAAkB,EAAE,KAAa,EAAE,KAAa;IACrF,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,KAAK,IAAI,KAAK,GAAG,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QAC1D,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAE,CAAC;QACpC,MAAM,KAAK,GAAG,0BAA0B,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,sCAAsC,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACzJ,MAAM,SAAS,GAAG,MAAM,CAAC,aAAa,KAAK,CAAC,CAAC,CAAC,CAAC,gCAAgC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,MAAM;YAC7G,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,6BAA6B,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC;QACjH,MAAM,IAAI,GAAG,MAAM,CAAC,aAAa,KAAK,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,GAAG;YACtH,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,KAAK;gBACnH,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,GAAG;oBACvD,CAAC,CAAC,qBAAqB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAClG,GAAG,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;QAC3D,IAAI,KAAK,EAAE,OAAO,KAAK,CAAC,IAAI,KAAK,CAAC,eAAe,KAAK,SAAS;YAAE,GAAG,IAAI,6BAA6B,GAAG,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACtJ,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;oFACoF;AACpF,MAAM,UAAU,sBAAsB,CAAC,IAAkB,EAAE,QAAgB,EAAE,UAAkB,EAAE,WAAW,GAAG,IAAI;IACjH,MAAM,IAAI,GAAG,qBAAqB,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC;IAC9F,OAAO,+BAA+B,CAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC;AAChH,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,+BAA+B,CAAC,IAAkB,EAAE,QAAgB,EAAE,UAAkB,EAAE,WAAmB,EAAE,WAAmB;IAChJ,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,WAAW,GAAG,CAAC,IAAI,WAAW,GAAG,KAAK;QAAE,MAAM,IAAI,sBAAsB,CAAC,gBAAgB,EAAE,qDAAqD,CAAC,CAAC;IAC5L,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,8BAA8B,EAAE,WAAW,CAAC,CAAC,CAAC;IACtF,MAAM,IAAI,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,WAAW,CAAC,GAAG,OAAO,GAAG,KAAK,CAAC,GAAG,MAAM,IAAI,UAAU,CAAC;IAC7F,MAAM,OAAO,GAAG,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/C,IAAI,KAAK,GAAG,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC;IACxB,KAAK,IAAI,KAAK,GAAG,QAAQ,EAAE,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACnE,MAAM,QAAQ,GAAG,sBAAsB,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;QACxD,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;YAAE,MAAM,IAAI,sBAAsB,CAAC,uBAAuB,EAAE,qFAAqF,CAAC,CAAC;QACtK,IAAI,KAAK,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,QAAQ,CAAC,EAAE,CAAC;YAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAAC,KAAK,GAAG,CAAC,CAAC;YAAC,GAAG,GAAG,EAAE,CAAC;QAAC,CAAC;QACrF,KAAK,IAAI,CAAC,CAAC;QACX,GAAG,IAAI,QAAQ,CAAC;IAClB,CAAC;IACD,IAAI,KAAK,GAAG,CAAC;QAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACnC,OAAO,OAAO,CAAC;AACjB,CAAC;AAOD,kFAAkF;AAClF,MAAM,UAAU,qBAAqB,CAAC,IAAkB,EAAE,OAAyB,EAAE,GAAuB;IAC1G,MAAM,GAAG,GAAG,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,mBAAmB,CAAC;IACzE,MAAM,IAAI,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,EAAE,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,wBAAwB,EAAE,CAAC;IACzJ,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO;QACjE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,KAAK,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,oBAAoB,CAAC,UAAU,IAAI,OAAO,CAAC,IAAI,KAAK,oBAAoB,CAAC,IAAI,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/N,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;QACrB,KAAK,QAAQ,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,kBAAkB,CAAC,EAAE,GAAG,EAAE,YAAY,EAAE,cAAc,EAAE,IAAI,EAAE,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,EAAE,cAAc,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,eAAe,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC;QAC9S,KAAK,OAAO,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,kBAAkB,CAAC,EAAE,GAAG,EAAE,YAAY,EAAE,aAAa,EAAE,IAAI,EAAE,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,aAAa,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,EAAE,cAAc,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;QACvU,KAAK,UAAU,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,kBAAkB,CAAC,EAAE,GAAG,EAAE,YAAY,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,EAAE,cAAc,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,eAAe,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC;QAC7Q,KAAK,SAAS,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,WAAW,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,kBAAkB,CAAC,EAAE,GAAG,EAAE,YAAY,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,EAAE,WAAW,EAAE,OAAO,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,CAAC,KAAK;YAChS,cAAc,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,KAAK,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,EAAE,eAAe,EAAE,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC;IACjL,CAAC;AACH,CAAC;AAED;;gFAEgF;AAChF,MAAM,UAAU,sBAAsB,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,kBAAkB,EAAkC,EAAE,GAAuB;IAChI,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,QAAQ;QAAE,MAAM,IAAI,sBAAsB,CAAC,wBAAwB,EAAE,0EAA0E,CAAC,CAAC;IACnL,IAAI,IAAI,CAAC,OAAO,IAAI,EAAE,IAAI,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC;QAAE,MAAM,IAAI,sBAAsB,CAAC,gBAAgB,EAAE,sDAAsD,CAAC,CAAC;IACrL,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,EAAE;QAAE,MAAM,IAAI,sBAAsB,CAAC,sBAAsB,EAAE,mDAAmD,CAAC,CAAC;IACzK,IAAI,IAAI,KAAK,QAAQ,IAAI,kBAAkB,KAAK,SAAS;QAAE,MAAM,IAAI,sBAAsB,CAAC,6BAA6B,EAAE,sDAAsD,CAAC,CAAC;IACnL,8BAA8B,CAAC,IAAI,CAAC,CAAC;IACrC,MAAM,YAAY,GAA2B,EAAE,CAAC;IAChD,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtB,YAAY,CAAC,IAAI,CAAC,qBAAqB,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC;IAC1E,CAAC;SAAM,CAAC;QACN,MAAM,OAAO,GAAG,kBAAkB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC5D,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,MAAM;YAAE,MAAM,IAAI,sBAAsB,CAAC,6BAA6B,EAAE,qEAAqE,CAAC,CAAC;QACtT,YAAY,CAAC,IAAI,CAAC,qBAAqB,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC;QACvE,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,YAAY,CAAC,IAAI,CAAC,qBAAqB,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC;YACvF,KAAK,IAAI,KAAK,CAAC;QACjB,CAAC;QACD,YAAY,CAAC,IAAI,CAAC,qBAAqB,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC;IAC5E,CAAC;IACD,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,WAAW,EAAE,aAAa,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,YAAY,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,GAAG,CAAC,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC1L,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,uBAAuB,CAAC,OAAuC;IAC7E,OAAO,sBAAsB,CAAC,OAAO,CAAC,CAAC;AACzC,CAAC"}
|
package/docs/launch-lifecycle.md
CHANGED
|
@@ -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-
|
|
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.
|
|
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
|
|
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
|
|
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.
|
package/examples/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Run the examples
|
|
2
2
|
|
|
3
|
-
These commands use the checkout's built `@black-market/sdk` **0.
|
|
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.
|
|
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
|