@black-market/sdk 0.10.0 → 0.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (83) hide show
  1. package/README.md +21 -2
  2. package/dist/lifecycle/abi.d.ts +1 -0
  3. package/dist/lifecycle/abi.d.ts.map +1 -1
  4. package/dist/lifecycle/abi.js +1 -0
  5. package/dist/lifecycle/abi.js.map +1 -1
  6. package/dist/lifecycle/calibration.d.ts.map +1 -1
  7. package/dist/lifecycle/calibration.js +2 -0
  8. package/dist/lifecycle/calibration.js.map +1 -1
  9. package/dist/lifecycle/deployments/ufg-dynamic-pool-20261021.d.ts +71 -0
  10. package/dist/lifecycle/deployments/ufg-dynamic-pool-20261021.d.ts.map +1 -0
  11. package/dist/lifecycle/deployments/ufg-dynamic-pool-20261021.js +73 -0
  12. package/dist/lifecycle/deployments/ufg-dynamic-pool-20261021.js.map +1 -0
  13. package/dist/lifecycle/deployments/ufg-fixed-pool-20261021.d.ts +71 -0
  14. package/dist/lifecycle/deployments/ufg-fixed-pool-20261021.d.ts.map +1 -0
  15. package/dist/lifecycle/deployments/ufg-fixed-pool-20261021.js +73 -0
  16. package/dist/lifecycle/deployments/ufg-fixed-pool-20261021.js.map +1 -0
  17. package/dist/lifecycle/index.d.ts +1 -0
  18. package/dist/lifecycle/index.d.ts.map +1 -1
  19. package/dist/lifecycle/index.js +1 -0
  20. package/dist/lifecycle/index.js.map +1 -1
  21. package/dist/lifecycle/markets.d.ts +3 -1
  22. package/dist/lifecycle/markets.d.ts.map +1 -1
  23. package/dist/lifecycle/markets.js +20 -3
  24. package/dist/lifecycle/markets.js.map +1 -1
  25. package/dist/lifecycle/planner.d.ts.map +1 -1
  26. package/dist/lifecycle/planner.js +83 -54
  27. package/dist/lifecycle/planner.js.map +1 -1
  28. package/dist/lifecycle/presets.d.ts +9 -2
  29. package/dist/lifecycle/presets.d.ts.map +1 -1
  30. package/dist/lifecycle/presets.js +26 -5
  31. package/dist/lifecycle/presets.js.map +1 -1
  32. package/dist/lifecycle/progress.d.ts.map +1 -1
  33. package/dist/lifecycle/progress.js +26 -5
  34. package/dist/lifecycle/progress.js.map +1 -1
  35. package/dist/lifecycle/rpc.js +3 -2
  36. package/dist/lifecycle/rpc.js.map +1 -1
  37. package/dist/lifecycle/simulation.d.ts +1 -1
  38. package/dist/lifecycle/simulation.d.ts.map +1 -1
  39. package/dist/lifecycle/simulation.js +119 -175
  40. package/dist/lifecycle/simulation.js.map +1 -1
  41. package/dist/lifecycle/transactions.d.ts +6 -0
  42. package/dist/lifecycle/transactions.d.ts.map +1 -1
  43. package/dist/lifecycle/transactions.js +39 -0
  44. package/dist/lifecycle/transactions.js.map +1 -1
  45. package/dist/lifecycle/types.d.ts +17 -4
  46. package/dist/lifecycle/types.d.ts.map +1 -1
  47. package/dist/lifecycle/types.js.map +1 -1
  48. package/dist/lifecycle/ufg-abi.d.ts +2386 -0
  49. package/dist/lifecycle/ufg-abi.d.ts.map +1 -0
  50. package/dist/lifecycle/ufg-abi.js +171 -0
  51. package/dist/lifecycle/ufg-abi.js.map +1 -0
  52. package/dist/lifecycle/ufg-config.d.ts +38 -0
  53. package/dist/lifecycle/ufg-config.d.ts.map +1 -0
  54. package/dist/lifecycle/ufg-config.js +75 -0
  55. package/dist/lifecycle/ufg-config.js.map +1 -0
  56. package/dist/lifecycle/ufg.d.ts +21 -0
  57. package/dist/lifecycle/ufg.d.ts.map +1 -0
  58. package/dist/lifecycle/ufg.js +98 -0
  59. package/dist/lifecycle/ufg.js.map +1 -0
  60. package/docs/launch-lifecycle.md +215 -32
  61. package/examples/.env.example +4 -0
  62. package/examples/README.md +35 -2
  63. package/examples/launch-example-support.ts +1 -0
  64. package/examples/launch-example.ts +1 -0
  65. package/examples/launch.ts +1 -0
  66. package/examples/ufg-launch-config.ts +31 -0
  67. package/package.json +1 -1
  68. package/src/lifecycle/abi.ts +1 -0
  69. package/src/lifecycle/calibration.ts +1 -0
  70. package/src/lifecycle/deployments/ufg-dynamic-pool-20261021.ts +74 -0
  71. package/src/lifecycle/deployments/ufg-fixed-pool-20261021.ts +74 -0
  72. package/src/lifecycle/index.ts +1 -0
  73. package/src/lifecycle/markets.ts +16 -3
  74. package/src/lifecycle/planner.ts +75 -51
  75. package/src/lifecycle/presets.ts +27 -6
  76. package/src/lifecycle/progress.ts +22 -5
  77. package/src/lifecycle/rpc.ts +3 -2
  78. package/src/lifecycle/simulation.ts +114 -166
  79. package/src/lifecycle/transactions.ts +38 -1
  80. package/src/lifecycle/types.ts +15 -5
  81. package/src/lifecycle/ufg-abi.ts +173 -0
  82. package/src/lifecycle/ufg-config.ts +77 -0
  83. package/src/lifecycle/ufg.ts +86 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ufg-abi.d.ts","sourceRoot":"","sources":["../../src/lifecycle/ufg-abi.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwBtB,CAAC;AAEX,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiC1B,CAAC;AAEX,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwB3B,CAAC;AAEX,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoF5B,CAAC"}
@@ -0,0 +1,171 @@
1
+ // Complete UFG ABIs; generated by scripts/generate-ufg-presets.mjs from protocol artifacts.
2
+ export const ufgLaunchProxyV1Abi = [
3
+ { "type": "constructor", "inputs": [{ "name": "orchestrator_", "type": "address" }, { "name": "registry_", "type": "address" }, { "name": "treasuryFactory_", "type": "address" }], "stateMutability": "nonpayable" },
4
+ { "type": "receive", "stateMutability": "payable" },
5
+ { "type": "function", "name": "activateLaunch", "inputs": [{ "name": "plan", "type": "tuple", "components": [{ "name": "chainId", "type": "uint256" }, { "name": "orchestrator", "type": "address" }, { "name": "creator", "type": "address" }, { "name": "nonce", "type": "uint256" }, { "name": "token", "type": "tuple", "components": [{ "name": "kind", "type": "uint8" }, { "name": "rewardMode", "type": "uint8" }, { "name": "name", "type": "string" }, { "name": "symbol", "type": "string" }, { "name": "supply", "type": "uint256" }, { "name": "nftUnit", "type": "uint256" }, { "name": "metadataURI", "type": "string" }, { "name": "salt", "type": "bytes32" }, { "name": "inventoryRecipient", "type": "address" }, { "name": "burnOnCancel", "type": "bool" }] }, { "name": "funding", "type": "tuple[]", "components": [{ "name": "asset", "type": "address" }, { "name": "amount", "type": "uint256" }, { "name": "kind", "type": "uint8" }, { "name": "inputAsset", "type": "address" }, { "name": "inputAmount", "type": "uint256" }, { "name": "target", "type": "address" }, { "name": "data", "type": "bytes" }] }, { "name": "feeAssets", "type": "tuple[]", "components": [{ "name": "asset", "type": "address" }, { "name": "ownerBps", "type": "uint16" }, { "name": "rewardsBps", "type": "uint16" }, { "name": "burnBps", "type": "uint16" }] }, { "name": "markets", "type": "tuple[]", "components": [{ "name": "adapterId", "type": "bytes32" }, { "name": "profileId", "type": "bytes32" }, { "name": "quoteAsset", "type": "address" }, { "name": "tokenBudget", "type": "uint256" }, { "name": "configVersion", "type": "uint32" }, { "name": "config", "type": "bytes" }] }, { "name": "buys", "type": "tuple[]", "components": [{ "name": "marketIndex", "type": "uint32" }, { "name": "quoteAmountIn", "type": "uint256" }, { "name": "minTokenOut", "type": "uint256" }, { "name": "recipient", "type": "address" }, { "name": "sqrtPriceLimitX96", "type": "uint160" }] }, { "name": "deadline", "type": "uint256" }, { "name": "executorFeeBps", "type": "uint16" }] }], "outputs": [{ "name": "receipt", "type": "tuple", "components": [{ "name": "launchId", "type": "bytes32" }, { "name": "planHash", "type": "bytes32" }, { "name": "token", "type": "address" }, { "name": "feeHub", "type": "address" }, { "name": "rewards", "type": "address" }, { "name": "marketCount", "type": "uint32" }, { "name": "positionCount", "type": "uint32" }, { "name": "quoteSpent", "type": "uint256[]" }, { "name": "tokenOut", "type": "uint256[]" }] }], "stateMutability": "nonpayable" },
6
+ { "type": "function", "name": "beginLaunch", "inputs": [{ "name": "plan", "type": "tuple", "components": [{ "name": "chainId", "type": "uint256" }, { "name": "orchestrator", "type": "address" }, { "name": "creator", "type": "address" }, { "name": "nonce", "type": "uint256" }, { "name": "token", "type": "tuple", "components": [{ "name": "kind", "type": "uint8" }, { "name": "rewardMode", "type": "uint8" }, { "name": "name", "type": "string" }, { "name": "symbol", "type": "string" }, { "name": "supply", "type": "uint256" }, { "name": "nftUnit", "type": "uint256" }, { "name": "metadataURI", "type": "string" }, { "name": "salt", "type": "bytes32" }, { "name": "inventoryRecipient", "type": "address" }, { "name": "burnOnCancel", "type": "bool" }] }, { "name": "funding", "type": "tuple[]", "components": [{ "name": "asset", "type": "address" }, { "name": "amount", "type": "uint256" }, { "name": "kind", "type": "uint8" }, { "name": "inputAsset", "type": "address" }, { "name": "inputAmount", "type": "uint256" }, { "name": "target", "type": "address" }, { "name": "data", "type": "bytes" }] }, { "name": "feeAssets", "type": "tuple[]", "components": [{ "name": "asset", "type": "address" }, { "name": "ownerBps", "type": "uint16" }, { "name": "rewardsBps", "type": "uint16" }, { "name": "burnBps", "type": "uint16" }] }, { "name": "markets", "type": "tuple[]", "components": [{ "name": "adapterId", "type": "bytes32" }, { "name": "profileId", "type": "bytes32" }, { "name": "quoteAsset", "type": "address" }, { "name": "tokenBudget", "type": "uint256" }, { "name": "configVersion", "type": "uint32" }, { "name": "config", "type": "bytes" }] }, { "name": "buys", "type": "tuple[]", "components": [{ "name": "marketIndex", "type": "uint32" }, { "name": "quoteAmountIn", "type": "uint256" }, { "name": "minTokenOut", "type": "uint256" }, { "name": "recipient", "type": "address" }, { "name": "sqrtPriceLimitX96", "type": "uint160" }] }, { "name": "deadline", "type": "uint256" }, { "name": "executorFeeBps", "type": "uint16" }] }, { "name": "mode", "type": "uint8" }, { "name": "config", "type": "tuple", "components": [{ "name": "treasuryShareBps", "type": "uint16" }, { "name": "exitFeeBps", "type": "uint16" }, { "name": "reserveAssets", "type": "address[]" }] }], "outputs": [{ "name": "progress", "type": "tuple", "components": [{ "name": "launchId", "type": "bytes32" }, { "name": "planHash", "type": "bytes32" }, { "name": "creator", "type": "address" }, { "name": "nonce", "type": "uint256" }, { "name": "mode", "type": "uint8" }, { "name": "phase", "type": "uint8" }, { "name": "token", "type": "address" }, { "name": "feeHub", "type": "address" }, { "name": "rewards", "type": "address" }, { "name": "preparedMarkets", "type": "uint32" }, { "name": "marketCount", "type": "uint32" }, { "name": "buyCount", "type": "uint32" }, { "name": "positionCount", "type": "uint32" }, { "name": "deadline", "type": "uint256" }] }], "stateMutability": "payable" },
7
+ { "type": "function", "name": "cancelLaunch", "inputs": [{ "name": "plan", "type": "tuple", "components": [{ "name": "chainId", "type": "uint256" }, { "name": "orchestrator", "type": "address" }, { "name": "creator", "type": "address" }, { "name": "nonce", "type": "uint256" }, { "name": "token", "type": "tuple", "components": [{ "name": "kind", "type": "uint8" }, { "name": "rewardMode", "type": "uint8" }, { "name": "name", "type": "string" }, { "name": "symbol", "type": "string" }, { "name": "supply", "type": "uint256" }, { "name": "nftUnit", "type": "uint256" }, { "name": "metadataURI", "type": "string" }, { "name": "salt", "type": "bytes32" }, { "name": "inventoryRecipient", "type": "address" }, { "name": "burnOnCancel", "type": "bool" }] }, { "name": "funding", "type": "tuple[]", "components": [{ "name": "asset", "type": "address" }, { "name": "amount", "type": "uint256" }, { "name": "kind", "type": "uint8" }, { "name": "inputAsset", "type": "address" }, { "name": "inputAmount", "type": "uint256" }, { "name": "target", "type": "address" }, { "name": "data", "type": "bytes" }] }, { "name": "feeAssets", "type": "tuple[]", "components": [{ "name": "asset", "type": "address" }, { "name": "ownerBps", "type": "uint16" }, { "name": "rewardsBps", "type": "uint16" }, { "name": "burnBps", "type": "uint16" }] }, { "name": "markets", "type": "tuple[]", "components": [{ "name": "adapterId", "type": "bytes32" }, { "name": "profileId", "type": "bytes32" }, { "name": "quoteAsset", "type": "address" }, { "name": "tokenBudget", "type": "uint256" }, { "name": "configVersion", "type": "uint32" }, { "name": "config", "type": "bytes" }] }, { "name": "buys", "type": "tuple[]", "components": [{ "name": "marketIndex", "type": "uint32" }, { "name": "quoteAmountIn", "type": "uint256" }, { "name": "minTokenOut", "type": "uint256" }, { "name": "recipient", "type": "address" }, { "name": "sqrtPriceLimitX96", "type": "uint160" }] }, { "name": "deadline", "type": "uint256" }, { "name": "executorFeeBps", "type": "uint16" }] }], "outputs": [], "stateMutability": "nonpayable" },
8
+ { "type": "function", "name": "feeOwnerRegistry", "inputs": [], "outputs": [{ "name": "", "type": "address" }], "stateMutability": "view" },
9
+ { "type": "function", "name": "handoffFeeOwnership", "inputs": [{ "name": "token", "type": "address" }, { "name": "adapter", "type": "address" }], "outputs": [], "stateMutability": "nonpayable" },
10
+ { "type": "function", "name": "launchAtomic", "inputs": [{ "name": "plan", "type": "tuple", "components": [{ "name": "chainId", "type": "uint256" }, { "name": "orchestrator", "type": "address" }, { "name": "creator", "type": "address" }, { "name": "nonce", "type": "uint256" }, { "name": "token", "type": "tuple", "components": [{ "name": "kind", "type": "uint8" }, { "name": "rewardMode", "type": "uint8" }, { "name": "name", "type": "string" }, { "name": "symbol", "type": "string" }, { "name": "supply", "type": "uint256" }, { "name": "nftUnit", "type": "uint256" }, { "name": "metadataURI", "type": "string" }, { "name": "salt", "type": "bytes32" }, { "name": "inventoryRecipient", "type": "address" }, { "name": "burnOnCancel", "type": "bool" }] }, { "name": "funding", "type": "tuple[]", "components": [{ "name": "asset", "type": "address" }, { "name": "amount", "type": "uint256" }, { "name": "kind", "type": "uint8" }, { "name": "inputAsset", "type": "address" }, { "name": "inputAmount", "type": "uint256" }, { "name": "target", "type": "address" }, { "name": "data", "type": "bytes" }] }, { "name": "feeAssets", "type": "tuple[]", "components": [{ "name": "asset", "type": "address" }, { "name": "ownerBps", "type": "uint16" }, { "name": "rewardsBps", "type": "uint16" }, { "name": "burnBps", "type": "uint16" }] }, { "name": "markets", "type": "tuple[]", "components": [{ "name": "adapterId", "type": "bytes32" }, { "name": "profileId", "type": "bytes32" }, { "name": "quoteAsset", "type": "address" }, { "name": "tokenBudget", "type": "uint256" }, { "name": "configVersion", "type": "uint32" }, { "name": "config", "type": "bytes" }] }, { "name": "buys", "type": "tuple[]", "components": [{ "name": "marketIndex", "type": "uint32" }, { "name": "quoteAmountIn", "type": "uint256" }, { "name": "minTokenOut", "type": "uint256" }, { "name": "recipient", "type": "address" }, { "name": "sqrtPriceLimitX96", "type": "uint160" }] }, { "name": "deadline", "type": "uint256" }, { "name": "executorFeeBps", "type": "uint16" }] }, { "name": "config", "type": "tuple", "components": [{ "name": "treasuryShareBps", "type": "uint16" }, { "name": "exitFeeBps", "type": "uint16" }, { "name": "reserveAssets", "type": "address[]" }] }], "outputs": [{ "name": "receipt", "type": "tuple", "components": [{ "name": "launchId", "type": "bytes32" }, { "name": "planHash", "type": "bytes32" }, { "name": "token", "type": "address" }, { "name": "feeHub", "type": "address" }, { "name": "rewards", "type": "address" }, { "name": "marketCount", "type": "uint32" }, { "name": "positionCount", "type": "uint32" }, { "name": "quoteSpent", "type": "uint256[]" }, { "name": "tokenOut", "type": "uint256[]" }] }], "stateMutability": "payable" },
11
+ { "type": "function", "name": "launchConfigHash", "inputs": [{ "name": "launchId", "type": "bytes32" }], "outputs": [{ "name": "configHash", "type": "bytes32" }], "stateMutability": "view" },
12
+ { "type": "function", "name": "nonceOf", "inputs": [{ "name": "principal", "type": "address" }, { "name": "nonce", "type": "uint96" }], "outputs": [{ "name": "", "type": "uint256" }], "stateMutability": "pure" },
13
+ { "type": "function", "name": "orchestrator", "inputs": [], "outputs": [{ "name": "", "type": "address" }], "stateMutability": "view" },
14
+ { "type": "function", "name": "prepareMarkets", "inputs": [{ "name": "plan", "type": "tuple", "components": [{ "name": "chainId", "type": "uint256" }, { "name": "orchestrator", "type": "address" }, { "name": "creator", "type": "address" }, { "name": "nonce", "type": "uint256" }, { "name": "token", "type": "tuple", "components": [{ "name": "kind", "type": "uint8" }, { "name": "rewardMode", "type": "uint8" }, { "name": "name", "type": "string" }, { "name": "symbol", "type": "string" }, { "name": "supply", "type": "uint256" }, { "name": "nftUnit", "type": "uint256" }, { "name": "metadataURI", "type": "string" }, { "name": "salt", "type": "bytes32" }, { "name": "inventoryRecipient", "type": "address" }, { "name": "burnOnCancel", "type": "bool" }] }, { "name": "funding", "type": "tuple[]", "components": [{ "name": "asset", "type": "address" }, { "name": "amount", "type": "uint256" }, { "name": "kind", "type": "uint8" }, { "name": "inputAsset", "type": "address" }, { "name": "inputAmount", "type": "uint256" }, { "name": "target", "type": "address" }, { "name": "data", "type": "bytes" }] }, { "name": "feeAssets", "type": "tuple[]", "components": [{ "name": "asset", "type": "address" }, { "name": "ownerBps", "type": "uint16" }, { "name": "rewardsBps", "type": "uint16" }, { "name": "burnBps", "type": "uint16" }] }, { "name": "markets", "type": "tuple[]", "components": [{ "name": "adapterId", "type": "bytes32" }, { "name": "profileId", "type": "bytes32" }, { "name": "quoteAsset", "type": "address" }, { "name": "tokenBudget", "type": "uint256" }, { "name": "configVersion", "type": "uint32" }, { "name": "config", "type": "bytes" }] }, { "name": "buys", "type": "tuple[]", "components": [{ "name": "marketIndex", "type": "uint32" }, { "name": "quoteAmountIn", "type": "uint256" }, { "name": "minTokenOut", "type": "uint256" }, { "name": "recipient", "type": "address" }, { "name": "sqrtPriceLimitX96", "type": "uint160" }] }, { "name": "deadline", "type": "uint256" }, { "name": "executorFeeBps", "type": "uint16" }] }, { "name": "firstMarket", "type": "uint32" }, { "name": "count", "type": "uint32" }], "outputs": [], "stateMutability": "nonpayable" },
15
+ { "type": "function", "name": "principalOf", "inputs": [{ "name": "launchId", "type": "bytes32" }], "outputs": [{ "name": "principal", "type": "address" }], "stateMutability": "view" },
16
+ { "type": "function", "name": "treasuryFactory", "inputs": [], "outputs": [{ "name": "", "type": "address" }], "stateMutability": "view" },
17
+ { "type": "event", "name": "LaunchConfigBound", "inputs": [{ "name": "launchId", "type": "bytes32", "indexed": true }, { "name": "planHash", "type": "bytes32", "indexed": false }, { "name": "configHash", "type": "bytes32", "indexed": false }], "anonymous": false },
18
+ { "type": "error", "name": "InexactTransfer", "inputs": [] },
19
+ { "type": "error", "name": "InvalidConfiguration", "inputs": [] },
20
+ { "type": "error", "name": "InvalidNonce", "inputs": [] },
21
+ { "type": "error", "name": "InvalidPlan", "inputs": [] },
22
+ { "type": "error", "name": "PlanMismatch", "inputs": [] },
23
+ { "type": "error", "name": "Reentrancy", "inputs": [] },
24
+ { "type": "error", "name": "TooManyReserves", "inputs": [] },
25
+ { "type": "error", "name": "Unauthorized", "inputs": [] },
26
+ ];
27
+ export const ufgTreasuryFactoryV1Abi = [
28
+ { "type": "constructor", "inputs": [{ "name": "hubFactory_", "type": "address" }, { "name": "approvedProxy_", "type": "address" }, { "name": "collectorDeployer_", "type": "address" }, { "name": "splitter_", "type": "address" }, { "name": "platformShareBps_", "type": "uint16" }, { "name": "ratePerSecond_", "type": "uint256" }, { "name": "upstreamFactory_", "type": "address" }, { "name": "upstreamFactoryCodeHash_", "type": "bytes32" }], "stateMutability": "nonpayable" },
29
+ { "type": "function", "name": "MAX_INIT_CODE_SIZE", "inputs": [], "outputs": [{ "name": "", "type": "uint256" }], "stateMutability": "view" },
30
+ { "type": "function", "name": "MAX_PLATFORM_SHARE_BPS", "inputs": [], "outputs": [{ "name": "", "type": "uint16" }], "stateMutability": "view" },
31
+ { "type": "function", "name": "MAX_RUNTIME_SIZE", "inputs": [], "outputs": [{ "name": "", "type": "uint256" }], "stateMutability": "view" },
32
+ { "type": "function", "name": "approvedProxy", "inputs": [], "outputs": [{ "name": "", "type": "address" }], "stateMutability": "view" },
33
+ { "type": "function", "name": "approvedProxyCodeHash", "inputs": [], "outputs": [{ "name": "", "type": "bytes32" }], "stateMutability": "view" },
34
+ { "type": "function", "name": "collectorDeployer", "inputs": [], "outputs": [{ "name": "", "type": "address" }], "stateMutability": "view" },
35
+ { "type": "function", "name": "configHash", "inputs": [{ "name": "token", "type": "address" }], "outputs": [{ "name": "hash", "type": "bytes32" }], "stateMutability": "view" },
36
+ { "type": "function", "name": "decodeLaunchConfig", "inputs": [{ "name": "encoded", "type": "bytes" }, { "name": "canonicalPrefix", "type": "bytes" }], "outputs": [{ "name": "", "type": "tuple", "components": [{ "name": "treasuryShareBps", "type": "uint16" }, { "name": "exitFeeBps", "type": "uint16" }, { "name": "reserveAssets", "type": "address[]" }] }], "stateMutability": "pure" },
37
+ { "type": "function", "name": "deployedCodeHash", "inputs": [{ "name": "deployed", "type": "address" }], "outputs": [{ "name": "hash", "type": "bytes32" }], "stateMutability": "view" },
38
+ { "type": "function", "name": "feeOwnerRegistry", "inputs": [], "outputs": [{ "name": "", "type": "address" }], "stateMutability": "view" },
39
+ { "type": "function", "name": "fundingAdapterOf", "inputs": [{ "name": "token", "type": "address" }], "outputs": [{ "name": "adapter", "type": "address" }], "stateMutability": "view" },
40
+ { "type": "function", "name": "getOrCreate", "inputs": [{ "name": "token", "type": "address" }, { "name": "hub", "type": "address" }, { "name": "config", "type": "tuple", "components": [{ "name": "treasuryShareBps", "type": "uint16" }, { "name": "exitFeeBps", "type": "uint16" }, { "name": "reserveAssets", "type": "address[]" }] }, { "name": "feeMode", "type": "uint8" }, { "name": "lpFeePips", "type": "uint24" }], "outputs": [{ "name": "adapter", "type": "address" }, { "name": "treasury", "type": "address" }], "stateMutability": "nonpayable" },
41
+ { "type": "function", "name": "hubFactory", "inputs": [], "outputs": [{ "name": "", "type": "address" }], "stateMutability": "view" },
42
+ { "type": "function", "name": "platformShareBps", "inputs": [], "outputs": [{ "name": "", "type": "uint16" }], "stateMutability": "view" },
43
+ { "type": "function", "name": "ratePerSecond", "inputs": [], "outputs": [{ "name": "", "type": "uint256" }], "stateMutability": "view" },
44
+ { "type": "function", "name": "splitter", "inputs": [], "outputs": [{ "name": "", "type": "address" }], "stateMutability": "view" },
45
+ { "type": "function", "name": "treasuryOf", "inputs": [{ "name": "token", "type": "address" }], "outputs": [{ "name": "treasury", "type": "address" }], "stateMutability": "view" },
46
+ { "type": "function", "name": "upstreamFactory", "inputs": [], "outputs": [{ "name": "", "type": "address" }], "stateMutability": "view" },
47
+ { "type": "function", "name": "upstreamFactoryCodeHash", "inputs": [], "outputs": [{ "name": "", "type": "bytes32" }], "stateMutability": "view" },
48
+ { "type": "function", "name": "validateMarketLaunchConfig", "inputs": [{ "name": "encoded", "type": "bytes" }, { "name": "canonicalPrefix", "type": "bytes" }, { "name": "token", "type": "address" }, { "name": "quote", "type": "address" }], "outputs": [{ "name": "launch", "type": "tuple", "components": [{ "name": "treasuryShareBps", "type": "uint16" }, { "name": "exitFeeBps", "type": "uint16" }, { "name": "reserveAssets", "type": "address[]" }] }], "stateMutability": "view" },
49
+ { "type": "event", "name": "TreasuryCreated", "inputs": [{ "name": "token", "type": "address", "indexed": true }, { "name": "hub", "type": "address", "indexed": true }, { "name": "treasury", "type": "address", "indexed": true }, { "name": "fundingAdapter", "type": "address", "indexed": false }, { "name": "configHash", "type": "bytes32", "indexed": false }], "anonymous": false },
50
+ { "type": "error", "name": "DeploymentFailed", "inputs": [] },
51
+ { "type": "error", "name": "InconsistentConfiguration", "inputs": [] },
52
+ { "type": "error", "name": "InitCodeTooLarge", "inputs": [] },
53
+ { "type": "error", "name": "InvalidConfiguration", "inputs": [] },
54
+ { "type": "error", "name": "InvalidHub", "inputs": [] },
55
+ { "type": "error", "name": "InvalidUFGConfiguration", "inputs": [] },
56
+ { "type": "error", "name": "Reentrancy", "inputs": [] },
57
+ { "type": "error", "name": "RuntimeCodeTooLarge", "inputs": [] },
58
+ { "type": "error", "name": "Unauthorized", "inputs": [] },
59
+ { "type": "error", "name": "UnlockedLaunch", "inputs": [] },
60
+ ];
61
+ export const ufgBlackMarketFactoryAbi = [
62
+ { "type": "constructor", "inputs": [{ "name": "tokenFactory_", "type": "address" }, { "name": "hubFactory_", "type": "address" }, { "name": "splitter_", "type": "address" }, { "name": "platformShareBps_", "type": "uint16" }, { "name": "ratePerSecond_", "type": "uint256" }], "stateMutability": "nonpayable" },
63
+ { "type": "function", "name": "ABYSS_HUB_FACTORY", "inputs": [], "outputs": [{ "name": "", "type": "address" }], "stateMutability": "view" },
64
+ { "type": "function", "name": "ABYSS_TOKEN_FACTORY", "inputs": [], "outputs": [{ "name": "", "type": "address" }], "stateMutability": "view" },
65
+ { "type": "function", "name": "MAX_EXIT_FEE_BPS", "inputs": [], "outputs": [{ "name": "", "type": "uint16" }], "stateMutability": "view" },
66
+ { "type": "function", "name": "MAX_PLATFORM_SHARE_BPS", "inputs": [], "outputs": [{ "name": "", "type": "uint16" }], "stateMutability": "view" },
67
+ { "type": "function", "name": "MAX_RATE_PER_SECOND", "inputs": [], "outputs": [{ "name": "", "type": "uint256" }], "stateMutability": "view" },
68
+ { "type": "function", "name": "PLATFORM_SHARE_BPS", "inputs": [], "outputs": [{ "name": "", "type": "uint16" }], "stateMutability": "view" },
69
+ { "type": "function", "name": "RATE_PER_SECOND", "inputs": [], "outputs": [{ "name": "", "type": "uint256" }], "stateMutability": "view" },
70
+ { "type": "function", "name": "SPLITTER", "inputs": [], "outputs": [{ "name": "", "type": "address" }], "stateMutability": "view" },
71
+ { "type": "function", "name": "deploy", "inputs": [{ "name": "token", "type": "address" }, { "name": "canonicalHub", "type": "address" }, { "name": "fundingAdapter", "type": "address" }, { "name": "rewardAssets", "type": "address[]" }, { "name": "exitFeeBps", "type": "uint16" }], "outputs": [{ "name": "treasury", "type": "address" }], "stateMutability": "nonpayable" },
72
+ { "type": "function", "name": "launchCount", "inputs": [], "outputs": [{ "name": "", "type": "uint256" }], "stateMutability": "view" },
73
+ { "type": "function", "name": "predict", "inputs": [{ "name": "token", "type": "address" }, { "name": "canonicalHub", "type": "address" }, { "name": "fundingAdapter", "type": "address" }, { "name": "rewardAssets", "type": "address[]" }, { "name": "exitFeeBps", "type": "uint16" }], "outputs": [{ "name": "", "type": "address" }], "stateMutability": "view" },
74
+ { "type": "function", "name": "treasuries", "inputs": [{ "name": "", "type": "address" }], "outputs": [{ "name": "", "type": "address" }], "stateMutability": "view" },
75
+ { "type": "event", "name": "FundingAdapterBound", "inputs": [{ "name": "token", "type": "address", "indexed": true }, { "name": "canonicalHub", "type": "address", "indexed": true }, { "name": "fundingAdapter", "type": "address", "indexed": true }, { "name": "treasury", "type": "address", "indexed": false }], "anonymous": false },
76
+ { "type": "event", "name": "TreasuryDeployed", "inputs": [{ "name": "token", "type": "address", "indexed": true }, { "name": "hub", "type": "address", "indexed": true }, { "name": "treasury", "type": "address", "indexed": true }, { "name": "rewardAssets", "type": "address[]", "indexed": false }, { "name": "exitFeeBps", "type": "uint16", "indexed": false }], "anonymous": false },
77
+ { "type": "error", "name": "AlreadyDeployed", "inputs": [] },
78
+ { "type": "error", "name": "BadConfiguration", "inputs": [] },
79
+ { "type": "error", "name": "BadExitFee", "inputs": [] },
80
+ { "type": "error", "name": "BadFundingAdapter", "inputs": [] },
81
+ { "type": "error", "name": "BountyNotZero", "inputs": [] },
82
+ { "type": "error", "name": "HubTokenMismatch", "inputs": [] },
83
+ { "type": "error", "name": "NotTokenFactory", "inputs": [] },
84
+ { "type": "error", "name": "UnknownHub", "inputs": [] },
85
+ ];
86
+ export const ufgBlackMarketTreasuryAbi = [
87
+ { "type": "constructor", "inputs": [{ "name": "token", "type": "address" }, { "name": "hub", "type": "address" }, { "name": "assets_", "type": "address[]" }, { "name": "exitFeeBps", "type": "uint16" }, { "name": "splitter", "type": "address" }, { "name": "platformShareBps", "type": "uint16" }, { "name": "ratePerSecond", "type": "uint256" }], "stateMutability": "nonpayable" },
88
+ { "type": "function", "name": "DEAD", "inputs": [], "outputs": [{ "name": "", "type": "address" }], "stateMutability": "view" },
89
+ { "type": "function", "name": "EXIT_FEE_BPS", "inputs": [], "outputs": [{ "name": "", "type": "uint16" }], "stateMutability": "view" },
90
+ { "type": "function", "name": "HUB", "inputs": [], "outputs": [{ "name": "", "type": "address" }], "stateMutability": "view" },
91
+ { "type": "function", "name": "LIQUIDATION_LTV_BPS", "inputs": [], "outputs": [{ "name": "", "type": "uint16" }], "stateMutability": "view" },
92
+ { "type": "function", "name": "LTV_BPS", "inputs": [], "outputs": [{ "name": "", "type": "uint16" }], "stateMutability": "view" },
93
+ { "type": "function", "name": "MAX_ASSETS", "inputs": [], "outputs": [{ "name": "", "type": "uint256" }], "stateMutability": "view" },
94
+ { "type": "function", "name": "MAX_EXIT_FEE_BPS", "inputs": [], "outputs": [{ "name": "", "type": "uint16" }], "stateMutability": "view" },
95
+ { "type": "function", "name": "MAX_INDEX", "inputs": [], "outputs": [{ "name": "", "type": "uint256" }], "stateMutability": "view" },
96
+ { "type": "function", "name": "MAX_RATE_PER_SECOND", "inputs": [], "outputs": [{ "name": "", "type": "uint256" }], "stateMutability": "view" },
97
+ { "type": "function", "name": "MIN_DEBT", "inputs": [], "outputs": [{ "name": "", "type": "uint256" }], "stateMutability": "view" },
98
+ { "type": "function", "name": "PLATFORM_SHARE_BPS", "inputs": [], "outputs": [{ "name": "", "type": "uint16" }], "stateMutability": "view" },
99
+ { "type": "function", "name": "RATE_PER_SECOND", "inputs": [], "outputs": [{ "name": "", "type": "uint256" }], "stateMutability": "view" },
100
+ { "type": "function", "name": "SPLITTER", "inputs": [], "outputs": [{ "name": "", "type": "address" }], "stateMutability": "view" },
101
+ { "type": "function", "name": "TOKEN", "inputs": [], "outputs": [{ "name": "", "type": "address" }], "stateMutability": "view" },
102
+ { "type": "function", "name": "addCollateral", "inputs": [{ "name": "amount", "type": "uint256" }], "outputs": [], "stateMutability": "nonpayable" },
103
+ { "type": "function", "name": "annualRate", "inputs": [], "outputs": [{ "name": "", "type": "uint256" }], "stateMutability": "view" },
104
+ { "type": "function", "name": "assets", "inputs": [], "outputs": [{ "name": "", "type": "address[]" }], "stateMutability": "view" },
105
+ { "type": "function", "name": "backing", "inputs": [{ "name": "asset", "type": "address" }], "outputs": [{ "name": "", "type": "uint256" }], "stateMutability": "view" },
106
+ { "type": "function", "name": "borrow", "inputs": [{ "name": "amounts", "type": "uint256[]" }, { "name": "to", "type": "address" }], "outputs": [], "stateMutability": "nonpayable" },
107
+ { "type": "function", "name": "burnStray", "inputs": [], "outputs": [], "stateMutability": "nonpayable" },
108
+ { "type": "function", "name": "collect", "inputs": [], "outputs": [], "stateMutability": "nonpayable" },
109
+ { "type": "function", "name": "debtOf", "inputs": [{ "name": "account", "type": "address" }], "outputs": [{ "name": "out", "type": "uint256[]" }], "stateMutability": "view" },
110
+ { "type": "function", "name": "distributor", "inputs": [], "outputs": [{ "name": "", "type": "address" }], "stateMutability": "view" },
111
+ { "type": "function", "name": "effectiveSupply", "inputs": [], "outputs": [{ "name": "", "type": "uint256" }], "stateMutability": "view" },
112
+ { "type": "function", "name": "interestIndex", "inputs": [], "outputs": [{ "name": "", "type": "uint256" }], "stateMutability": "view" },
113
+ { "type": "function", "name": "isLiquidatable", "inputs": [{ "name": "account", "type": "address" }], "outputs": [{ "name": "", "type": "bool" }], "stateMutability": "view" },
114
+ { "type": "function", "name": "lastAccrual", "inputs": [], "outputs": [{ "name": "", "type": "uint256" }], "stateMutability": "view" },
115
+ { "type": "function", "name": "liquid", "inputs": [{ "name": "asset", "type": "address" }], "outputs": [{ "name": "", "type": "uint256" }], "stateMutability": "view" },
116
+ { "type": "function", "name": "liquidate", "inputs": [{ "name": "account", "type": "address" }], "outputs": [], "stateMutability": "nonpayable" },
117
+ { "type": "function", "name": "maxBorrow", "inputs": [{ "name": "account", "type": "address" }], "outputs": [{ "name": "out", "type": "uint256[]" }], "stateMutability": "view" },
118
+ { "type": "function", "name": "notifyRewardAmounts", "inputs": [{ "name": "amounts", "type": "uint256[]" }], "outputs": [], "stateMutability": "nonpayable" },
119
+ { "type": "function", "name": "originationCap", "inputs": [{ "name": "collateral", "type": "uint256" }], "outputs": [{ "name": "out", "type": "uint256[]" }], "stateMutability": "view" },
120
+ { "type": "function", "name": "owed", "inputs": [{ "name": "", "type": "address" }], "outputs": [{ "name": "", "type": "uint256" }], "stateMutability": "view" },
121
+ { "type": "function", "name": "positionOf", "inputs": [{ "name": "account", "type": "address" }], "outputs": [{ "name": "collateral", "type": "uint256" }, { "name": "principal", "type": "uint256[]" }, { "name": "debt", "type": "uint256[]" }], "stateMutability": "view" },
122
+ { "type": "function", "name": "principalOutstanding", "inputs": [{ "name": "", "type": "address" }], "outputs": [{ "name": "", "type": "uint256" }], "stateMutability": "view" },
123
+ { "type": "function", "name": "quoteRedeem", "inputs": [{ "name": "amount", "type": "uint256" }], "outputs": [{ "name": "out", "type": "uint256[]" }], "stateMutability": "view" },
124
+ { "type": "function", "name": "redeem", "inputs": [{ "name": "amount", "type": "uint256" }, { "name": "minOuts", "type": "uint256[]" }, { "name": "to", "type": "address" }], "outputs": [], "stateMutability": "nonpayable" },
125
+ { "type": "function", "name": "redeemSkipping", "inputs": [{ "name": "amount", "type": "uint256" }, { "name": "minOuts", "type": "uint256[]" }, { "name": "to", "type": "address" }, { "name": "skipMask", "type": "uint256" }], "outputs": [], "stateMutability": "nonpayable" },
126
+ { "type": "function", "name": "releasePlatformFees", "inputs": [], "outputs": [], "stateMutability": "nonpayable" },
127
+ { "type": "function", "name": "releasePlatformFeesFor", "inputs": [{ "name": "assets_", "type": "address[]" }], "outputs": [], "stateMutability": "nonpayable" },
128
+ { "type": "function", "name": "repay", "inputs": [{ "name": "account", "type": "address" }, { "name": "amounts", "type": "uint256[]" }], "outputs": [], "stateMutability": "nonpayable" },
129
+ { "type": "function", "name": "reserve", "inputs": [{ "name": "asset", "type": "address" }], "outputs": [{ "name": "", "type": "uint256" }], "stateMutability": "view" },
130
+ { "type": "function", "name": "rewardAssets", "inputs": [], "outputs": [{ "name": "", "type": "address[]" }], "stateMutability": "view" },
131
+ { "type": "function", "name": "rewardAvailableBalance", "inputs": [{ "name": "asset", "type": "address" }], "outputs": [{ "name": "", "type": "uint256" }], "stateMutability": "view" },
132
+ { "type": "function", "name": "totalCollateral", "inputs": [], "outputs": [{ "name": "", "type": "uint256" }], "stateMutability": "view" },
133
+ { "type": "function", "name": "withdrawCollateral", "inputs": [{ "name": "amount", "type": "uint256" }, { "name": "to", "type": "address" }], "outputs": [], "stateMutability": "nonpayable" },
134
+ { "type": "event", "name": "AssetsSkipped", "inputs": [{ "name": "caller", "type": "address", "indexed": true }, { "name": "skipMask", "type": "uint256", "indexed": false }], "anonymous": false },
135
+ { "type": "event", "name": "CollateralAdded", "inputs": [{ "name": "account", "type": "address", "indexed": true }, { "name": "amount", "type": "uint256", "indexed": false }], "anonymous": false },
136
+ { "type": "event", "name": "CollateralWithdrawn", "inputs": [{ "name": "account", "type": "address", "indexed": true }, { "name": "to", "type": "address", "indexed": true }, { "name": "amount", "type": "uint256", "indexed": false }], "anonymous": false },
137
+ { "type": "event", "name": "CollectFailed", "inputs": [{ "name": "reason", "type": "bytes", "indexed": false }], "anonymous": false },
138
+ { "type": "event", "name": "Funded", "inputs": [{ "name": "asset", "type": "address", "indexed": true }, { "name": "amount", "type": "uint256", "indexed": false }, { "name": "platformPart", "type": "uint256", "indexed": false }], "anonymous": false },
139
+ { "type": "event", "name": "PlatformFeesReleased", "inputs": [{ "name": "asset", "type": "address", "indexed": true }, { "name": "amount", "type": "uint256", "indexed": false }], "anonymous": false },
140
+ { "type": "event", "name": "Redeemed", "inputs": [{ "name": "caller", "type": "address", "indexed": true }, { "name": "to", "type": "address", "indexed": true }, { "name": "burned", "type": "uint256", "indexed": false }, { "name": "paid", "type": "uint256[]", "indexed": false }, { "name": "fee", "type": "uint256[]", "indexed": false }], "anonymous": false },
141
+ { "type": "event", "name": "ReserveLoanBorrowed", "inputs": [{ "name": "account", "type": "address", "indexed": true }, { "name": "to", "type": "address", "indexed": true }, { "name": "asset", "type": "address", "indexed": true }, { "name": "amount", "type": "uint256", "indexed": false }], "anonymous": false },
142
+ { "type": "event", "name": "ReserveLoanLiquidated", "inputs": [{ "name": "account", "type": "address", "indexed": true }, { "name": "caller", "type": "address", "indexed": true }, { "name": "burned", "type": "uint256", "indexed": false }, { "name": "assets", "type": "address[]", "indexed": false }, { "name": "principals", "type": "uint256[]", "indexed": false }], "anonymous": false },
143
+ { "type": "event", "name": "ReserveLoanRepaid", "inputs": [{ "name": "account", "type": "address", "indexed": true }, { "name": "payer", "type": "address", "indexed": true }, { "name": "asset", "type": "address", "indexed": true }, { "name": "principal", "type": "uint256", "indexed": false }, { "name": "interest", "type": "uint256", "indexed": false }], "anonymous": false },
144
+ { "type": "event", "name": "StrayBurned", "inputs": [{ "name": "amount", "type": "uint256", "indexed": false }], "anonymous": false },
145
+ { "type": "error", "name": "BadAmounts", "inputs": [] },
146
+ { "type": "error", "name": "BadAssets", "inputs": [] },
147
+ { "type": "error", "name": "BadExitFee", "inputs": [] },
148
+ { "type": "error", "name": "BadHub", "inputs": [] },
149
+ { "type": "error", "name": "BadRate", "inputs": [] },
150
+ { "type": "error", "name": "BadRecipient", "inputs": [] },
151
+ { "type": "error", "name": "BadShare", "inputs": [] },
152
+ { "type": "error", "name": "BadSkipMask", "inputs": [] },
153
+ { "type": "error", "name": "BadSplitter", "inputs": [] },
154
+ { "type": "error", "name": "BadToken", "inputs": [] },
155
+ { "type": "error", "name": "BelowMinDebt", "inputs": [] },
156
+ { "type": "error", "name": "ExceedsCap", "inputs": [] },
157
+ { "type": "error", "name": "IndexSaturated", "inputs": [] },
158
+ { "type": "error", "name": "InsufficientCollateral", "inputs": [] },
159
+ { "type": "error", "name": "InsufficientLiquidity", "inputs": [] },
160
+ { "type": "error", "name": "NoPosition", "inputs": [] },
161
+ { "type": "error", "name": "NotHub", "inputs": [] },
162
+ { "type": "error", "name": "NotLiquidatable", "inputs": [] },
163
+ { "type": "error", "name": "NothingToRepay", "inputs": [] },
164
+ { "type": "error", "name": "ReentrancyGuardReentrantCall", "inputs": [] },
165
+ { "type": "error", "name": "SafeERC20FailedOperation", "inputs": [{ "name": "token", "type": "address" }] },
166
+ { "type": "error", "name": "SlippageExceeded", "inputs": [] },
167
+ { "type": "error", "name": "ZeroAmount", "inputs": [] },
168
+ { "type": "error", "name": "ZeroPayout", "inputs": [] },
169
+ { "type": "error", "name": "ZeroSupply", "inputs": [] },
170
+ ];
171
+ //# sourceMappingURL=ufg-abi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ufg-abi.js","sourceRoot":"","sources":["../../src/lifecycle/ufg-abi.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ import { type Address, type Hex } from "viem";
2
+ import type { LaunchPlanV1, LifecycleFeeAssetPolicyV2 } from "./schema.js";
3
+ export declare const UFG_LAUNCH_PROXY_ADDRESS: Address;
4
+ export declare const UFG_TREASURY_FACTORY_ADDRESS: Address;
5
+ export declare const UFG_UPSTREAM_FACTORY_ADDRESS: Address;
6
+ export declare const UFG_ORCHESTRATOR_ADDRESS: Address;
7
+ export declare const UFG_FIXED_PROFILE_ID: Hex;
8
+ export declare const UFG_DYNAMIC_PROFILE_ID: Hex;
9
+ export declare const UFG_FIXED_ADAPTER_ID: Hex;
10
+ export declare const UFG_DYNAMIC_ADAPTER_ID: Hex;
11
+ export declare function isUfgProfile(profileId: Hex): boolean;
12
+ export type UfgLaunchConfig = {
13
+ treasuryShareBps: number;
14
+ exitFeeBps: number;
15
+ reserveAssets: readonly Address[];
16
+ };
17
+ export declare const ufgLaunchConfigComponents: readonly [{
18
+ readonly name: "treasuryShareBps";
19
+ readonly type: "uint16";
20
+ }, {
21
+ readonly name: "exitFeeBps";
22
+ readonly type: "uint16";
23
+ }, {
24
+ readonly name: "reserveAssets";
25
+ readonly type: "address[]";
26
+ }];
27
+ /** The proxy has seven reserve slots; its eighth fee asset is the launched token. */
28
+ export declare function validateUfgLaunchConfig(config: UfgLaunchConfig): void;
29
+ /** abi.encode(UFGLaunchConfigV1): one dynamic tuple, including its leading 0x20 offset. */
30
+ export declare function encodeUfgLaunchConfig(config: UfgLaunchConfig): Hex;
31
+ export declare function decodeUfgLaunchConfig(encoded: Hex): UfgLaunchConfig;
32
+ export declare function hashUfgLaunchConfig(config: UfgLaunchConfig): Hex;
33
+ export declare function ufgLaunchNonce(principal: Address, nonce: bigint): bigint;
34
+ /** Internal routing guard, also used by canonical progress and receipt verification. */
35
+ export declare function assertUfgLaunchAccount(plan: LaunchPlanV1, account: Address): void;
36
+ export declare function ufgPlanPrincipal(plan: LaunchPlanV1): Address;
37
+ export declare function buildUfgFeeAssetPolicies(token: Address, reserveAssets: readonly Address[]): LifecycleFeeAssetPolicyV2[];
38
+ //# sourceMappingURL=ufg-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ufg-config.d.ts","sourceRoot":"","sources":["../../src/lifecycle/ufg-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmE,KAAK,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,MAAM,CAAC;AAC/G,OAAO,KAAK,EAAE,YAAY,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAG3E,eAAO,MAAM,wBAAwB,EAAE,OAAsD,CAAC;AAC9F,eAAO,MAAM,4BAA4B,EAAE,OAAsD,CAAC;AAClG,eAAO,MAAM,4BAA4B,EAAE,OAAsD,CAAC;AAClG,eAAO,MAAM,wBAAwB,EAAE,OAAsD,CAAC;AAC9F,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;AAEhH,wBAAgB,YAAY,CAAC,SAAS,EAAE,GAAG,GAAG,OAAO,CAGpD;AAED,MAAM,MAAM,eAAe,GAAG;IAAE,gBAAgB,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,SAAS,OAAO,EAAE,CAAA;CAAE,CAAC;AAClH,eAAO,MAAM,yBAAyB;;;;;;;;;EAG5B,CAAC;AAEX,qFAAqF;AACrF,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI,CAUrE;AAED,2FAA2F;AAC3F,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,eAAe,GAAG,GAAG,CAGlE;AACD,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,GAAG,GAAG,eAAe,CAInE;AACD,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,eAAe,GAAG,GAAG,CAEhE;AACD,wBAAgB,cAAc,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAIxE;AAED,wFAAwF;AACxF,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAIjF;AACD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAK5D;AACD,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,SAAS,OAAO,EAAE,GAAG,yBAAyB,EAAE,CAQvH"}
@@ -0,0 +1,75 @@
1
+ import { decodeAbiParameters, encodeAbiParameters, getAddress, keccak256 } from "viem";
2
+ import { LifecyclePlanningError } from "./types.js";
3
+ export const UFG_LAUNCH_PROXY_ADDRESS = "0xf6673d859DE03eB74A0b01696Edb97f941dFD0CA";
4
+ export const UFG_TREASURY_FACTORY_ADDRESS = "0x26Aa5D52134c8E6c4C01E9fb53A7568c0C64901F";
5
+ export const UFG_UPSTREAM_FACTORY_ADDRESS = "0xA170b5A58C111334A7237F2Ea2c428ec5022f68E";
6
+ export const UFG_ORCHESTRATOR_ADDRESS = "0x91560876033d568d25CDe98C78c33ff8FC43962c";
7
+ export const UFG_FIXED_PROFILE_ID = "0x5c6045af480814e469f3dba7c120d264047c9320b869c63a064536041a2dbae6";
8
+ export const UFG_DYNAMIC_PROFILE_ID = "0x03de8d5e38f2957d80ecb9f2e59d555601ff091dfb17bce84178956a2e8d9b41";
9
+ export const UFG_FIXED_ADAPTER_ID = "0x073a4d46af70a3d4f69641e4f9dcdc9d8c279cd443daff960bbdf65a3b5fc758";
10
+ export const UFG_DYNAMIC_ADAPTER_ID = "0xc0906e17625b48240a87a3afc6ee921b653bdacd72906a16b359d0776d938518";
11
+ export function isUfgProfile(profileId) {
12
+ const id = profileId.toLowerCase();
13
+ return id === UFG_FIXED_PROFILE_ID || id === UFG_DYNAMIC_PROFILE_ID;
14
+ }
15
+ export const ufgLaunchConfigComponents = [
16
+ { name: "treasuryShareBps", type: "uint16" }, { name: "exitFeeBps", type: "uint16" },
17
+ { name: "reserveAssets", type: "address[]" },
18
+ ];
19
+ /** The proxy has seven reserve slots; its eighth fee asset is the launched token. */
20
+ export function validateUfgLaunchConfig(config) {
21
+ if (config.treasuryShareBps !== 10000 || !Number.isInteger(config.exitFeeBps) || config.exitFeeBps < 0 || config.exitFeeBps > 2000 || config.reserveAssets.length < 1 || config.reserveAssets.length > 7) {
22
+ throw new LifecyclePlanningError("INVALID_UFG_CONFIG", "UFG requires 10000 treasury bps, exit fee 0..2000 bps and one to seven reserves");
23
+ }
24
+ let previous = 0n;
25
+ for (const asset of config.reserveAssets) {
26
+ getAddress(asset);
27
+ if (BigInt(asset) <= previous)
28
+ throw new LifecyclePlanningError("INVALID_UFG_CONFIG", "UFG reserves must be nonzero, unique and strictly ascending");
29
+ previous = BigInt(asset);
30
+ }
31
+ }
32
+ /** abi.encode(UFGLaunchConfigV1): one dynamic tuple, including its leading 0x20 offset. */
33
+ export function encodeUfgLaunchConfig(config) {
34
+ validateUfgLaunchConfig(config);
35
+ return encodeAbiParameters([{ type: "tuple", components: ufgLaunchConfigComponents }], [config]);
36
+ }
37
+ export function decodeUfgLaunchConfig(encoded) {
38
+ const config = decodeAbiParameters([{ type: "tuple", components: ufgLaunchConfigComponents }], encoded)[0];
39
+ if (encodeUfgLaunchConfig(config).toLowerCase() !== encoded.toLowerCase())
40
+ throw new LifecyclePlanningError("INVALID_UFG_CONFIG", "UFG launch config must use canonical tuple encoding with no extra bytes");
41
+ return config;
42
+ }
43
+ export function hashUfgLaunchConfig(config) {
44
+ return keccak256(encodeUfgLaunchConfig(config));
45
+ }
46
+ export function ufgLaunchNonce(principal, nonce) {
47
+ getAddress(principal);
48
+ if (BigInt(principal) === 0n || nonce < 0n || nonce >= 1n << 96n)
49
+ throw new LifecyclePlanningError("INVALID_UFG_NONCE", "UFG requires a nonzero principal and a uint96 nonce");
50
+ return BigInt(principal) << 96n | nonce;
51
+ }
52
+ /** Internal routing guard, also used by canonical progress and receipt verification. */
53
+ export function assertUfgLaunchAccount(plan, account) {
54
+ if (plan.chainId !== 4663n || plan.orchestrator.toLowerCase() !== UFG_ORCHESTRATOR_ADDRESS.toLowerCase() || plan.creator.toLowerCase() !== UFG_LAUNCH_PROXY_ADDRESS.toLowerCase() || plan.nonce < 0n || plan.nonce >= 1n << 256n || plan.nonce >> 96n !== BigInt(account) || BigInt(account) === 0n) {
55
+ throw new LifecyclePlanningError("INVALID_UFG_PLAN", "UFG plans require the pinned Robinhood core/proxy and the sender's principal-namespaced nonce");
56
+ }
57
+ }
58
+ export function ufgPlanPrincipal(plan) {
59
+ if (plan.nonce < 0n || plan.nonce >= 1n << 256n)
60
+ throw new LifecyclePlanningError("INVALID_UFG_PLAN", "UFG nonce must fit uint256");
61
+ const principal = getAddress(`0x${(plan.nonce >> 96n).toString(16).padStart(40, "0")}`);
62
+ assertUfgLaunchAccount(plan, principal);
63
+ return principal;
64
+ }
65
+ export function buildUfgFeeAssetPolicies(token, reserveAssets) {
66
+ validateUfgLaunchConfig({ treasuryShareBps: 10000, exitFeeBps: 0, reserveAssets });
67
+ getAddress(token);
68
+ if (BigInt(token) === 0n || reserveAssets.some((asset) => asset.toLowerCase() === token.toLowerCase()))
69
+ throw new LifecyclePlanningError("INVALID_UFG_CONFIG", "The launched token must be nonzero and distinct from every reserve");
70
+ return [
71
+ { asset: token, ownerBps: 0, rewardsBps: 0, burnBps: 10000 },
72
+ ...reserveAssets.map((asset) => ({ asset, ownerBps: 10000, rewardsBps: 0, burnBps: 0 })),
73
+ ].sort((a, b) => BigInt(a.asset) < BigInt(b.asset) ? -1 : 1);
74
+ }
75
+ //# sourceMappingURL=ufg-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ufg-config.js","sourceRoot":"","sources":["../../src/lifecycle/ufg-config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import { type Address } from "viem";
2
+ import { type LaunchPlanV1 } from "./schema.js";
3
+ import { type BuildLaunchTransactionsOptions, type LifecycleRpcClient, type LifecycleTransaction } from "./types.js";
4
+ import { type UfgLaunchConfig } from "./ufg-config.js";
5
+ export { UFG_LAUNCH_PROXY_ADDRESS, UFG_TREASURY_FACTORY_ADDRESS, UFG_UPSTREAM_FACTORY_ADDRESS, UFG_ORCHESTRATOR_ADDRESS, UFG_FIXED_PROFILE_ID, UFG_DYNAMIC_PROFILE_ID, UFG_FIXED_ADAPTER_ID, UFG_DYNAMIC_ADAPTER_ID, isUfgProfile, ufgLaunchConfigComponents, encodeUfgLaunchConfig, decodeUfgLaunchConfig, hashUfgLaunchConfig, validateUfgLaunchConfig, ufgLaunchNonce, buildUfgFeeAssetPolicies, type UfgLaunchConfig } from "./ufg-config.js";
6
+ /** Offline proxy-specific admission. Live token/reserve code, registry and transfer checks still require simulation. */
7
+ export declare function validateUfgLaunchPlan(plan: LaunchPlanV1, config: UfgLaunchConfig, predictedToken: Address): void;
8
+ export type BuildUfgLaunchTransactionsOptions = BuildLaunchTransactionsOptions & {
9
+ config: UfgLaunchConfig;
10
+ };
11
+ /** Pure unsigned proxy commands; account is the principal encoded in plan.nonce. */
12
+ export declare function buildUfgLaunchTransactions(options: BuildUfgLaunchTransactionsOptions): LifecycleTransaction[];
13
+ export declare function buildUfgCancelTransaction({ plan, preparedMarkets }: {
14
+ plan: LaunchPlanV1;
15
+ preparedMarkets?: number;
16
+ }): LifecycleTransaction;
17
+ /** Exact summed proxy pulls, not escrow allowances. Current allowance/reset discovery belongs to planning. */
18
+ export declare function buildUfgApprovals(plan: LaunchPlanV1): LifecycleTransaction[];
19
+ /** Read-only upstream treasury lookup. No treasury is represented by undefined, not the zero address. */
20
+ export declare function readUfgTreasury(client: LifecycleRpcClient, token: Address): Promise<Address | undefined>;
21
+ //# sourceMappingURL=ufg.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ufg.d.ts","sourceRoot":"","sources":["../../src/lifecycle/ufg.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiF,KAAK,OAAO,EAAE,MAAM,MAAM,CAAC;AAMnH,OAAO,EAAgF,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAC9H,OAAO,EAA0B,KAAK,8BAA8B,EAAE,KAAK,kBAAkB,EAAE,KAAK,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAC7I,OAAO,EAAoO,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAEzR,OAAO,EAAE,wBAAwB,EAAE,4BAA4B,EAAE,4BAA4B,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,YAAY,EAAE,yBAAyB,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,cAAc,EAAE,wBAAwB,EAAE,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElb,wHAAwH;AACxH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,eAAe,EAAE,cAAc,EAAE,OAAO,GAAG,IAAI,CA8BhH;AAED,MAAM,MAAM,iCAAiC,GAAG,8BAA8B,GAAG;IAAE,MAAM,EAAE,eAAe,CAAA;CAAE,CAAC;AAC7G,oFAAoF;AACpF,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,iCAAiC,GAAG,oBAAoB,EAAE,CAS7G;AACD,wBAAgB,yBAAyB,CAAC,EAAE,IAAI,EAAE,eAAmB,EAAE,EAAE;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,eAAe,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,oBAAoB,CAG/I;AACD,8GAA8G;AAC9G,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,YAAY,GAAG,oBAAoB,EAAE,CAgB5E;AACD,yGAAyG;AACzG,wBAAsB,eAAe,CAAC,MAAM,EAAE,kBAAkB,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC,CAK9G"}