@guru-fund/sdk 0.1.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 (413) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +226 -0
  3. package/dist/GuruProtocol.d.ts +44 -0
  4. package/dist/GuruProtocol.js +75 -0
  5. package/dist/addresses.d.ts +40 -0
  6. package/dist/addresses.js +111 -0
  7. package/dist/constants.d.ts +22 -0
  8. package/dist/constants.js +23 -0
  9. package/dist/helpers/FundDataFetcher.d.ts +24 -0
  10. package/dist/helpers/FundDataFetcher.js +66 -0
  11. package/dist/helpers/ReceiptParser.d.ts +23 -0
  12. package/dist/helpers/ReceiptParser.js +59 -0
  13. package/dist/helpers/Token.d.ts +18 -0
  14. package/dist/helpers/Token.js +43 -0
  15. package/dist/helpers/compareAddresses.d.ts +1 -0
  16. package/dist/helpers/compareAddresses.js +15 -0
  17. package/dist/index.d.ts +17 -0
  18. package/dist/index.js +3 -0
  19. package/dist/quotes/quoteDeposit.d.ts +41 -0
  20. package/dist/quotes/quoteDeposit.js +186 -0
  21. package/dist/quotes/quoteHarvest.d.ts +34 -0
  22. package/dist/quotes/quoteHarvest.js +105 -0
  23. package/dist/quotes/quoteRebalance.d.ts +51 -0
  24. package/dist/quotes/quoteRebalance.js +201 -0
  25. package/dist/quotes/quoteTrade.d.ts +18 -0
  26. package/dist/quotes/quoteTrade.js +51 -0
  27. package/dist/quotes/quoteWithdrawal.d.ts +41 -0
  28. package/dist/quotes/quoteWithdrawal.js +113 -0
  29. package/dist/router/constants.d.ts +18 -0
  30. package/dist/router/constants.js +25 -0
  31. package/dist/router/finalizeRoute.d.ts +16 -0
  32. package/dist/router/finalizeRoute.js +29 -0
  33. package/dist/router/getFallbackRoutes.d.ts +10 -0
  34. package/dist/router/getFallbackRoutes.js +91 -0
  35. package/dist/router/getUniswapV4Route.d.ts +42 -0
  36. package/dist/router/getUniswapV4Route.js +324 -0
  37. package/dist/router/getVeloraRoute.d.ts +10 -0
  38. package/dist/router/getVeloraRoute.js +68 -0
  39. package/dist/router/helpers.d.ts +11 -0
  40. package/dist/router/helpers.js +30 -0
  41. package/dist/router/index.d.ts +22 -0
  42. package/dist/router/index.js +135 -0
  43. package/dist/router/pathCache.d.ts +16 -0
  44. package/dist/router/pathCache.js +116 -0
  45. package/dist/router/poolHelper.d.ts +126 -0
  46. package/dist/router/poolHelper.js +807 -0
  47. package/dist/router/quoteWethTrade.d.ts +14 -0
  48. package/dist/router/quoteWethTrade.js +125 -0
  49. package/dist/router/simulation.d.ts +43 -0
  50. package/dist/router/simulation.js +70 -0
  51. package/dist/router/types.d.ts +149 -0
  52. package/dist/router/types.js +1 -0
  53. package/dist/router/v4PoolDiscovery.d.ts +30 -0
  54. package/dist/router/v4PoolDiscovery.js +147 -0
  55. package/dist/router/velora.d.ts +42 -0
  56. package/dist/router/velora.js +279 -0
  57. package/dist/schemas/index.d.ts +6 -0
  58. package/dist/schemas/index.js +6 -0
  59. package/dist/schemas/primitives.d.ts +3 -0
  60. package/dist/schemas/primitives.js +9 -0
  61. package/dist/schemas/quoteDeposit.d.ts +23 -0
  62. package/dist/schemas/quoteDeposit.js +10 -0
  63. package/dist/schemas/quoteHarvest.d.ts +17 -0
  64. package/dist/schemas/quoteHarvest.js +8 -0
  65. package/dist/schemas/quoteRebalance.d.ts +29 -0
  66. package/dist/schemas/quoteRebalance.js +10 -0
  67. package/dist/schemas/quoteTrade.d.ts +20 -0
  68. package/dist/schemas/quoteTrade.js +9 -0
  69. package/dist/schemas/quoteWithdrawal.d.ts +23 -0
  70. package/dist/schemas/quoteWithdrawal.js +10 -0
  71. package/dist/txBuilders/buildDepositTx.d.ts +17 -0
  72. package/dist/txBuilders/buildDepositTx.js +18 -0
  73. package/dist/txBuilders/buildHarvestTx.d.ts +16 -0
  74. package/dist/txBuilders/buildHarvestTx.js +17 -0
  75. package/dist/txBuilders/buildTradeTx.d.ts +9 -0
  76. package/dist/txBuilders/buildTradeTx.js +9 -0
  77. package/dist/txBuilders/buildWithdrawTx.d.ts +16 -0
  78. package/dist/txBuilders/buildWithdrawTx.js +17 -0
  79. package/dist/txBuilders/index.d.ts +8 -0
  80. package/dist/txBuilders/index.js +4 -0
  81. package/dist/typechain/common.d.ts +50 -0
  82. package/dist/typechain/common.js +1 -0
  83. package/dist/typechain/factories/include/IPancakeQuoterV2__factory.d.ts +225 -0
  84. package/dist/typechain/factories/include/IPancakeQuoterV2__factory.js +295 -0
  85. package/dist/typechain/factories/include/ISwapRouter02__factory.d.ts +826 -0
  86. package/dist/typechain/factories/include/ISwapRouter02__factory.js +1073 -0
  87. package/dist/typechain/factories/include/index.d.ts +2 -0
  88. package/dist/typechain/factories/include/index.js +2 -0
  89. package/dist/typechain/factories/index.d.ts +2 -0
  90. package/dist/typechain/factories/index.js +2 -0
  91. package/dist/typechain/factories/out/Adapter__factory.d.ts +31 -0
  92. package/dist/typechain/factories/out/Adapter__factory.js +43 -0
  93. package/dist/typechain/factories/out/AerodromeV2Adapter__factory.d.ts +179 -0
  94. package/dist/typechain/factories/out/AerodromeV2Adapter__factory.js +237 -0
  95. package/dist/typechain/factories/out/AerodromeV3Adapter__factory.d.ts +162 -0
  96. package/dist/typechain/factories/out/AerodromeV3Adapter__factory.js +215 -0
  97. package/dist/typechain/factories/out/AssetManager.sol/LedgerAssetManager__factory.d.ts +1032 -0
  98. package/dist/typechain/factories/out/AssetManager.sol/LedgerAssetManager__factory.js +1357 -0
  99. package/dist/typechain/factories/out/AssetManager.sol/index.d.ts +1 -0
  100. package/dist/typechain/factories/out/AssetManager.sol/index.js +1 -0
  101. package/dist/typechain/factories/out/Bookkeeper.sol/LedgerBookkeeper__factory.d.ts +950 -0
  102. package/dist/typechain/factories/out/Bookkeeper.sol/LedgerBookkeeper__factory.js +1250 -0
  103. package/dist/typechain/factories/out/Bookkeeper.sol/index.d.ts +1 -0
  104. package/dist/typechain/factories/out/Bookkeeper.sol/index.js +1 -0
  105. package/dist/typechain/factories/out/Checkpoint.sol/CheckpointController__factory.d.ts +33 -0
  106. package/dist/typechain/factories/out/Checkpoint.sol/CheckpointController__factory.js +47 -0
  107. package/dist/typechain/factories/out/Checkpoint.sol/index.d.ts +1 -0
  108. package/dist/typechain/factories/out/Checkpoint.sol/index.js +1 -0
  109. package/dist/typechain/factories/out/Closure.sol/ClosureController__factory.d.ts +459 -0
  110. package/dist/typechain/factories/out/Closure.sol/ClosureController__factory.js +603 -0
  111. package/dist/typechain/factories/out/Closure.sol/index.d.ts +1 -0
  112. package/dist/typechain/factories/out/Closure.sol/index.js +1 -0
  113. package/dist/typechain/factories/out/ContextBuilder__factory.d.ts +671 -0
  114. package/dist/typechain/factories/out/ContextBuilder__factory.js +870 -0
  115. package/dist/typechain/factories/out/Control.sol/Controllable__factory.d.ts +107 -0
  116. package/dist/typechain/factories/out/Control.sol/Controllable__factory.js +141 -0
  117. package/dist/typechain/factories/out/Control.sol/Controller__factory.d.ts +21 -0
  118. package/dist/typechain/factories/out/Control.sol/Controller__factory.js +30 -0
  119. package/dist/typechain/factories/out/Control.sol/index.d.ts +2 -0
  120. package/dist/typechain/factories/out/Control.sol/index.js +2 -0
  121. package/dist/typechain/factories/out/Controller.sol/ClosureDelegate__factory.d.ts +57 -0
  122. package/dist/typechain/factories/out/Controller.sol/ClosureDelegate__factory.js +77 -0
  123. package/dist/typechain/factories/out/Controller.sol/CreationDelegate__factory.d.ts +58 -0
  124. package/dist/typechain/factories/out/Controller.sol/CreationDelegate__factory.js +77 -0
  125. package/dist/typechain/factories/out/Controller.sol/DepositDelegate__factory.d.ts +55 -0
  126. package/dist/typechain/factories/out/Controller.sol/DepositDelegate__factory.js +74 -0
  127. package/dist/typechain/factories/out/Controller.sol/FundController__factory.d.ts +703 -0
  128. package/dist/typechain/factories/out/Controller.sol/FundController__factory.js +911 -0
  129. package/dist/typechain/factories/out/Controller.sol/HarvestDelegate__factory.d.ts +234 -0
  130. package/dist/typechain/factories/out/Controller.sol/HarvestDelegate__factory.js +303 -0
  131. package/dist/typechain/factories/out/Controller.sol/TradeDelegate__factory.d.ts +61 -0
  132. package/dist/typechain/factories/out/Controller.sol/TradeDelegate__factory.js +81 -0
  133. package/dist/typechain/factories/out/Controller.sol/TransferDelegate__factory.d.ts +29 -0
  134. package/dist/typechain/factories/out/Controller.sol/TransferDelegate__factory.js +40 -0
  135. package/dist/typechain/factories/out/Controller.sol/WithdrawalDelegate__factory.d.ts +51 -0
  136. package/dist/typechain/factories/out/Controller.sol/WithdrawalDelegate__factory.js +69 -0
  137. package/dist/typechain/factories/out/Controller.sol/index.d.ts +8 -0
  138. package/dist/typechain/factories/out/Controller.sol/index.js +8 -0
  139. package/dist/typechain/factories/out/Cooldown.sol/LedgerCooldown__factory.d.ts +747 -0
  140. package/dist/typechain/factories/out/Cooldown.sol/LedgerCooldown__factory.js +982 -0
  141. package/dist/typechain/factories/out/Cooldown.sol/index.d.ts +1 -0
  142. package/dist/typechain/factories/out/Cooldown.sol/index.js +1 -0
  143. package/dist/typechain/factories/out/Creation.sol/CreationController__factory.d.ts +172 -0
  144. package/dist/typechain/factories/out/Creation.sol/CreationController__factory.js +225 -0
  145. package/dist/typechain/factories/out/Creation.sol/index.d.ts +1 -0
  146. package/dist/typechain/factories/out/Creation.sol/index.js +1 -0
  147. package/dist/typechain/factories/out/Deposit.sol/DepositController__factory.d.ts +162 -0
  148. package/dist/typechain/factories/out/Deposit.sol/DepositController__factory.js +223 -0
  149. package/dist/typechain/factories/out/Deposit.sol/index.d.ts +1 -0
  150. package/dist/typechain/factories/out/Deposit.sol/index.js +1 -0
  151. package/dist/typechain/factories/out/Error__factory.d.ts +318 -0
  152. package/dist/typechain/factories/out/Error__factory.js +423 -0
  153. package/dist/typechain/factories/out/Harvest.sol/HarvestController__factory.d.ts +401 -0
  154. package/dist/typechain/factories/out/Harvest.sol/HarvestController__factory.js +527 -0
  155. package/dist/typechain/factories/out/Harvest.sol/index.d.ts +1 -0
  156. package/dist/typechain/factories/out/Harvest.sol/index.js +1 -0
  157. package/dist/typechain/factories/out/IAerodromeRouter__factory.d.ts +85 -0
  158. package/dist/typechain/factories/out/IAerodromeRouter__factory.js +113 -0
  159. package/dist/typechain/factories/out/IAerodromeSwapRouter__factory.d.ts +89 -0
  160. package/dist/typechain/factories/out/IAerodromeSwapRouter__factory.js +119 -0
  161. package/dist/typechain/factories/out/IUniswapV4.sol/IPermit2__factory.d.ts +29 -0
  162. package/dist/typechain/factories/out/IUniswapV4.sol/IPermit2__factory.js +40 -0
  163. package/dist/typechain/factories/out/IUniswapV4.sol/IUniversalRouter__factory.d.ts +25 -0
  164. package/dist/typechain/factories/out/IUniswapV4.sol/IUniversalRouter__factory.js +35 -0
  165. package/dist/typechain/factories/out/IUniswapV4.sol/index.d.ts +2 -0
  166. package/dist/typechain/factories/out/IUniswapV4.sol/index.js +2 -0
  167. package/dist/typechain/factories/out/IV0Fund__factory.d.ts +129 -0
  168. package/dist/typechain/factories/out/IV0Fund__factory.js +173 -0
  169. package/dist/typechain/factories/out/IV3SwapRouter__factory.d.ts +38 -0
  170. package/dist/typechain/factories/out/IV3SwapRouter__factory.js +53 -0
  171. package/dist/typechain/factories/out/Initializer.sol/LedgerInitializer__factory.d.ts +655 -0
  172. package/dist/typechain/factories/out/Initializer.sol/LedgerInitializer__factory.js +859 -0
  173. package/dist/typechain/factories/out/Initializer.sol/VaultInitializer__factory.d.ts +141 -0
  174. package/dist/typechain/factories/out/Initializer.sol/VaultInitializer__factory.js +185 -0
  175. package/dist/typechain/factories/out/Initializer.sol/index.d.ts +2 -0
  176. package/dist/typechain/factories/out/Initializer.sol/index.js +2 -0
  177. package/dist/typechain/factories/out/Ledger.sol/FundLedger__factory.d.ts +1502 -0
  178. package/dist/typechain/factories/out/Ledger.sol/FundLedger__factory.js +1959 -0
  179. package/dist/typechain/factories/out/Ledger.sol/index.d.ts +1 -0
  180. package/dist/typechain/factories/out/Ledger.sol/index.js +1 -0
  181. package/dist/typechain/factories/out/LotusP2P__factory.d.ts +847 -0
  182. package/dist/typechain/factories/out/LotusP2P__factory.js +1095 -0
  183. package/dist/typechain/factories/out/MulticallStatic__factory.d.ts +29 -0
  184. package/dist/typechain/factories/out/MulticallStatic__factory.js +42 -0
  185. package/dist/typechain/factories/out/Operator.sol/VaultOperator__factory.d.ts +235 -0
  186. package/dist/typechain/factories/out/Operator.sol/VaultOperator__factory.js +308 -0
  187. package/dist/typechain/factories/out/Operator.sol/index.d.ts +1 -0
  188. package/dist/typechain/factories/out/Operator.sol/index.js +1 -0
  189. package/dist/typechain/factories/out/P2PAdapter__factory.d.ts +216 -0
  190. package/dist/typechain/factories/out/P2PAdapter__factory.js +287 -0
  191. package/dist/typechain/factories/out/ProtocolMigrationExtension__factory.d.ts +1084 -0
  192. package/dist/typechain/factories/out/ProtocolMigrationExtension__factory.js +1409 -0
  193. package/dist/typechain/factories/out/ProtocolProvider__factory.d.ts +21 -0
  194. package/dist/typechain/factories/out/ProtocolProvider__factory.js +30 -0
  195. package/dist/typechain/factories/out/Protocol__factory.d.ts +1095 -0
  196. package/dist/typechain/factories/out/Protocol__factory.js +1424 -0
  197. package/dist/typechain/factories/out/Registrar.sol/LedgerRegistrar__factory.d.ts +1375 -0
  198. package/dist/typechain/factories/out/Registrar.sol/LedgerRegistrar__factory.js +1791 -0
  199. package/dist/typechain/factories/out/Registrar.sol/index.d.ts +1 -0
  200. package/dist/typechain/factories/out/Registrar.sol/index.js +1 -0
  201. package/dist/typechain/factories/out/Settings.sol/SettingsController__factory.d.ts +143 -0
  202. package/dist/typechain/factories/out/Settings.sol/SettingsController__factory.js +188 -0
  203. package/dist/typechain/factories/out/Settings.sol/index.d.ts +1 -0
  204. package/dist/typechain/factories/out/Settings.sol/index.js +1 -0
  205. package/dist/typechain/factories/out/Shares.sol/ICheckpointController__factory.d.ts +21 -0
  206. package/dist/typechain/factories/out/Shares.sol/ICheckpointController__factory.js +31 -0
  207. package/dist/typechain/factories/out/Shares.sol/ITransferController__factory.d.ts +25 -0
  208. package/dist/typechain/factories/out/Shares.sol/ITransferController__factory.js +35 -0
  209. package/dist/typechain/factories/out/Shares.sol/LedgerShares__factory.d.ts +829 -0
  210. package/dist/typechain/factories/out/Shares.sol/LedgerShares__factory.js +1089 -0
  211. package/dist/typechain/factories/out/Shares.sol/index.d.ts +3 -0
  212. package/dist/typechain/factories/out/Shares.sol/index.js +3 -0
  213. package/dist/typechain/factories/out/SignatureVerifier__factory.d.ts +171 -0
  214. package/dist/typechain/factories/out/SignatureVerifier__factory.js +224 -0
  215. package/dist/typechain/factories/out/Storage.sol/LedgerStorage__factory.d.ts +527 -0
  216. package/dist/typechain/factories/out/Storage.sol/LedgerStorage__factory.js +695 -0
  217. package/dist/typechain/factories/out/Storage.sol/index.d.ts +1 -0
  218. package/dist/typechain/factories/out/Storage.sol/index.js +1 -0
  219. package/dist/typechain/factories/out/Trade.sol/TradeController__factory.d.ts +200 -0
  220. package/dist/typechain/factories/out/Trade.sol/TradeController__factory.js +262 -0
  221. package/dist/typechain/factories/out/Trade.sol/index.d.ts +1 -0
  222. package/dist/typechain/factories/out/Trade.sol/index.js +1 -0
  223. package/dist/typechain/factories/out/Transfer.sol/TransferController__factory.d.ts +100 -0
  224. package/dist/typechain/factories/out/Transfer.sol/TransferController__factory.js +141 -0
  225. package/dist/typechain/factories/out/Transfer.sol/index.d.ts +1 -0
  226. package/dist/typechain/factories/out/Transfer.sol/index.js +1 -0
  227. package/dist/typechain/factories/out/UniswapV2Adapter__factory.d.ts +162 -0
  228. package/dist/typechain/factories/out/UniswapV2Adapter__factory.js +215 -0
  229. package/dist/typechain/factories/out/UniswapV3Adapter__factory.d.ts +162 -0
  230. package/dist/typechain/factories/out/UniswapV3Adapter__factory.js +215 -0
  231. package/dist/typechain/factories/out/UniswapV3SwapRouter02Adapter__factory.d.ts +162 -0
  232. package/dist/typechain/factories/out/UniswapV3SwapRouter02Adapter__factory.js +215 -0
  233. package/dist/typechain/factories/out/UniswapV4Adapter__factory.d.ts +203 -0
  234. package/dist/typechain/factories/out/UniswapV4Adapter__factory.js +268 -0
  235. package/dist/typechain/factories/out/V0ToLotusMigrator__factory.d.ts +216 -0
  236. package/dist/typechain/factories/out/V0ToLotusMigrator__factory.js +284 -0
  237. package/dist/typechain/factories/out/Vault.sol/FundVault__factory.d.ts +258 -0
  238. package/dist/typechain/factories/out/Vault.sol/FundVault__factory.js +339 -0
  239. package/dist/typechain/factories/out/Vault.sol/index.d.ts +1 -0
  240. package/dist/typechain/factories/out/Vault.sol/index.js +1 -0
  241. package/dist/typechain/factories/out/Withdrawal.sol/WithdrawalController__factory.d.ts +285 -0
  242. package/dist/typechain/factories/out/Withdrawal.sol/WithdrawalController__factory.js +377 -0
  243. package/dist/typechain/factories/out/Withdrawal.sol/index.d.ts +1 -0
  244. package/dist/typechain/factories/out/Withdrawal.sol/index.js +1 -0
  245. package/dist/typechain/factories/out/index.d.ts +43 -0
  246. package/dist/typechain/factories/out/index.js +43 -0
  247. package/dist/typechain/include/IPancakeQuoterV2.d.ts +223 -0
  248. package/dist/typechain/include/IPancakeQuoterV2.js +1 -0
  249. package/dist/typechain/include/ISwapRouter02.d.ts +682 -0
  250. package/dist/typechain/include/ISwapRouter02.js +1 -0
  251. package/dist/typechain/include/index.d.ts +2 -0
  252. package/dist/typechain/include/index.js +1 -0
  253. package/dist/typechain/index.d.ts +119 -0
  254. package/dist/typechain/index.js +58 -0
  255. package/dist/typechain/out/Adapter.d.ts +29 -0
  256. package/dist/typechain/out/Adapter.js +1 -0
  257. package/dist/typechain/out/AerodromeV2Adapter.d.ts +106 -0
  258. package/dist/typechain/out/AerodromeV2Adapter.js +1 -0
  259. package/dist/typechain/out/AerodromeV3Adapter.d.ts +87 -0
  260. package/dist/typechain/out/AerodromeV3Adapter.js +1 -0
  261. package/dist/typechain/out/AssetManager.sol/LedgerAssetManager.d.ts +604 -0
  262. package/dist/typechain/out/AssetManager.sol/LedgerAssetManager.js +1 -0
  263. package/dist/typechain/out/AssetManager.sol/index.d.ts +1 -0
  264. package/dist/typechain/out/AssetManager.sol/index.js +1 -0
  265. package/dist/typechain/out/Bookkeeper.sol/LedgerBookkeeper.d.ts +548 -0
  266. package/dist/typechain/out/Bookkeeper.sol/LedgerBookkeeper.js +1 -0
  267. package/dist/typechain/out/Bookkeeper.sol/index.d.ts +1 -0
  268. package/dist/typechain/out/Bookkeeper.sol/index.js +1 -0
  269. package/dist/typechain/out/Checkpoint.sol/CheckpointController.d.ts +29 -0
  270. package/dist/typechain/out/Checkpoint.sol/CheckpointController.js +1 -0
  271. package/dist/typechain/out/Checkpoint.sol/index.d.ts +1 -0
  272. package/dist/typechain/out/Checkpoint.sol/index.js +1 -0
  273. package/dist/typechain/out/Closure.sol/ClosureController.d.ts +273 -0
  274. package/dist/typechain/out/Closure.sol/ClosureController.js +1 -0
  275. package/dist/typechain/out/Closure.sol/index.d.ts +1 -0
  276. package/dist/typechain/out/Closure.sol/index.js +1 -0
  277. package/dist/typechain/out/ContextBuilder.d.ts +403 -0
  278. package/dist/typechain/out/ContextBuilder.js +1 -0
  279. package/dist/typechain/out/Control.sol/Controllable.d.ts +97 -0
  280. package/dist/typechain/out/Control.sol/Controllable.js +1 -0
  281. package/dist/typechain/out/Control.sol/Controller.d.ts +25 -0
  282. package/dist/typechain/out/Control.sol/Controller.js +1 -0
  283. package/dist/typechain/out/Control.sol/index.d.ts +2 -0
  284. package/dist/typechain/out/Control.sol/index.js +1 -0
  285. package/dist/typechain/out/Controller.sol/ClosureDelegate.d.ts +61 -0
  286. package/dist/typechain/out/Controller.sol/ClosureDelegate.js +1 -0
  287. package/dist/typechain/out/Controller.sol/CreationDelegate.d.ts +61 -0
  288. package/dist/typechain/out/Controller.sol/CreationDelegate.js +1 -0
  289. package/dist/typechain/out/Controller.sol/DepositDelegate.d.ts +56 -0
  290. package/dist/typechain/out/Controller.sol/DepositDelegate.js +1 -0
  291. package/dist/typechain/out/Controller.sol/FundController.d.ts +464 -0
  292. package/dist/typechain/out/Controller.sol/FundController.js +1 -0
  293. package/dist/typechain/out/Controller.sol/HarvestDelegate.d.ts +163 -0
  294. package/dist/typechain/out/Controller.sol/HarvestDelegate.js +1 -0
  295. package/dist/typechain/out/Controller.sol/TradeDelegate.d.ts +67 -0
  296. package/dist/typechain/out/Controller.sol/TradeDelegate.js +1 -0
  297. package/dist/typechain/out/Controller.sol/TransferDelegate.d.ts +37 -0
  298. package/dist/typechain/out/Controller.sol/TransferDelegate.js +1 -0
  299. package/dist/typechain/out/Controller.sol/WithdrawalDelegate.d.ts +53 -0
  300. package/dist/typechain/out/Controller.sol/WithdrawalDelegate.js +1 -0
  301. package/dist/typechain/out/Controller.sol/index.d.ts +8 -0
  302. package/dist/typechain/out/Controller.sol/index.js +1 -0
  303. package/dist/typechain/out/Cooldown.sol/LedgerCooldown.d.ts +446 -0
  304. package/dist/typechain/out/Cooldown.sol/LedgerCooldown.js +1 -0
  305. package/dist/typechain/out/Cooldown.sol/index.d.ts +1 -0
  306. package/dist/typechain/out/Cooldown.sol/index.js +1 -0
  307. package/dist/typechain/out/Creation.sol/CreationController.d.ts +102 -0
  308. package/dist/typechain/out/Creation.sol/CreationController.js +1 -0
  309. package/dist/typechain/out/Creation.sol/index.d.ts +1 -0
  310. package/dist/typechain/out/Creation.sol/index.js +1 -0
  311. package/dist/typechain/out/Deposit.sol/DepositController.d.ts +68 -0
  312. package/dist/typechain/out/Deposit.sol/DepositController.js +1 -0
  313. package/dist/typechain/out/Deposit.sol/index.d.ts +1 -0
  314. package/dist/typechain/out/Deposit.sol/index.js +1 -0
  315. package/dist/typechain/out/Error.d.ts +20 -0
  316. package/dist/typechain/out/Error.js +1 -0
  317. package/dist/typechain/out/Harvest.sol/HarvestController.d.ts +241 -0
  318. package/dist/typechain/out/Harvest.sol/HarvestController.js +1 -0
  319. package/dist/typechain/out/Harvest.sol/index.d.ts +1 -0
  320. package/dist/typechain/out/Harvest.sol/index.js +1 -0
  321. package/dist/typechain/out/IAerodromeRouter.d.ts +80 -0
  322. package/dist/typechain/out/IAerodromeRouter.js +1 -0
  323. package/dist/typechain/out/IAerodromeSwapRouter.d.ts +96 -0
  324. package/dist/typechain/out/IAerodromeSwapRouter.js +1 -0
  325. package/dist/typechain/out/IUniswapV4.sol/IPermit2.d.ts +39 -0
  326. package/dist/typechain/out/IUniswapV4.sol/IPermit2.js +1 -0
  327. package/dist/typechain/out/IUniswapV4.sol/IUniversalRouter.d.ts +37 -0
  328. package/dist/typechain/out/IUniswapV4.sol/IUniversalRouter.js +1 -0
  329. package/dist/typechain/out/IUniswapV4.sol/index.d.ts +2 -0
  330. package/dist/typechain/out/IUniswapV4.sol/index.js +1 -0
  331. package/dist/typechain/out/IV0Fund.d.ts +69 -0
  332. package/dist/typechain/out/IV0Fund.js +1 -0
  333. package/dist/typechain/out/IV3SwapRouter.d.ts +52 -0
  334. package/dist/typechain/out/IV3SwapRouter.js +1 -0
  335. package/dist/typechain/out/Initializer.sol/LedgerInitializer.d.ts +379 -0
  336. package/dist/typechain/out/Initializer.sol/LedgerInitializer.js +1 -0
  337. package/dist/typechain/out/Initializer.sol/VaultInitializer.d.ts +129 -0
  338. package/dist/typechain/out/Initializer.sol/VaultInitializer.js +1 -0
  339. package/dist/typechain/out/Initializer.sol/index.d.ts +2 -0
  340. package/dist/typechain/out/Initializer.sol/index.js +1 -0
  341. package/dist/typechain/out/Ledger.sol/FundLedger.d.ts +926 -0
  342. package/dist/typechain/out/Ledger.sol/FundLedger.js +1 -0
  343. package/dist/typechain/out/Ledger.sol/index.d.ts +1 -0
  344. package/dist/typechain/out/Ledger.sol/index.js +1 -0
  345. package/dist/typechain/out/LotusP2P.d.ts +610 -0
  346. package/dist/typechain/out/LotusP2P.js +1 -0
  347. package/dist/typechain/out/MulticallStatic.d.ts +25 -0
  348. package/dist/typechain/out/MulticallStatic.js +1 -0
  349. package/dist/typechain/out/Operator.sol/VaultOperator.d.ts +197 -0
  350. package/dist/typechain/out/Operator.sol/VaultOperator.js +1 -0
  351. package/dist/typechain/out/Operator.sol/index.d.ts +1 -0
  352. package/dist/typechain/out/Operator.sol/index.js +1 -0
  353. package/dist/typechain/out/P2PAdapter.d.ts +100 -0
  354. package/dist/typechain/out/P2PAdapter.js +1 -0
  355. package/dist/typechain/out/Protocol.d.ts +815 -0
  356. package/dist/typechain/out/Protocol.js +1 -0
  357. package/dist/typechain/out/ProtocolMigrationExtension.d.ts +806 -0
  358. package/dist/typechain/out/ProtocolMigrationExtension.js +1 -0
  359. package/dist/typechain/out/ProtocolProvider.d.ts +25 -0
  360. package/dist/typechain/out/ProtocolProvider.js +1 -0
  361. package/dist/typechain/out/Registrar.sol/LedgerRegistrar.d.ts +866 -0
  362. package/dist/typechain/out/Registrar.sol/LedgerRegistrar.js +1 -0
  363. package/dist/typechain/out/Registrar.sol/index.d.ts +1 -0
  364. package/dist/typechain/out/Registrar.sol/index.js +1 -0
  365. package/dist/typechain/out/Settings.sol/SettingsController.d.ts +97 -0
  366. package/dist/typechain/out/Settings.sol/SettingsController.js +1 -0
  367. package/dist/typechain/out/Settings.sol/index.d.ts +1 -0
  368. package/dist/typechain/out/Settings.sol/index.js +1 -0
  369. package/dist/typechain/out/Shares.sol/ICheckpointController.d.ts +29 -0
  370. package/dist/typechain/out/Shares.sol/ICheckpointController.js +1 -0
  371. package/dist/typechain/out/Shares.sol/ITransferController.d.ts +37 -0
  372. package/dist/typechain/out/Shares.sol/ITransferController.js +1 -0
  373. package/dist/typechain/out/Shares.sol/LedgerShares.d.ts +494 -0
  374. package/dist/typechain/out/Shares.sol/LedgerShares.js +1 -0
  375. package/dist/typechain/out/Shares.sol/index.d.ts +3 -0
  376. package/dist/typechain/out/Shares.sol/index.js +1 -0
  377. package/dist/typechain/out/SignatureVerifier.d.ts +139 -0
  378. package/dist/typechain/out/SignatureVerifier.js +1 -0
  379. package/dist/typechain/out/Storage.sol/LedgerStorage.d.ts +281 -0
  380. package/dist/typechain/out/Storage.sol/LedgerStorage.js +1 -0
  381. package/dist/typechain/out/Storage.sol/index.d.ts +1 -0
  382. package/dist/typechain/out/Storage.sol/index.js +1 -0
  383. package/dist/typechain/out/Trade.sol/TradeController.d.ts +137 -0
  384. package/dist/typechain/out/Trade.sol/TradeController.js +1 -0
  385. package/dist/typechain/out/Trade.sol/index.d.ts +1 -0
  386. package/dist/typechain/out/Trade.sol/index.js +1 -0
  387. package/dist/typechain/out/Transfer.sol/TransferController.d.ts +49 -0
  388. package/dist/typechain/out/Transfer.sol/TransferController.js +1 -0
  389. package/dist/typechain/out/Transfer.sol/index.d.ts +1 -0
  390. package/dist/typechain/out/Transfer.sol/index.js +1 -0
  391. package/dist/typechain/out/UniswapV2Adapter.d.ts +87 -0
  392. package/dist/typechain/out/UniswapV2Adapter.js +1 -0
  393. package/dist/typechain/out/UniswapV3Adapter.d.ts +87 -0
  394. package/dist/typechain/out/UniswapV3Adapter.js +1 -0
  395. package/dist/typechain/out/UniswapV3SwapRouter02Adapter.d.ts +87 -0
  396. package/dist/typechain/out/UniswapV3SwapRouter02Adapter.js +1 -0
  397. package/dist/typechain/out/UniswapV4Adapter.d.ts +110 -0
  398. package/dist/typechain/out/UniswapV4Adapter.js +1 -0
  399. package/dist/typechain/out/V0ToLotusMigrator.d.ts +94 -0
  400. package/dist/typechain/out/V0ToLotusMigrator.js +1 -0
  401. package/dist/typechain/out/Vault.sol/FundVault.d.ts +197 -0
  402. package/dist/typechain/out/Vault.sol/FundVault.js +1 -0
  403. package/dist/typechain/out/Vault.sol/index.d.ts +1 -0
  404. package/dist/typechain/out/Vault.sol/index.js +1 -0
  405. package/dist/typechain/out/Withdrawal.sol/WithdrawalController.d.ts +152 -0
  406. package/dist/typechain/out/Withdrawal.sol/WithdrawalController.js +1 -0
  407. package/dist/typechain/out/Withdrawal.sol/index.d.ts +1 -0
  408. package/dist/typechain/out/Withdrawal.sol/index.js +1 -0
  409. package/dist/typechain/out/index.d.ts +65 -0
  410. package/dist/typechain/out/index.js +1 -0
  411. package/dist/types/Fund.d.ts +27 -0
  412. package/dist/types/Fund.js +1 -0
  413. package/package.json +67 -0
@@ -0,0 +1,279 @@
1
+ import { Contract, solidityPacked } from 'ethers';
2
+ import { TOLL_DIVISOR_20BPS } from '../constants.js';
3
+ import { IPancakeQuoterV2__factory, UniswapV2Adapter__factory, UniswapV3Adapter__factory, UniswapV4Adapter__factory, } from '../typechain/index.js';
4
+ import { connectV4Quoter, toAdapterPathKeys } from './getUniswapV4Route.js';
5
+ import { SWAP_DEADLINE_SECONDS } from './constants.js';
6
+ import { finalizeRouteQuote } from './finalizeRoute.js';
7
+ const V2_ROUTER_ABI = [
8
+ 'function getAmountsOut(uint256 amountIn, address[] memory path) external view returns (uint256[] memory amounts)',
9
+ ];
10
+ function connectV2Router(address, provider) {
11
+ return new Contract(address, V2_ROUTER_ABI, provider);
12
+ }
13
+ function connectV3Quoter(address, provider) {
14
+ return IPancakeQuoterV2__factory.connect(address, provider);
15
+ }
16
+ export function buildVeloraDexConfig(addresses) {
17
+ const cfg = {};
18
+ if (addresses.adapters.uniswapV2 && addresses.routers.uniswapV2) {
19
+ cfg.UniswapV2 = {
20
+ adapter: addresses.adapters.uniswapV2,
21
+ routerAddress: addresses.routers.uniswapV2,
22
+ };
23
+ }
24
+ if (addresses.adapters.pancakeV2 && addresses.routers.pancakeV2) {
25
+ cfg.PancakeSwapV2 = {
26
+ adapter: addresses.adapters.pancakeV2,
27
+ routerAddress: addresses.routers.pancakeV2,
28
+ };
29
+ }
30
+ if (addresses.adapters.uniswapV3 && addresses.quoters.uniswapV3) {
31
+ cfg.UniswapV3 = {
32
+ adapter: addresses.adapters.uniswapV3,
33
+ quoterAddress: addresses.quoters.uniswapV3,
34
+ };
35
+ }
36
+ if (addresses.adapters.pancakeV3 && addresses.quoters.pancakeV3) {
37
+ cfg.PancakeSwapV3 = {
38
+ adapter: addresses.adapters.pancakeV3,
39
+ quoterAddress: addresses.quoters.pancakeV3,
40
+ };
41
+ }
42
+ if (addresses.adapters.uniswapV4 && addresses.quoters.uniswapV4) {
43
+ cfg.UniswapV4 = {
44
+ adapter: addresses.adapters.uniswapV4,
45
+ quoterAddress: addresses.quoters.uniswapV4,
46
+ };
47
+ }
48
+ return cfg;
49
+ }
50
+ export function isDexConfigured(addresses, dex) {
51
+ return Boolean(buildVeloraDexConfig(addresses)[dex]);
52
+ }
53
+ function encodeV3Path(path) {
54
+ const pathEncoding = ['address'];
55
+ const pathToEncode = [path[0].tokenIn];
56
+ for (const hop of path) {
57
+ pathEncoding.push('uint24', 'address');
58
+ pathToEncode.push(Number(hop.fee), hop.tokenOut);
59
+ }
60
+ return solidityPacked(pathEncoding, pathToEncode);
61
+ }
62
+ export async function getRouteFromPath({ chainId, addresses, provider, simulator, dex, cachedPath, amountIn, toll, vault, controller, account, maxSlippageE3, prefixTxs, }) {
63
+ if (!cachedPath) {
64
+ throw new Error('No cached path');
65
+ }
66
+ const dexConfig = buildVeloraDexConfig(addresses);
67
+ switch (dex) {
68
+ case 'PancakeSwapV2':
69
+ case 'UniswapV2': {
70
+ if (cachedPath.type !== 'v2') {
71
+ throw new Error('Expected V2 path');
72
+ }
73
+ const entry = dexConfig[dex];
74
+ if (!entry) {
75
+ throw new Error(`DEX ${dex} not supported on chainId ${chainId}`);
76
+ }
77
+ const router = connectV2Router(entry.routerAddress, provider);
78
+ const adapter = entry.adapter;
79
+ const [grossAmountToReceive, blockNumber] = await Promise.all([
80
+ router
81
+ .getAmountsOut(amountIn, cachedPath.path)
82
+ .then((amounts) => amounts.at(-1)),
83
+ provider.getBlockNumber(),
84
+ ]);
85
+ let amountQuoted = grossAmountToReceive;
86
+ let amountToSend = amountIn;
87
+ if (toll.amount === 0n) {
88
+ toll.amount = grossAmountToReceive / TOLL_DIVISOR_20BPS;
89
+ amountQuoted -= toll.amount;
90
+ }
91
+ else {
92
+ amountToSend += toll.amount;
93
+ }
94
+ const deadline = Math.floor(Date.now() / 1000) + SWAP_DEADLINE_SECONDS;
95
+ const buildCallDataForAmount = (amountToReceive) => UniswapV2Adapter__factory.createInterface().encodeFunctionData('executeSwap', [
96
+ {
97
+ amountToSend,
98
+ amountToReceive,
99
+ path: cachedPath.path,
100
+ deadline,
101
+ },
102
+ ]);
103
+ const context = {
104
+ chainId,
105
+ blockNumber,
106
+ controller,
107
+ vault,
108
+ adapter,
109
+ account,
110
+ path: cachedPath.path,
111
+ buildCallDataForAmount,
112
+ simulator,
113
+ prefixTxs,
114
+ };
115
+ const { finalAmountToReceive, callData, effectiveSlippageBps, finalTollAmount, } = await finalizeRouteQuote({
116
+ context,
117
+ amountToSend,
118
+ amountQuoted,
119
+ initialTollAmount: toll.amount,
120
+ maxSlippageE3,
121
+ });
122
+ return {
123
+ adapter,
124
+ data: {
125
+ amountToSend,
126
+ amountToReceive: finalAmountToReceive,
127
+ path: cachedPath.path,
128
+ deadline,
129
+ },
130
+ callData,
131
+ toll: { ...toll, amount: finalTollAmount },
132
+ hops: cachedPath.hops,
133
+ effectiveSlippageBps,
134
+ };
135
+ }
136
+ case 'PancakeSwapV3':
137
+ case 'UniswapV3': {
138
+ if (cachedPath.type !== 'v3') {
139
+ throw new Error('Expected V3 path');
140
+ }
141
+ const entry = dexConfig[dex];
142
+ if (!entry) {
143
+ throw new Error(`DEX ${dex} not supported on chainId ${chainId}`);
144
+ }
145
+ const adapter = entry.adapter;
146
+ const quoter = connectV3Quoter(entry.quoterAddress, provider);
147
+ const encodedPath = encodeV3Path(cachedPath.path);
148
+ const [{ amountOut: grossAmountToReceive }, blockNumber] = await Promise.all([
149
+ quoter.quoteExactInput.staticCall(encodedPath, amountIn),
150
+ provider.getBlockNumber(),
151
+ ]);
152
+ let amountQuoted = grossAmountToReceive;
153
+ let amountToSend = amountIn;
154
+ if (toll.amount === 0n) {
155
+ toll.amount = grossAmountToReceive / TOLL_DIVISOR_20BPS;
156
+ amountQuoted -= toll.amount;
157
+ }
158
+ else {
159
+ amountToSend += toll.amount;
160
+ }
161
+ const deadline = Math.floor(Date.now() / 1000) + SWAP_DEADLINE_SECONDS;
162
+ const buildCallDataForAmount = (amountToReceive) => UniswapV3Adapter__factory.createInterface().encodeFunctionData('executeSwap', [
163
+ {
164
+ amountToSend,
165
+ amountToReceive,
166
+ path: encodedPath,
167
+ deadline,
168
+ },
169
+ ]);
170
+ const context = {
171
+ chainId,
172
+ blockNumber,
173
+ controller,
174
+ vault,
175
+ adapter,
176
+ account,
177
+ path: cachedPath.path,
178
+ buildCallDataForAmount,
179
+ simulator,
180
+ prefixTxs,
181
+ };
182
+ const { finalAmountToReceive, callData, effectiveSlippageBps, finalTollAmount, } = await finalizeRouteQuote({
183
+ context,
184
+ amountToSend,
185
+ amountQuoted,
186
+ initialTollAmount: toll.amount,
187
+ maxSlippageE3,
188
+ });
189
+ return {
190
+ adapter,
191
+ data: {
192
+ amountToSend,
193
+ amountToReceive: finalAmountToReceive,
194
+ path: encodedPath,
195
+ deadline,
196
+ },
197
+ callData,
198
+ toll: { ...toll, amount: finalTollAmount },
199
+ hops: cachedPath.hops,
200
+ effectiveSlippageBps,
201
+ };
202
+ }
203
+ case 'UniswapV4': {
204
+ if (cachedPath.type !== 'v4') {
205
+ throw new Error('Expected V4 path');
206
+ }
207
+ const entry = dexConfig[dex];
208
+ if (!entry) {
209
+ throw new Error(`DEX ${dex} not supported on chainId ${chainId}`);
210
+ }
211
+ const adapter = entry.adapter;
212
+ const quoter = connectV4Quoter(entry.quoterAddress, provider);
213
+ const pathKeys = toAdapterPathKeys(cachedPath.path);
214
+ const currencyIn = cachedPath.path[0].tokenIn;
215
+ const [[grossAmountToReceive], blockNumber] = await Promise.all([
216
+ quoter.quoteExactInput.staticCall({
217
+ exactCurrency: currencyIn,
218
+ path: pathKeys,
219
+ exactAmount: amountIn,
220
+ }),
221
+ provider.getBlockNumber(),
222
+ ]);
223
+ let amountQuoted = grossAmountToReceive;
224
+ let amountToSend = amountIn;
225
+ if (toll.amount === 0n) {
226
+ toll.amount = grossAmountToReceive / TOLL_DIVISOR_20BPS;
227
+ amountQuoted -= toll.amount;
228
+ }
229
+ else {
230
+ amountToSend += toll.amount;
231
+ }
232
+ const deadline = Math.floor(Date.now() / 1000) + SWAP_DEADLINE_SECONDS;
233
+ const buildCallDataForAmount = (amountToReceive) => UniswapV4Adapter__factory.createInterface().encodeFunctionData('executeSwap', [
234
+ {
235
+ amountToSend,
236
+ amountToReceive,
237
+ currencyIn,
238
+ path: pathKeys,
239
+ deadline,
240
+ },
241
+ ]);
242
+ const context = {
243
+ chainId,
244
+ blockNumber,
245
+ controller,
246
+ vault,
247
+ adapter,
248
+ account,
249
+ path: cachedPath.path,
250
+ buildCallDataForAmount,
251
+ simulator,
252
+ prefixTxs,
253
+ };
254
+ const { finalAmountToReceive, callData, effectiveSlippageBps, finalTollAmount, } = await finalizeRouteQuote({
255
+ context,
256
+ amountToSend,
257
+ amountQuoted,
258
+ initialTollAmount: toll.amount,
259
+ maxSlippageE3,
260
+ });
261
+ return {
262
+ adapter,
263
+ data: {
264
+ amountToSend,
265
+ amountToReceive: finalAmountToReceive,
266
+ currencyIn,
267
+ path: pathKeys,
268
+ deadline,
269
+ },
270
+ callData,
271
+ toll: { ...toll, amount: finalTollAmount },
272
+ hops: cachedPath.hops,
273
+ effectiveSlippageBps,
274
+ };
275
+ }
276
+ default:
277
+ throw new Error('INVALID_DEX');
278
+ }
279
+ }
@@ -0,0 +1,6 @@
1
+ export { bigNumberish, slippageSettingsRecord } from './primitives';
2
+ export { quoteDepositSchema } from './quoteDeposit';
3
+ export { quoteWithdrawalSchema } from './quoteWithdrawal';
4
+ export { quoteTradeSchema } from './quoteTrade';
5
+ export { quoteHarvestSchema } from './quoteHarvest';
6
+ export { quoteRebalanceSchema } from './quoteRebalance';
@@ -0,0 +1,6 @@
1
+ export { bigNumberish, slippageSettingsRecord } from './primitives.js';
2
+ export { quoteDepositSchema } from './quoteDeposit.js';
3
+ export { quoteWithdrawalSchema } from './quoteWithdrawal.js';
4
+ export { quoteTradeSchema } from './quoteTrade.js';
5
+ export { quoteHarvestSchema } from './quoteHarvest.js';
6
+ export { quoteRebalanceSchema } from './quoteRebalance.js';
@@ -0,0 +1,3 @@
1
+ import { z } from 'zod';
2
+ export declare const bigNumberish: (message?: string) => z.ZodUnion<[z.ZodUnion<[z.ZodBigInt, z.ZodEffects<z.ZodNumber, bigint, number>]>, z.ZodEffects<z.ZodString, bigint, string>]>;
3
+ export declare const slippageSettingsRecord: () => z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodUnion<[z.ZodBigInt, z.ZodEffects<z.ZodNumber, bigint, number>]>, z.ZodEffects<z.ZodString, bigint, string>]>>>;
@@ -0,0 +1,9 @@
1
+ import { z } from 'zod';
2
+ export const bigNumberish = (message = 'Must be a bigint, integer number, or integer string') => z
3
+ .bigint()
4
+ .or(z.number().int().transform((v) => BigInt(v)))
5
+ .or(z
6
+ .string()
7
+ .regex(/^-?\d+$/, { message })
8
+ .transform((v) => BigInt(v)));
9
+ export const slippageSettingsRecord = () => z.record(z.string(), bigNumberish()).optional();
@@ -0,0 +1,23 @@
1
+ import { z } from 'zod';
2
+ export declare const quoteDepositSchema: z.ZodObject<{
3
+ ledger: z.ZodString;
4
+ account: z.ZodString;
5
+ coin: z.ZodString;
6
+ amount: z.ZodUnion<[z.ZodUnion<[z.ZodBigInt, z.ZodEffects<z.ZodNumber, bigint, number>]>, z.ZodEffects<z.ZodString, bigint, string>]>;
7
+ referrerFeeBps: z.ZodUnion<[z.ZodUnion<[z.ZodBigInt, z.ZodEffects<z.ZodNumber, bigint, number>]>, z.ZodEffects<z.ZodString, bigint, string>]>;
8
+ slippageSettings: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodUnion<[z.ZodBigInt, z.ZodEffects<z.ZodNumber, bigint, number>]>, z.ZodEffects<z.ZodString, bigint, string>]>>>;
9
+ }, "strip", z.ZodTypeAny, {
10
+ ledger: string;
11
+ amount: bigint;
12
+ account: string;
13
+ coin: string;
14
+ referrerFeeBps: bigint;
15
+ slippageSettings?: Record<string, bigint> | undefined;
16
+ }, {
17
+ ledger: string;
18
+ amount: string | number | bigint;
19
+ account: string;
20
+ coin: string;
21
+ referrerFeeBps: string | number | bigint;
22
+ slippageSettings?: Record<string, string | number | bigint> | undefined;
23
+ }>;
@@ -0,0 +1,10 @@
1
+ import { z } from 'zod';
2
+ import { bigNumberish, slippageSettingsRecord } from './primitives.js';
3
+ export const quoteDepositSchema = z.object({
4
+ ledger: z.string(),
5
+ account: z.string(),
6
+ coin: z.string(),
7
+ amount: bigNumberish(),
8
+ referrerFeeBps: bigNumberish(),
9
+ slippageSettings: slippageSettingsRecord(),
10
+ });
@@ -0,0 +1,17 @@
1
+ import { z } from 'zod';
2
+ export declare const quoteHarvestSchema: z.ZodObject<{
3
+ ledger: z.ZodString;
4
+ coin: z.ZodString;
5
+ isManagementFeeEligible: z.ZodOptional<z.ZodBoolean>;
6
+ slippageSettings: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodUnion<[z.ZodBigInt, z.ZodEffects<z.ZodNumber, bigint, number>]>, z.ZodEffects<z.ZodString, bigint, string>]>>>;
7
+ }, "strip", z.ZodTypeAny, {
8
+ ledger: string;
9
+ coin: string;
10
+ isManagementFeeEligible?: boolean | undefined;
11
+ slippageSettings?: Record<string, bigint> | undefined;
12
+ }, {
13
+ ledger: string;
14
+ coin: string;
15
+ isManagementFeeEligible?: boolean | undefined;
16
+ slippageSettings?: Record<string, string | number | bigint> | undefined;
17
+ }>;
@@ -0,0 +1,8 @@
1
+ import { z } from 'zod';
2
+ import { slippageSettingsRecord } from './primitives.js';
3
+ export const quoteHarvestSchema = z.object({
4
+ ledger: z.string(),
5
+ coin: z.string(),
6
+ isManagementFeeEligible: z.boolean().optional(),
7
+ slippageSettings: slippageSettingsRecord(),
8
+ });
@@ -0,0 +1,29 @@
1
+ import { z } from 'zod';
2
+ export declare const quoteRebalanceSchema: z.ZodObject<{
3
+ ledger: z.ZodString;
4
+ targetWeights: z.ZodArray<z.ZodObject<{
5
+ token: z.ZodString;
6
+ weight: z.ZodUnion<[z.ZodUnion<[z.ZodBigInt, z.ZodEffects<z.ZodNumber, bigint, number>]>, z.ZodEffects<z.ZodString, bigint, string>]>;
7
+ }, "strip", z.ZodTypeAny, {
8
+ token: string;
9
+ weight: bigint;
10
+ }, {
11
+ token: string;
12
+ weight: string | number | bigint;
13
+ }>, "many">;
14
+ slippageSettings: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodUnion<[z.ZodBigInt, z.ZodEffects<z.ZodNumber, bigint, number>]>, z.ZodEffects<z.ZodString, bigint, string>]>>>;
15
+ }, "strip", z.ZodTypeAny, {
16
+ ledger: string;
17
+ targetWeights: {
18
+ token: string;
19
+ weight: bigint;
20
+ }[];
21
+ slippageSettings?: Record<string, bigint> | undefined;
22
+ }, {
23
+ ledger: string;
24
+ targetWeights: {
25
+ token: string;
26
+ weight: string | number | bigint;
27
+ }[];
28
+ slippageSettings?: Record<string, string | number | bigint> | undefined;
29
+ }>;
@@ -0,0 +1,10 @@
1
+ import { z } from 'zod';
2
+ import { bigNumberish, slippageSettingsRecord } from './primitives.js';
3
+ export const quoteRebalanceSchema = z.object({
4
+ ledger: z.string(),
5
+ targetWeights: z.array(z.object({
6
+ token: z.string(),
7
+ weight: bigNumberish(),
8
+ })),
9
+ slippageSettings: slippageSettingsRecord(),
10
+ });
@@ -0,0 +1,20 @@
1
+ import { z } from 'zod';
2
+ export declare const quoteTradeSchema: z.ZodObject<{
3
+ ledger: z.ZodString;
4
+ tokenIn: z.ZodString;
5
+ tokenOut: z.ZodString;
6
+ amountIn: z.ZodUnion<[z.ZodUnion<[z.ZodBigInt, z.ZodEffects<z.ZodNumber, bigint, number>]>, z.ZodEffects<z.ZodString, bigint, string>]>;
7
+ maxSlippage: z.ZodOptional<z.ZodUnion<[z.ZodUnion<[z.ZodBigInt, z.ZodEffects<z.ZodNumber, bigint, number>]>, z.ZodEffects<z.ZodString, bigint, string>]>>;
8
+ }, "strip", z.ZodTypeAny, {
9
+ ledger: string;
10
+ amountIn: bigint;
11
+ tokenIn: string;
12
+ tokenOut: string;
13
+ maxSlippage?: bigint | undefined;
14
+ }, {
15
+ ledger: string;
16
+ amountIn: string | number | bigint;
17
+ tokenIn: string;
18
+ tokenOut: string;
19
+ maxSlippage?: string | number | bigint | undefined;
20
+ }>;
@@ -0,0 +1,9 @@
1
+ import { z } from 'zod';
2
+ import { bigNumberish } from './primitives.js';
3
+ export const quoteTradeSchema = z.object({
4
+ ledger: z.string(),
5
+ tokenIn: z.string(),
6
+ tokenOut: z.string(),
7
+ amountIn: bigNumberish(),
8
+ maxSlippage: bigNumberish().optional(),
9
+ });
@@ -0,0 +1,23 @@
1
+ import { z } from 'zod';
2
+ export declare const quoteWithdrawalSchema: z.ZodObject<{
3
+ ledger: z.ZodString;
4
+ account: z.ZodString;
5
+ shares: z.ZodUnion<[z.ZodUnion<[z.ZodBigInt, z.ZodEffects<z.ZodNumber, bigint, number>]>, z.ZodEffects<z.ZodString, bigint, string>]>;
6
+ coin: z.ZodString;
7
+ referrerFeeBps: z.ZodUnion<[z.ZodUnion<[z.ZodBigInt, z.ZodEffects<z.ZodNumber, bigint, number>]>, z.ZodEffects<z.ZodString, bigint, string>]>;
8
+ slippageSettings: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodUnion<[z.ZodBigInt, z.ZodEffects<z.ZodNumber, bigint, number>]>, z.ZodEffects<z.ZodString, bigint, string>]>>>;
9
+ }, "strip", z.ZodTypeAny, {
10
+ ledger: string;
11
+ account: string;
12
+ coin: string;
13
+ referrerFeeBps: bigint;
14
+ shares: bigint;
15
+ slippageSettings?: Record<string, bigint> | undefined;
16
+ }, {
17
+ ledger: string;
18
+ account: string;
19
+ coin: string;
20
+ referrerFeeBps: string | number | bigint;
21
+ shares: string | number | bigint;
22
+ slippageSettings?: Record<string, string | number | bigint> | undefined;
23
+ }>;
@@ -0,0 +1,10 @@
1
+ import { z } from 'zod';
2
+ import { bigNumberish, slippageSettingsRecord } from './primitives.js';
3
+ export const quoteWithdrawalSchema = z.object({
4
+ ledger: z.string(),
5
+ account: z.string(),
6
+ shares: bigNumberish(),
7
+ coin: z.string(),
8
+ referrerFeeBps: bigNumberish(),
9
+ slippageSettings: slippageSettingsRecord(),
10
+ });
@@ -0,0 +1,17 @@
1
+ import type { AddressLike, BytesLike, TransactionRequest } from 'ethers';
2
+ type ExternalCallStruct = {
3
+ adapter: AddressLike;
4
+ callData: BytesLike;
5
+ };
6
+ export interface BuildDepositTxParams {
7
+ controller: string;
8
+ ledger: string;
9
+ coin: string;
10
+ amount: bigint;
11
+ sharesOutMin: bigint;
12
+ extCalls: ExternalCallStruct[];
13
+ referrerFeeBps: bigint;
14
+ from: string;
15
+ }
16
+ export default function buildDepositTx(params: BuildDepositTxParams): TransactionRequest;
17
+ export {};
@@ -0,0 +1,18 @@
1
+ import { FundController__factory } from '../typechain/index.js';
2
+ export default function buildDepositTx(params) {
3
+ const data = FundController__factory.createInterface().encodeFunctionData('deposit', [
4
+ {
5
+ ledger: params.ledger,
6
+ coin: params.coin,
7
+ amount: params.amount,
8
+ sharesOutMin: params.sharesOutMin,
9
+ extCalls: params.extCalls,
10
+ referrerFeeBps: params.referrerFeeBps,
11
+ },
12
+ ]);
13
+ return {
14
+ to: params.controller,
15
+ from: params.from,
16
+ data,
17
+ };
18
+ }
@@ -0,0 +1,16 @@
1
+ import type { AddressLike, BytesLike, TransactionRequest } from 'ethers';
2
+ type ExternalCallStruct = {
3
+ adapter: AddressLike;
4
+ callData: BytesLike;
5
+ };
6
+ export interface BuildHarvestTxParams {
7
+ controller: string;
8
+ ledger: string;
9
+ coin: string;
10
+ fraction: bigint;
11
+ isManagementFeeEligible: boolean;
12
+ extCalls: ExternalCallStruct[];
13
+ from: string;
14
+ }
15
+ export default function buildHarvestTx(params: BuildHarvestTxParams): TransactionRequest;
16
+ export {};
@@ -0,0 +1,17 @@
1
+ import { FundController__factory } from '../typechain/index.js';
2
+ export default function buildHarvestTx(params) {
3
+ const data = FundController__factory.createInterface().encodeFunctionData('harvest', [
4
+ {
5
+ ledger: params.ledger,
6
+ coin: params.coin,
7
+ fraction: params.fraction,
8
+ isManagementFeeEligible: params.isManagementFeeEligible,
9
+ extCalls: params.extCalls,
10
+ },
11
+ ]);
12
+ return {
13
+ to: params.controller,
14
+ from: params.from,
15
+ data,
16
+ };
17
+ }
@@ -0,0 +1,9 @@
1
+ import type { TransactionRequest } from 'ethers';
2
+ export interface BuildTradeTxParams {
3
+ controller: string;
4
+ ledger: string;
5
+ adapter: string;
6
+ callData: string;
7
+ from: string;
8
+ }
9
+ export default function buildTradeTx(params: BuildTradeTxParams): TransactionRequest;
@@ -0,0 +1,9 @@
1
+ import { FundController__factory } from '../typechain/index.js';
2
+ export default function buildTradeTx(params) {
3
+ const data = FundController__factory.createInterface().encodeFunctionData('executeTrade', [params.ledger, params.adapter, params.callData]);
4
+ return {
5
+ to: params.controller,
6
+ from: params.from,
7
+ data,
8
+ };
9
+ }
@@ -0,0 +1,16 @@
1
+ import type { AddressLike, BytesLike, TransactionRequest } from 'ethers';
2
+ type ExternalCallStruct = {
3
+ adapter: AddressLike;
4
+ callData: BytesLike;
5
+ };
6
+ export interface BuildWithdrawTxParams {
7
+ controller: string;
8
+ ledger: string;
9
+ coin: string;
10
+ shares: bigint;
11
+ extCalls: ExternalCallStruct[];
12
+ referrerFeeBps: bigint;
13
+ from: string;
14
+ }
15
+ export default function buildWithdrawTx(params: BuildWithdrawTxParams): TransactionRequest;
16
+ export {};
@@ -0,0 +1,17 @@
1
+ import { FundController__factory } from '../typechain/index.js';
2
+ export default function buildWithdrawTx(params) {
3
+ const data = FundController__factory.createInterface().encodeFunctionData('withdraw', [
4
+ {
5
+ ledger: params.ledger,
6
+ coin: params.coin,
7
+ shares: params.shares,
8
+ extCalls: params.extCalls,
9
+ referrerFeeBps: params.referrerFeeBps,
10
+ },
11
+ ]);
12
+ return {
13
+ to: params.controller,
14
+ from: params.from,
15
+ data,
16
+ };
17
+ }
@@ -0,0 +1,8 @@
1
+ export { default as buildDepositTx } from './buildDepositTx';
2
+ export type { BuildDepositTxParams } from './buildDepositTx';
3
+ export { default as buildWithdrawTx } from './buildWithdrawTx';
4
+ export type { BuildWithdrawTxParams } from './buildWithdrawTx';
5
+ export { default as buildHarvestTx } from './buildHarvestTx';
6
+ export type { BuildHarvestTxParams } from './buildHarvestTx';
7
+ export { default as buildTradeTx } from './buildTradeTx';
8
+ export type { BuildTradeTxParams } from './buildTradeTx';
@@ -0,0 +1,4 @@
1
+ export { default as buildDepositTx } from './buildDepositTx.js';
2
+ export { default as buildWithdrawTx } from './buildWithdrawTx.js';
3
+ export { default as buildHarvestTx } from './buildHarvestTx.js';
4
+ export { default as buildTradeTx } from './buildTradeTx.js';