@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,1424 @@
1
+ import { Contract, ContractFactory, Interface, } from "ethers";
2
+ const _abi = [
3
+ {
4
+ type: "constructor",
5
+ inputs: [
6
+ {
7
+ name: "config",
8
+ type: "tuple",
9
+ internalType: "struct Protocol.ProtocolConfig",
10
+ components: [
11
+ {
12
+ name: "governance",
13
+ type: "address",
14
+ internalType: "address",
15
+ },
16
+ {
17
+ name: "admin",
18
+ type: "address",
19
+ internalType: "address",
20
+ },
21
+ {
22
+ name: "feeCollector",
23
+ type: "address",
24
+ internalType: "address",
25
+ },
26
+ {
27
+ name: "token",
28
+ type: "address",
29
+ internalType: "contract IERC20",
30
+ },
31
+ ],
32
+ },
33
+ ],
34
+ stateMutability: "nonpayable",
35
+ },
36
+ {
37
+ type: "fallback",
38
+ stateMutability: "payable",
39
+ },
40
+ {
41
+ type: "receive",
42
+ stateMutability: "payable",
43
+ },
44
+ {
45
+ type: "function",
46
+ name: "DEFAULT_ADMIN_ROLE",
47
+ inputs: [],
48
+ outputs: [
49
+ {
50
+ name: "",
51
+ type: "bytes32",
52
+ internalType: "bytes32",
53
+ },
54
+ ],
55
+ stateMutability: "view",
56
+ },
57
+ {
58
+ type: "function",
59
+ name: "MAX_COOLDOWN_TIME",
60
+ inputs: [],
61
+ outputs: [
62
+ {
63
+ name: "",
64
+ type: "uint256",
65
+ internalType: "uint256",
66
+ },
67
+ ],
68
+ stateMutability: "view",
69
+ },
70
+ {
71
+ type: "function",
72
+ name: "PAUSER_ROLE",
73
+ inputs: [],
74
+ outputs: [
75
+ {
76
+ name: "",
77
+ type: "bytes32",
78
+ internalType: "bytes32",
79
+ },
80
+ ],
81
+ stateMutability: "view",
82
+ },
83
+ {
84
+ type: "function",
85
+ name: "admin",
86
+ inputs: [],
87
+ outputs: [
88
+ {
89
+ name: "",
90
+ type: "address",
91
+ internalType: "address",
92
+ },
93
+ ],
94
+ stateMutability: "view",
95
+ },
96
+ {
97
+ type: "function",
98
+ name: "controllers",
99
+ inputs: [
100
+ {
101
+ name: "",
102
+ type: "uint256",
103
+ internalType: "uint256",
104
+ },
105
+ ],
106
+ outputs: [
107
+ {
108
+ name: "",
109
+ type: "address",
110
+ internalType: "address",
111
+ },
112
+ ],
113
+ stateMutability: "view",
114
+ },
115
+ {
116
+ type: "function",
117
+ name: "creationFee",
118
+ inputs: [],
119
+ outputs: [
120
+ {
121
+ name: "",
122
+ type: "uint256",
123
+ internalType: "uint256",
124
+ },
125
+ ],
126
+ stateMutability: "view",
127
+ },
128
+ {
129
+ type: "function",
130
+ name: "disableAdapter",
131
+ inputs: [
132
+ {
133
+ name: "target",
134
+ type: "address",
135
+ internalType: "address",
136
+ },
137
+ ],
138
+ outputs: [],
139
+ stateMutability: "nonpayable",
140
+ },
141
+ {
142
+ type: "function",
143
+ name: "disableController",
144
+ inputs: [
145
+ {
146
+ name: "controller",
147
+ type: "address",
148
+ internalType: "address",
149
+ },
150
+ ],
151
+ outputs: [],
152
+ stateMutability: "nonpayable",
153
+ },
154
+ {
155
+ type: "function",
156
+ name: "disableStablecoin",
157
+ inputs: [
158
+ {
159
+ name: "coin",
160
+ type: "address",
161
+ internalType: "contract IERC20",
162
+ },
163
+ ],
164
+ outputs: [],
165
+ stateMutability: "nonpayable",
166
+ },
167
+ {
168
+ type: "function",
169
+ name: "enableAdapter",
170
+ inputs: [
171
+ {
172
+ name: "target",
173
+ type: "address",
174
+ internalType: "address",
175
+ },
176
+ ],
177
+ outputs: [],
178
+ stateMutability: "nonpayable",
179
+ },
180
+ {
181
+ type: "function",
182
+ name: "enableController",
183
+ inputs: [
184
+ {
185
+ name: "controller",
186
+ type: "address",
187
+ internalType: "address",
188
+ },
189
+ ],
190
+ outputs: [],
191
+ stateMutability: "nonpayable",
192
+ },
193
+ {
194
+ type: "function",
195
+ name: "enableStablecoin",
196
+ inputs: [
197
+ {
198
+ name: "coin",
199
+ type: "address",
200
+ internalType: "contract IERC20",
201
+ },
202
+ ],
203
+ outputs: [],
204
+ stateMutability: "nonpayable",
205
+ },
206
+ {
207
+ type: "function",
208
+ name: "extension",
209
+ inputs: [],
210
+ outputs: [
211
+ {
212
+ name: "",
213
+ type: "address",
214
+ internalType: "address",
215
+ },
216
+ ],
217
+ stateMutability: "view",
218
+ },
219
+ {
220
+ type: "function",
221
+ name: "feeCollector",
222
+ inputs: [],
223
+ outputs: [
224
+ {
225
+ name: "",
226
+ type: "address",
227
+ internalType: "address",
228
+ },
229
+ ],
230
+ stateMutability: "view",
231
+ },
232
+ {
233
+ type: "function",
234
+ name: "feeTermsByReferrer",
235
+ inputs: [
236
+ {
237
+ name: "referrer",
238
+ type: "address",
239
+ internalType: "address",
240
+ },
241
+ ],
242
+ outputs: [
243
+ {
244
+ name: "",
245
+ type: "tuple",
246
+ internalType: "struct Protocol.FeeTerms",
247
+ components: [
248
+ {
249
+ name: "profitFeeBps",
250
+ type: "uint16",
251
+ internalType: "uint16",
252
+ },
253
+ {
254
+ name: "managementFeeBps",
255
+ type: "uint16",
256
+ internalType: "uint16",
257
+ },
258
+ {
259
+ name: "registered",
260
+ type: "bool",
261
+ internalType: "bool",
262
+ },
263
+ ],
264
+ },
265
+ ],
266
+ stateMutability: "view",
267
+ },
268
+ {
269
+ type: "function",
270
+ name: "getLatestController",
271
+ inputs: [],
272
+ outputs: [
273
+ {
274
+ name: "",
275
+ type: "address",
276
+ internalType: "address",
277
+ },
278
+ ],
279
+ stateMutability: "view",
280
+ },
281
+ {
282
+ type: "function",
283
+ name: "getRoleAdmin",
284
+ inputs: [
285
+ {
286
+ name: "role",
287
+ type: "bytes32",
288
+ internalType: "bytes32",
289
+ },
290
+ ],
291
+ outputs: [
292
+ {
293
+ name: "",
294
+ type: "bytes32",
295
+ internalType: "bytes32",
296
+ },
297
+ ],
298
+ stateMutability: "view",
299
+ },
300
+ {
301
+ type: "function",
302
+ name: "governance",
303
+ inputs: [],
304
+ outputs: [
305
+ {
306
+ name: "",
307
+ type: "address",
308
+ internalType: "address",
309
+ },
310
+ ],
311
+ stateMutability: "view",
312
+ },
313
+ {
314
+ type: "function",
315
+ name: "grantRole",
316
+ inputs: [
317
+ {
318
+ name: "role",
319
+ type: "bytes32",
320
+ internalType: "bytes32",
321
+ },
322
+ {
323
+ name: "account",
324
+ type: "address",
325
+ internalType: "address",
326
+ },
327
+ ],
328
+ outputs: [],
329
+ stateMutability: "nonpayable",
330
+ },
331
+ {
332
+ type: "function",
333
+ name: "hasRole",
334
+ inputs: [
335
+ {
336
+ name: "role",
337
+ type: "bytes32",
338
+ internalType: "bytes32",
339
+ },
340
+ {
341
+ name: "account",
342
+ type: "address",
343
+ internalType: "address",
344
+ },
345
+ ],
346
+ outputs: [
347
+ {
348
+ name: "",
349
+ type: "bool",
350
+ internalType: "bool",
351
+ },
352
+ ],
353
+ stateMutability: "view",
354
+ },
355
+ {
356
+ type: "function",
357
+ name: "isEnabledAdapter",
358
+ inputs: [
359
+ {
360
+ name: "",
361
+ type: "address",
362
+ internalType: "address",
363
+ },
364
+ ],
365
+ outputs: [
366
+ {
367
+ name: "",
368
+ type: "bool",
369
+ internalType: "bool",
370
+ },
371
+ ],
372
+ stateMutability: "view",
373
+ },
374
+ {
375
+ type: "function",
376
+ name: "isEnabledController",
377
+ inputs: [
378
+ {
379
+ name: "",
380
+ type: "address",
381
+ internalType: "address",
382
+ },
383
+ ],
384
+ outputs: [
385
+ {
386
+ name: "",
387
+ type: "bool",
388
+ internalType: "bool",
389
+ },
390
+ ],
391
+ stateMutability: "view",
392
+ },
393
+ {
394
+ type: "function",
395
+ name: "isEnabledStablecoin",
396
+ inputs: [
397
+ {
398
+ name: "",
399
+ type: "address",
400
+ internalType: "contract IERC20",
401
+ },
402
+ ],
403
+ outputs: [
404
+ {
405
+ name: "",
406
+ type: "bool",
407
+ internalType: "bool",
408
+ },
409
+ ],
410
+ stateMutability: "view",
411
+ },
412
+ {
413
+ type: "function",
414
+ name: "isRegisteredLedger",
415
+ inputs: [
416
+ {
417
+ name: "",
418
+ type: "address",
419
+ internalType: "address",
420
+ },
421
+ ],
422
+ outputs: [
423
+ {
424
+ name: "",
425
+ type: "bool",
426
+ internalType: "bool",
427
+ },
428
+ ],
429
+ stateMutability: "view",
430
+ },
431
+ {
432
+ type: "function",
433
+ name: "minCooldownTime",
434
+ inputs: [],
435
+ outputs: [
436
+ {
437
+ name: "",
438
+ type: "uint256",
439
+ internalType: "uint256",
440
+ },
441
+ ],
442
+ stateMutability: "view",
443
+ },
444
+ {
445
+ type: "function",
446
+ name: "minInitialDepositUsd",
447
+ inputs: [],
448
+ outputs: [
449
+ {
450
+ name: "",
451
+ type: "uint256",
452
+ internalType: "uint256",
453
+ },
454
+ ],
455
+ stateMutability: "view",
456
+ },
457
+ {
458
+ type: "function",
459
+ name: "owner",
460
+ inputs: [],
461
+ outputs: [
462
+ {
463
+ name: "",
464
+ type: "address",
465
+ internalType: "address",
466
+ },
467
+ ],
468
+ stateMutability: "view",
469
+ },
470
+ {
471
+ type: "function",
472
+ name: "pause",
473
+ inputs: [],
474
+ outputs: [],
475
+ stateMutability: "nonpayable",
476
+ },
477
+ {
478
+ type: "function",
479
+ name: "paused",
480
+ inputs: [],
481
+ outputs: [
482
+ {
483
+ name: "",
484
+ type: "bool",
485
+ internalType: "bool",
486
+ },
487
+ ],
488
+ stateMutability: "view",
489
+ },
490
+ {
491
+ type: "function",
492
+ name: "registerReferrerFeeBps",
493
+ inputs: [
494
+ {
495
+ name: "profitFeeBps",
496
+ type: "uint16",
497
+ internalType: "uint16",
498
+ },
499
+ {
500
+ name: "managementFeeBps",
501
+ type: "uint16",
502
+ internalType: "uint16",
503
+ },
504
+ ],
505
+ outputs: [],
506
+ stateMutability: "nonpayable",
507
+ },
508
+ {
509
+ type: "function",
510
+ name: "registerUpdatedLedger",
511
+ inputs: [
512
+ {
513
+ name: "vault",
514
+ type: "address",
515
+ internalType: "address",
516
+ },
517
+ {
518
+ name: "prevLedger",
519
+ type: "address",
520
+ internalType: "address",
521
+ },
522
+ {
523
+ name: "newLedger",
524
+ type: "address",
525
+ internalType: "address",
526
+ },
527
+ ],
528
+ outputs: [],
529
+ stateMutability: "nonpayable",
530
+ },
531
+ {
532
+ type: "function",
533
+ name: "registerValidFund",
534
+ inputs: [
535
+ {
536
+ name: "ctx",
537
+ type: "tuple",
538
+ internalType: "struct CreationContext",
539
+ components: [
540
+ {
541
+ name: "payload",
542
+ type: "tuple",
543
+ internalType: "struct FundCreation",
544
+ components: [
545
+ {
546
+ name: "referrer",
547
+ type: "address",
548
+ internalType: "address",
549
+ },
550
+ {
551
+ name: "name",
552
+ type: "string",
553
+ internalType: "string",
554
+ },
555
+ {
556
+ name: "symbol",
557
+ type: "string",
558
+ internalType: "string",
559
+ },
560
+ {
561
+ name: "coin",
562
+ type: "address",
563
+ internalType: "contract IERC20",
564
+ },
565
+ {
566
+ name: "initialDepositAmount",
567
+ type: "uint256",
568
+ internalType: "uint256",
569
+ },
570
+ {
571
+ name: "minDepositUsd",
572
+ type: "uint96",
573
+ internalType: "uint96",
574
+ },
575
+ {
576
+ name: "cooldownTime",
577
+ type: "uint32",
578
+ internalType: "uint32",
579
+ },
580
+ {
581
+ name: "managerProfitFeeBps",
582
+ type: "uint16",
583
+ internalType: "uint16",
584
+ },
585
+ {
586
+ name: "managerManagementFeeBps",
587
+ type: "uint16",
588
+ internalType: "uint16",
589
+ },
590
+ ],
591
+ },
592
+ {
593
+ name: "creationFeeAmount",
594
+ type: "uint256",
595
+ internalType: "uint256",
596
+ },
597
+ {
598
+ name: "normalizedDepositAmount",
599
+ type: "uint256",
600
+ internalType: "uint256",
601
+ },
602
+ {
603
+ name: "vault",
604
+ type: "address",
605
+ internalType: "address",
606
+ },
607
+ {
608
+ name: "ledger",
609
+ type: "address",
610
+ internalType: "address",
611
+ },
612
+ ],
613
+ },
614
+ ],
615
+ outputs: [
616
+ {
617
+ name: "",
618
+ type: "tuple",
619
+ internalType: "struct CreationContext",
620
+ components: [
621
+ {
622
+ name: "payload",
623
+ type: "tuple",
624
+ internalType: "struct FundCreation",
625
+ components: [
626
+ {
627
+ name: "referrer",
628
+ type: "address",
629
+ internalType: "address",
630
+ },
631
+ {
632
+ name: "name",
633
+ type: "string",
634
+ internalType: "string",
635
+ },
636
+ {
637
+ name: "symbol",
638
+ type: "string",
639
+ internalType: "string",
640
+ },
641
+ {
642
+ name: "coin",
643
+ type: "address",
644
+ internalType: "contract IERC20",
645
+ },
646
+ {
647
+ name: "initialDepositAmount",
648
+ type: "uint256",
649
+ internalType: "uint256",
650
+ },
651
+ {
652
+ name: "minDepositUsd",
653
+ type: "uint96",
654
+ internalType: "uint96",
655
+ },
656
+ {
657
+ name: "cooldownTime",
658
+ type: "uint32",
659
+ internalType: "uint32",
660
+ },
661
+ {
662
+ name: "managerProfitFeeBps",
663
+ type: "uint16",
664
+ internalType: "uint16",
665
+ },
666
+ {
667
+ name: "managerManagementFeeBps",
668
+ type: "uint16",
669
+ internalType: "uint16",
670
+ },
671
+ ],
672
+ },
673
+ {
674
+ name: "creationFeeAmount",
675
+ type: "uint256",
676
+ internalType: "uint256",
677
+ },
678
+ {
679
+ name: "normalizedDepositAmount",
680
+ type: "uint256",
681
+ internalType: "uint256",
682
+ },
683
+ {
684
+ name: "vault",
685
+ type: "address",
686
+ internalType: "address",
687
+ },
688
+ {
689
+ name: "ledger",
690
+ type: "address",
691
+ internalType: "address",
692
+ },
693
+ ],
694
+ },
695
+ ],
696
+ stateMutability: "nonpayable",
697
+ },
698
+ {
699
+ type: "function",
700
+ name: "renounceOwnership",
701
+ inputs: [],
702
+ outputs: [],
703
+ stateMutability: "nonpayable",
704
+ },
705
+ {
706
+ type: "function",
707
+ name: "renounceRole",
708
+ inputs: [
709
+ {
710
+ name: "role",
711
+ type: "bytes32",
712
+ internalType: "bytes32",
713
+ },
714
+ {
715
+ name: "callerConfirmation",
716
+ type: "address",
717
+ internalType: "address",
718
+ },
719
+ ],
720
+ outputs: [],
721
+ stateMutability: "nonpayable",
722
+ },
723
+ {
724
+ type: "function",
725
+ name: "revokeRole",
726
+ inputs: [
727
+ {
728
+ name: "role",
729
+ type: "bytes32",
730
+ internalType: "bytes32",
731
+ },
732
+ {
733
+ name: "account",
734
+ type: "address",
735
+ internalType: "address",
736
+ },
737
+ ],
738
+ outputs: [],
739
+ stateMutability: "nonpayable",
740
+ },
741
+ {
742
+ type: "function",
743
+ name: "setCreationFee",
744
+ inputs: [
745
+ {
746
+ name: "newCreationFee",
747
+ type: "uint256",
748
+ internalType: "uint256",
749
+ },
750
+ ],
751
+ outputs: [],
752
+ stateMutability: "nonpayable",
753
+ },
754
+ {
755
+ type: "function",
756
+ name: "setMinCooldownTime",
757
+ inputs: [
758
+ {
759
+ name: "newMinCooldownTime",
760
+ type: "uint256",
761
+ internalType: "uint256",
762
+ },
763
+ ],
764
+ outputs: [],
765
+ stateMutability: "nonpayable",
766
+ },
767
+ {
768
+ type: "function",
769
+ name: "setMinInitialDepositUsd",
770
+ inputs: [
771
+ {
772
+ name: "newMinInitialDepositUsd",
773
+ type: "uint256",
774
+ internalType: "uint256",
775
+ },
776
+ ],
777
+ outputs: [],
778
+ stateMutability: "nonpayable",
779
+ },
780
+ {
781
+ type: "function",
782
+ name: "supportsInterface",
783
+ inputs: [
784
+ {
785
+ name: "interfaceId",
786
+ type: "bytes4",
787
+ internalType: "bytes4",
788
+ },
789
+ ],
790
+ outputs: [
791
+ {
792
+ name: "",
793
+ type: "bool",
794
+ internalType: "bool",
795
+ },
796
+ ],
797
+ stateMutability: "view",
798
+ },
799
+ {
800
+ type: "function",
801
+ name: "togglePauserRole",
802
+ inputs: [
803
+ {
804
+ name: "account",
805
+ type: "address",
806
+ internalType: "address",
807
+ },
808
+ {
809
+ name: "enabled",
810
+ type: "bool",
811
+ internalType: "bool",
812
+ },
813
+ ],
814
+ outputs: [],
815
+ stateMutability: "nonpayable",
816
+ },
817
+ {
818
+ type: "function",
819
+ name: "token",
820
+ inputs: [],
821
+ outputs: [
822
+ {
823
+ name: "",
824
+ type: "address",
825
+ internalType: "contract IERC20",
826
+ },
827
+ ],
828
+ stateMutability: "view",
829
+ },
830
+ {
831
+ type: "function",
832
+ name: "transferOwnership",
833
+ inputs: [
834
+ {
835
+ name: "newOwner",
836
+ type: "address",
837
+ internalType: "address",
838
+ },
839
+ ],
840
+ outputs: [],
841
+ stateMutability: "nonpayable",
842
+ },
843
+ {
844
+ type: "function",
845
+ name: "unpause",
846
+ inputs: [],
847
+ outputs: [],
848
+ stateMutability: "nonpayable",
849
+ },
850
+ {
851
+ type: "function",
852
+ name: "updateAdmin",
853
+ inputs: [
854
+ {
855
+ name: "newAdmin",
856
+ type: "address",
857
+ internalType: "address",
858
+ },
859
+ ],
860
+ outputs: [],
861
+ stateMutability: "nonpayable",
862
+ },
863
+ {
864
+ type: "function",
865
+ name: "updateFeeCollector",
866
+ inputs: [
867
+ {
868
+ name: "newFeeCollector",
869
+ type: "address",
870
+ internalType: "address",
871
+ },
872
+ ],
873
+ outputs: [],
874
+ stateMutability: "nonpayable",
875
+ },
876
+ {
877
+ type: "function",
878
+ name: "updateGovernanceToken",
879
+ inputs: [
880
+ {
881
+ name: "newToken",
882
+ type: "address",
883
+ internalType: "contract IERC20",
884
+ },
885
+ ],
886
+ outputs: [],
887
+ stateMutability: "nonpayable",
888
+ },
889
+ {
890
+ type: "function",
891
+ name: "updateProtocolExtension",
892
+ inputs: [
893
+ {
894
+ name: "newExtension",
895
+ type: "address",
896
+ internalType: "address",
897
+ },
898
+ ],
899
+ outputs: [],
900
+ stateMutability: "nonpayable",
901
+ },
902
+ {
903
+ type: "event",
904
+ name: "AdapterDisabled",
905
+ inputs: [
906
+ {
907
+ name: "adapter",
908
+ type: "address",
909
+ indexed: false,
910
+ internalType: "address",
911
+ },
912
+ ],
913
+ anonymous: false,
914
+ },
915
+ {
916
+ type: "event",
917
+ name: "AdapterEnabled",
918
+ inputs: [
919
+ {
920
+ name: "adapter",
921
+ type: "address",
922
+ indexed: false,
923
+ internalType: "address",
924
+ },
925
+ ],
926
+ anonymous: false,
927
+ },
928
+ {
929
+ type: "event",
930
+ name: "AdminUpdated",
931
+ inputs: [],
932
+ anonymous: false,
933
+ },
934
+ {
935
+ type: "event",
936
+ name: "ControllerDisabled",
937
+ inputs: [
938
+ {
939
+ name: "controller",
940
+ type: "address",
941
+ indexed: false,
942
+ internalType: "address",
943
+ },
944
+ ],
945
+ anonymous: false,
946
+ },
947
+ {
948
+ type: "event",
949
+ name: "ControllerEnabled",
950
+ inputs: [
951
+ {
952
+ name: "controller",
953
+ type: "address",
954
+ indexed: false,
955
+ internalType: "address",
956
+ },
957
+ ],
958
+ anonymous: false,
959
+ },
960
+ {
961
+ type: "event",
962
+ name: "CreationFeeUpdated",
963
+ inputs: [
964
+ {
965
+ name: "newCreationFee",
966
+ type: "uint256",
967
+ indexed: false,
968
+ internalType: "uint256",
969
+ },
970
+ ],
971
+ anonymous: false,
972
+ },
973
+ {
974
+ type: "event",
975
+ name: "FeeCollectorUpdated",
976
+ inputs: [
977
+ {
978
+ name: "newFeeCollector",
979
+ type: "address",
980
+ indexed: false,
981
+ internalType: "address",
982
+ },
983
+ ],
984
+ anonymous: false,
985
+ },
986
+ {
987
+ type: "event",
988
+ name: "FundRegistered",
989
+ inputs: [
990
+ {
991
+ name: "fund",
992
+ type: "address",
993
+ indexed: false,
994
+ internalType: "address",
995
+ },
996
+ {
997
+ name: "symbol",
998
+ type: "string",
999
+ indexed: false,
1000
+ internalType: "string",
1001
+ },
1002
+ ],
1003
+ anonymous: false,
1004
+ },
1005
+ {
1006
+ type: "event",
1007
+ name: "LedgerUpdated",
1008
+ inputs: [
1009
+ {
1010
+ name: "vault",
1011
+ type: "address",
1012
+ indexed: true,
1013
+ internalType: "address",
1014
+ },
1015
+ {
1016
+ name: "prevLedger",
1017
+ type: "address",
1018
+ indexed: false,
1019
+ internalType: "address",
1020
+ },
1021
+ {
1022
+ name: "newLedger",
1023
+ type: "address",
1024
+ indexed: false,
1025
+ internalType: "address",
1026
+ },
1027
+ ],
1028
+ anonymous: false,
1029
+ },
1030
+ {
1031
+ type: "event",
1032
+ name: "MinCooldownTimeUpdated",
1033
+ inputs: [
1034
+ {
1035
+ name: "newMinCooldownTime",
1036
+ type: "uint256",
1037
+ indexed: false,
1038
+ internalType: "uint256",
1039
+ },
1040
+ ],
1041
+ anonymous: false,
1042
+ },
1043
+ {
1044
+ type: "event",
1045
+ name: "MinInitialDepositUsdUpdated",
1046
+ inputs: [
1047
+ {
1048
+ name: "newMinInitialDepositUsd",
1049
+ type: "uint256",
1050
+ indexed: false,
1051
+ internalType: "uint256",
1052
+ },
1053
+ ],
1054
+ anonymous: false,
1055
+ },
1056
+ {
1057
+ type: "event",
1058
+ name: "OwnershipTransferred",
1059
+ inputs: [
1060
+ {
1061
+ name: "previousOwner",
1062
+ type: "address",
1063
+ indexed: true,
1064
+ internalType: "address",
1065
+ },
1066
+ {
1067
+ name: "newOwner",
1068
+ type: "address",
1069
+ indexed: true,
1070
+ internalType: "address",
1071
+ },
1072
+ ],
1073
+ anonymous: false,
1074
+ },
1075
+ {
1076
+ type: "event",
1077
+ name: "Paused",
1078
+ inputs: [
1079
+ {
1080
+ name: "account",
1081
+ type: "address",
1082
+ indexed: false,
1083
+ internalType: "address",
1084
+ },
1085
+ ],
1086
+ anonymous: false,
1087
+ },
1088
+ {
1089
+ type: "event",
1090
+ name: "ProtocolExtensionUpdated",
1091
+ inputs: [
1092
+ {
1093
+ name: "newProtocolExtension",
1094
+ type: "address",
1095
+ indexed: false,
1096
+ internalType: "address",
1097
+ },
1098
+ ],
1099
+ anonymous: false,
1100
+ },
1101
+ {
1102
+ type: "event",
1103
+ name: "ReferrerUpdated",
1104
+ inputs: [
1105
+ {
1106
+ name: "referrer",
1107
+ type: "address",
1108
+ indexed: false,
1109
+ internalType: "address",
1110
+ },
1111
+ {
1112
+ name: "profitFeeBps",
1113
+ type: "uint256",
1114
+ indexed: false,
1115
+ internalType: "uint256",
1116
+ },
1117
+ {
1118
+ name: "managementFeeBps",
1119
+ type: "uint256",
1120
+ indexed: false,
1121
+ internalType: "uint256",
1122
+ },
1123
+ ],
1124
+ anonymous: false,
1125
+ },
1126
+ {
1127
+ type: "event",
1128
+ name: "RoleAdminChanged",
1129
+ inputs: [
1130
+ {
1131
+ name: "role",
1132
+ type: "bytes32",
1133
+ indexed: true,
1134
+ internalType: "bytes32",
1135
+ },
1136
+ {
1137
+ name: "previousAdminRole",
1138
+ type: "bytes32",
1139
+ indexed: true,
1140
+ internalType: "bytes32",
1141
+ },
1142
+ {
1143
+ name: "newAdminRole",
1144
+ type: "bytes32",
1145
+ indexed: true,
1146
+ internalType: "bytes32",
1147
+ },
1148
+ ],
1149
+ anonymous: false,
1150
+ },
1151
+ {
1152
+ type: "event",
1153
+ name: "RoleGranted",
1154
+ inputs: [
1155
+ {
1156
+ name: "role",
1157
+ type: "bytes32",
1158
+ indexed: true,
1159
+ internalType: "bytes32",
1160
+ },
1161
+ {
1162
+ name: "account",
1163
+ type: "address",
1164
+ indexed: true,
1165
+ internalType: "address",
1166
+ },
1167
+ {
1168
+ name: "sender",
1169
+ type: "address",
1170
+ indexed: true,
1171
+ internalType: "address",
1172
+ },
1173
+ ],
1174
+ anonymous: false,
1175
+ },
1176
+ {
1177
+ type: "event",
1178
+ name: "RoleRevoked",
1179
+ inputs: [
1180
+ {
1181
+ name: "role",
1182
+ type: "bytes32",
1183
+ indexed: true,
1184
+ internalType: "bytes32",
1185
+ },
1186
+ {
1187
+ name: "account",
1188
+ type: "address",
1189
+ indexed: true,
1190
+ internalType: "address",
1191
+ },
1192
+ {
1193
+ name: "sender",
1194
+ type: "address",
1195
+ indexed: true,
1196
+ internalType: "address",
1197
+ },
1198
+ ],
1199
+ anonymous: false,
1200
+ },
1201
+ {
1202
+ type: "event",
1203
+ name: "StablecoinDisabled",
1204
+ inputs: [
1205
+ {
1206
+ name: "coin",
1207
+ type: "address",
1208
+ indexed: false,
1209
+ internalType: "contract IERC20",
1210
+ },
1211
+ ],
1212
+ anonymous: false,
1213
+ },
1214
+ {
1215
+ type: "event",
1216
+ name: "StablecoinEnabled",
1217
+ inputs: [
1218
+ {
1219
+ name: "coin",
1220
+ type: "address",
1221
+ indexed: false,
1222
+ internalType: "contract IERC20",
1223
+ },
1224
+ ],
1225
+ anonymous: false,
1226
+ },
1227
+ {
1228
+ type: "event",
1229
+ name: "TokenUpdated",
1230
+ inputs: [
1231
+ {
1232
+ name: "newToken",
1233
+ type: "address",
1234
+ indexed: false,
1235
+ internalType: "contract IERC20",
1236
+ },
1237
+ ],
1238
+ anonymous: false,
1239
+ },
1240
+ {
1241
+ type: "event",
1242
+ name: "Unpaused",
1243
+ inputs: [
1244
+ {
1245
+ name: "account",
1246
+ type: "address",
1247
+ indexed: false,
1248
+ internalType: "address",
1249
+ },
1250
+ ],
1251
+ anonymous: false,
1252
+ },
1253
+ {
1254
+ type: "error",
1255
+ name: "AccessControlBadConfirmation",
1256
+ inputs: [],
1257
+ },
1258
+ {
1259
+ type: "error",
1260
+ name: "AccessControlUnauthorizedAccount",
1261
+ inputs: [
1262
+ {
1263
+ name: "account",
1264
+ type: "address",
1265
+ internalType: "address",
1266
+ },
1267
+ {
1268
+ name: "neededRole",
1269
+ type: "bytes32",
1270
+ internalType: "bytes32",
1271
+ },
1272
+ ],
1273
+ },
1274
+ {
1275
+ type: "error",
1276
+ name: "EnforcedPause",
1277
+ inputs: [],
1278
+ },
1279
+ {
1280
+ type: "error",
1281
+ name: "ExpectedPause",
1282
+ inputs: [],
1283
+ },
1284
+ {
1285
+ type: "error",
1286
+ name: "InsufficientInitialDeposit",
1287
+ inputs: [
1288
+ {
1289
+ name: "minInitialDepositUsd",
1290
+ type: "uint256",
1291
+ internalType: "uint256",
1292
+ },
1293
+ {
1294
+ name: "actualDeposit",
1295
+ type: "uint256",
1296
+ internalType: "uint256",
1297
+ },
1298
+ ],
1299
+ },
1300
+ {
1301
+ type: "error",
1302
+ name: "InvalidCooldownTime",
1303
+ inputs: [
1304
+ {
1305
+ name: "min",
1306
+ type: "uint256",
1307
+ internalType: "uint256",
1308
+ },
1309
+ {
1310
+ name: "max",
1311
+ type: "uint256",
1312
+ internalType: "uint256",
1313
+ },
1314
+ {
1315
+ name: "input",
1316
+ type: "uint256",
1317
+ internalType: "uint256",
1318
+ },
1319
+ ],
1320
+ },
1321
+ {
1322
+ type: "error",
1323
+ name: "InvalidCreationFee",
1324
+ inputs: [],
1325
+ },
1326
+ {
1327
+ type: "error",
1328
+ name: "InvalidFee",
1329
+ inputs: [],
1330
+ },
1331
+ {
1332
+ type: "error",
1333
+ name: "InvalidLedger",
1334
+ inputs: [],
1335
+ },
1336
+ {
1337
+ type: "error",
1338
+ name: "NoControllerEnabled",
1339
+ inputs: [],
1340
+ },
1341
+ {
1342
+ type: "error",
1343
+ name: "NoProtocolExtension",
1344
+ inputs: [],
1345
+ },
1346
+ {
1347
+ type: "error",
1348
+ name: "OwnableInvalidOwner",
1349
+ inputs: [
1350
+ {
1351
+ name: "owner",
1352
+ type: "address",
1353
+ internalType: "address",
1354
+ },
1355
+ ],
1356
+ },
1357
+ {
1358
+ type: "error",
1359
+ name: "OwnableUnauthorizedAccount",
1360
+ inputs: [
1361
+ {
1362
+ name: "account",
1363
+ type: "address",
1364
+ internalType: "address",
1365
+ },
1366
+ ],
1367
+ },
1368
+ {
1369
+ type: "error",
1370
+ name: "Unauthorized",
1371
+ inputs: [],
1372
+ },
1373
+ {
1374
+ type: "error",
1375
+ name: "UnregisteredReferrer",
1376
+ inputs: [
1377
+ {
1378
+ name: "referrer",
1379
+ type: "address",
1380
+ internalType: "address",
1381
+ },
1382
+ ],
1383
+ },
1384
+ {
1385
+ type: "error",
1386
+ name: "UnsupportedStablecoin",
1387
+ inputs: [
1388
+ {
1389
+ name: "coin",
1390
+ type: "address",
1391
+ internalType: "contract IERC20",
1392
+ },
1393
+ ],
1394
+ },
1395
+ ];
1396
+ const _bytecode = "0x608060405268056bc75e2d63100000600755683635c9adc5dea0000060085562015180600955348015610030575f5ffd5b506040516124f83803806124f883398101604081905261004f91610227565b80516001600160a01b03811661007e57604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b6100878161012b565b508051600480546001600160a01b039283166001600160a01b03199182168117909255602084015160038054918516918316919091179055604084015160058054918516918316919091179055606084015160028054919094169116179091556100ff905f5160206124d85f395f51905f529061017a565b50600354610124905f5160206124d85f395f51905f52906001600160a01b031661017a565b50506102af565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f8281526001602090815260408083206001600160a01b038516845290915281205460ff16610203575f8381526001602081815260408084206001600160a01b0387168086529252808420805460ff19169093179092559051339286917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9190a4506001610206565b505f5b92915050565b80516001600160a01b0381168114610222575f5ffd5b919050565b5f6080828403128015610238575f5ffd5b50604051608081016001600160401b038111828210171561026757634e487b7160e01b5f52604160045260245ffd5b6040526102738361020c565b81526102816020840161020c565b60208201526102926040840161020c565b60408201526102a36060840161020c565b60608201529392505050565b61221c806102bc5f395ff3fe60806040526004361061028b575f3560e01c806384145e3911610159578063dce0b4e4116100c0578063e94b0dd211610079578063e94b0dd2146108fa578063f2fde38b14610919578063f4fc357014610938578063f5ba342514610957578063f851a44014610976578063fc0c546a1461099557610294565b8063dce0b4e414610844578063e15be2ec14610859578063e25daa891461086e578063e2f273bd1461089c578063e3eab506146108bb578063e63ab1e9146108da57610294565b8063b417143d11610112578063b417143d1461078a578063b7d86225146107a9578063c415b95c146107c8578063c79dbc0b146107e7578063d2c35ce814610806578063d547741f1461082557610294565b806384145e39146106cc5780638456cb59146106fa5780638da5cb5b1461070e57806391d148541461072a57806396ba8bba14610749578063a217fddf1461077757610294565b80632de3153f116101fd57806356dd73d5116101b657806356dd73d51461061d5780635aa6e675146106495780635c975abb146106685780636a9f245314610685578063715018a6146106a45780637ef09801146106b857610294565b80632de3153f146105815780632f2ff15d1461059657806336568abe146105b55780633f4ba83a146105d45780635496b7c1146105e857806354d6df3d1461060757610294565b806318dcc3ab1161024f57806318dcc3ab146104045780631a6587e6146104b057806323ad623b146104cf578063248a9ca3146104ee57806325fd8e761461052b5780632d5537b01461054a57610294565b80630183c2db1461034357806301ffc9a71461036457806307cc8792146103985780630b6e46fe146103b75780630d68c037146103d657610294565b36610294575f5ffd5b6006545f9036906060906001600160a01b03166102c45760405163fc5e040160e01b815260040160405180910390fd5b6006546040515f9182916001600160a01b03909116906102e79083903690611a8d565b5f60405180830381855af49150503d805f811461031f576040519150601f19603f3d011682016040523d82523d5f602084013e610324565b606091505b50915091508161033657805160208201fd5b8051945060200192505050f35b34801561034e575f5ffd5b5061036261035d366004611ac0565b6109b4565b005b34801561036f575f5ffd5b5061038361037e366004611ae2565b610a60565b60405190151581526020015b60405180910390f35b3480156103a3575f5ffd5b506103626103b2366004611ac0565b610a96565b3480156103c2575f5ffd5b506103626103d1366004611ac0565b610aec565b3480156103e1575f5ffd5b506103836103f0366004611ac0565b600c6020525f908152604090205460ff1681565b34801561040f575f5ffd5b5061048361041e366004611ac0565b60408051606080820183525f80835260208084018290529284018190526001600160a01b03949094168452600f825292829020825193840183525461ffff80821685526201000082041691840191909152640100000000900460ff1615159082015290565b60408051825161ffff9081168252602080850151909116908201529181015115159082015260600161038f565b3480156104bb575f5ffd5b506103626104ca366004611ac0565b610b89565b3480156104da575f5ffd5b506103626104e9366004611ac0565b610c28565b3480156104f9575f5ffd5b5061051d610508366004611b09565b5f908152600160208190526040909120015490565b60405190815260200161038f565b348015610536575f5ffd5b50610362610545366004611ac0565b610c80565b348015610555575f5ffd5b50600654610569906001600160a01b031681565b6040516001600160a01b03909116815260200161038f565b34801561058c575f5ffd5b5061051d60085481565b3480156105a1575f5ffd5b506103626105b0366004611b20565b610cd6565b3480156105c0575f5ffd5b506103626105cf366004611b20565b610d01565b3480156105df575f5ffd5b50610362610d39565b3480156105f3575f5ffd5b50610362610602366004611b5f565b610d4b565b348015610612575f5ffd5b5061051d6276a70081565b348015610628575f5ffd5b5061063c610637366004611caa565b610ee8565b60405161038f9190611e4a565b348015610654575f5ffd5b50600454610569906001600160a01b031681565b348015610673575f5ffd5b505f54600160a01b900460ff16610383565b348015610690575f5ffd5b5061036261069f366004611f6b565b611213565b3480156106af575f5ffd5b50610362611253565b3480156106c3575f5ffd5b50610569611264565b3480156106d7575f5ffd5b506103836106e6366004611ac0565b600e6020525f908152604090205460ff1681565b348015610705575f5ffd5b50610362611308565b348015610719575f5ffd5b505f546001600160a01b0316610569565b348015610735575f5ffd5b50610383610744366004611b20565b61132a565b348015610754575f5ffd5b50610383610763366004611ac0565b600d6020525f908152604090205460ff1681565b348015610782575f5ffd5b5061051d5f81565b348015610795575f5ffd5b506103626107a4366004611ac0565b611354565b3480156107b4575f5ffd5b506103626107c3366004611b09565b6113af565b3480156107d3575f5ffd5b50600554610569906001600160a01b031681565b3480156107f2575f5ffd5b50610362610801366004611b09565b611422565b348015610811575f5ffd5b50610362610820366004611ac0565b61145f565b348015610830575f5ffd5b5061036261083f366004611b20565b6114b5565b34801561084f575f5ffd5b5061051d60075481565b348015610864575f5ffd5b5061051d60095481565b348015610879575f5ffd5b50610383610888366004611ac0565b600b6020525f908152604090205460ff1681565b3480156108a7575f5ffd5b506103626108b6366004611ac0565b6114da565b3480156108c6575f5ffd5b506103626108d5366004611f9b565b611528565b3480156108e5575f5ffd5b5061051d5f5160206121c75f395f51905f5281565b348015610905575f5ffd5b50610569610914366004611b09565b611608565b348015610924575f5ffd5b50610362610933366004611ac0565b611630565b348015610943575f5ffd5b50610362610952366004611ac0565b61166a565b348015610962575f5ffd5b50610362610971366004611b09565b6116c2565b348015610981575f5ffd5b50600354610569906001600160a01b031681565b3480156109a0575f5ffd5b50600254610569906001600160a01b031681565b6109bc611735565b60126109d0826001600160a01b0316611761565b60ff1611158190610a0557604051637fc06c0b60e01b81526001600160a01b0390911660048201526024015b60405180910390fd5b506001600160a01b0381165f818152600b6020908152604091829020805460ff1916600117905590519182527fdff67aae7f628a9bd5dfed3635b03ab70bf916a4bbd8ffbd75c9c98fd846621991015b60405180910390a150565b5f6001600160e01b03198216637965db0b60e01b1480610a9057506301ffc9a760e01b6001600160e01b03198316145b92915050565b610a9e611735565b600680546001600160a01b0319166001600160a01b0383169081179091556040519081527fb24d39404bc4c916b3b8d64177e32b07d4deb810929796f4364a5a1ec6d9005990602001610a55565b610af4611735565b6001600160a01b0381165f818152600c60209081526040808320805460ff19166001908117909155600a805491820181559093527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a890920180546001600160a01b0319168417905590519182527f0173c1687ba8ee47b801344036829c0df01e6b7461ae6c6090b2e389d29053699101610a55565b610b91611735565b6001600160a01b0381165f908152600b6020526040902054819060ff16610bd757604051637fc06c0b60e01b81526001600160a01b0390911660048201526024016109fc565b506001600160a01b0381165f818152600b6020908152604091829020805460ff1916905590519182527f4543202cc8112e41776f6f88b1cb75db49c28d63d8ae13cb7c4dec6767ec9f089101610a55565b610c30611735565b6001600160a01b0381165f818152600d6020908152604091829020805460ff1916905590519182527fc9dac7c0ef53b7e010194ddaddccf2725339391dc0c712d56bfe361e5aee6e659101610a55565b610c88611735565b600280546001600160a01b0319166001600160a01b0383169081179091556040519081527f5ba6b30cd4b2f9e9e67f4feb9b9df10d5da3b057598e6901b217b7d590345e3090602001610a55565b5f8281526001602081905260409091200154610cf18161181c565b610cfb8383611826565b50505050565b6001600160a01b0381163314610d2a5760405163334bd91960e11b815260040160405180910390fd5b610d34828261189c565b505050565b610d41611735565b610d49611907565b565b335f818152600f6020526040902054640100000000900460ff16610de6576109c461ffff84161115610d90576040516358d620b360e01b815260040160405180910390fd5b61019061ffff83161115610db7576040516358d620b360e01b815260040160405180910390fd5b6001600160a01b0381165f908152600f60205260409020805464ff000000001916640100000000179055610e6c565b6001600160a01b0381165f908152600f602052604090205461ffff9081169084161115610e26576040516358d620b360e01b815260040160405180910390fd5b6001600160a01b0381165f908152600f602052604090205461ffff6201000090910481169083161115610e6c576040516358d620b360e01b815260040160405180910390fd5b6001600160a01b0381165f818152600f6020908152604091829020805461ffff87811662010000810263ffffffff19909316918a169182179290921790925583519485529184015282820152517feae63edf03257306907129d8d44abcbce7c90893bcb0e0ee1606278a8929c43f9181900360600190a1505050565b604080516101c0810182525f60a08201818152606060c0840181905260e08401819052610100840183905261012084018390526101408401839052610160840183905261018084018390526101a08401839052908352602080840183905283850183905290830182905260808301829052338252600c9052919091205460ff16610f84576040516282b42960e81b815260040160405180910390fd5b81516060908101516001600160a01b03165f908152600b60205260409020548351909101519060ff16610fd657604051637fc06c0b60e01b81526001600160a01b0390911660048201526024016109fc565b50815f015160c0015163ffffffff166009541115801561100657506276a700825f015160c0015163ffffffff1611155b600954835160c0015190916276a700919061104b576040516346572a0160e01b81526004810193909352602483019190915263ffffffff1660448201526064016109fc565b50505061138861ffff16825f015160e0015161ffff161115611080576040516358d620b360e01b815260040160405180910390fd5b5f61109a835f0151606001516001600160a01b031661195b565b905080670de0b6b3a7640000845f0151608001516110b89190611ff7565b6110c2919061200e565b6040840181905260085484516080015190918211156110fd5760405163f5cbd5b760e01b8152600481019290925260248201526044016109fc565b5050670de0b6b3a7640000816007546111169190611ff7565b611120919061200e565b602084018190528351608001805161113990839061202d565b90525060075460408401805161115090839061202d565b9052508251516001600160a01b03165f908152600f602052604090205483515190640100000000900460ff166111a557604051635d81e60d60e01b81526001600160a01b0390911660048201526024016109fc565b506080830180516001600160a01b03165f908152600e602052604090819020805460ff191660011790559051845182015191517ffdc65c8d9fac83b0e9a154c9dcef5b2abd3b46c6577be48089a48c33742b763c926112049291612040565b60405180910390a15090919050565b61121b611735565b801561123857610d345f5160206121c75f395f51905f5283611826565b610d345f5160206121c75f395f51905f528361189c565b5050565b61125b611735565b610d495f611970565b600a545f905b80156112ef57600c5f600a61127e84612063565b9350838154811061129157611291612078565b5f9182526020808320909101546001600160a01b0316835282019290925260400190205460ff16156112ea57600a81815481106112d0576112d0612078565b5f918252602090912001546001600160a01b031692915050565b61126a565b604051634a699c7f60e11b815260040160405180910390fd5b5f5160206121c75f395f51905f5261131f8161181c565b6113276119bf565b50565b5f9182526001602090815260408084206001600160a01b0393909316845291905290205460ff1690565b61135c611735565b6001600160a01b0381165f818152600d6020908152604091829020805460ff1916600117905590519182527ff38bcccb2695d62310bd49c97cdce5aeb96cff24152d703bd42e98308bac407f9101610a55565b6113b7611735565b678ac7230489e800006008546113cd919061202d565b8111156113ed57604051635623662d60e01b815260040160405180910390fd5b60078190556040518181527f88a973fd5506071e0cf878b30898776c47d5250a7ee1e6ee0b36df3b03c7c16a90602001610a55565b61142a611735565b60098190556040518181527f802cdc1925f697e06b3baf833ef5bb4c3e203d1637cb0493e2202ed1e2701e7290602001610a55565b611467611735565b600580546001600160a01b0319166001600160a01b0383169081179091556040519081527fe5693914d19c789bdee50a362998c0bc8d035a835f9871da5d51152f0582c34f90602001610a55565b5f82815260016020819052604090912001546114d08161181c565b610cfb838361189c565b6114e2611735565b600380546001600160a01b0319166001600160a01b0383161790556040517ff661c108654330f655a81cfe47fef50e3d73561e7783028589d900d6e7f7bdb2905f90a150565b335f908152600c602052604090205460ff16611556576040516282b42960e81b815260040160405180910390fd5b6001600160a01b0382165f908152600e602052604090205460ff1661158e576040516328bb3bf960e21b815260040160405180910390fd5b6001600160a01b038281165f818152600e60209081526040808320805460ff199081169091558686168085529382902080549091166001179055805193845290830191909152918516917fa69ae98371921cd4da26eca87cfd43a36e4d72bb705cf4ef743c370e745f26de910160405180910390a2505050565b600a8181548110611617575f80fd5b5f918252602090912001546001600160a01b0316905081565b611638611735565b6001600160a01b03811661166157604051631e4fbdf760e01b81525f60048201526024016109fc565b61132781611970565b611672611735565b6001600160a01b0381165f818152600c6020908152604091829020805460ff1916905590519182527f6724241c2a5586919f61beb88989576ff872c11298fa428173b2319eeb933dba9101610a55565b6116ca611735565b678ac7230489e800006007546116e0919061208c565b81101561170057604051635623662d60e01b815260040160405180910390fd5b60088190556040518181527f3b7a0c8062aef2839f1549026fd519b7a4760d1fac65858b76515e2efe6b80b290602001610a55565b5f546001600160a01b03163314610d495760405163118cdaa760e01b81523360048201526024016109fc565b60408051600481526024810182526020810180516001600160e01b031663313ce56760e01b17905290515f918291829182916001600160a01b038716916117a79161209f565b5f60405180830381855afa9150503d805f81146117df576040519150601f19603f3d011682016040523d82523d5f602084013e6117e4565b606091505b50915091508180156117f7575080516020145b15611813578080602001905181019061181091906120b5565b92505b50909392505050565b6113278133611a01565b5f611831838361132a565b611895575f8381526001602081815260408084206001600160a01b0387168086529252808420805460ff19169093179092559051339286917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9190a4506001610a90565b505f610a90565b5f6118a7838361132a565b15611895575f8381526001602090815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a4506001610a90565b61190f611a3a565b5f805460ff60a01b191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b5f61196582611761565b610a9090600a6121b8565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6119c7611a63565b5f805460ff60a01b1916600160a01b1790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861193e3390565b611a0b828261132a565b61124f5760405163e2517d3f60e01b81526001600160a01b0382166004820152602481018390526044016109fc565b5f54600160a01b900460ff16610d4957604051638dfc202b60e01b815260040160405180910390fd5b5f54600160a01b900460ff1615610d495760405163d93c066560e01b815260040160405180910390fd5b818382375f9101908152919050565b6001600160a01b0381168114611327575f5ffd5b8035611abb81611a9c565b919050565b5f60208284031215611ad0575f5ffd5b8135611adb81611a9c565b9392505050565b5f60208284031215611af2575f5ffd5b81356001600160e01b031981168114611adb575f5ffd5b5f60208284031215611b19575f5ffd5b5035919050565b5f5f60408385031215611b31575f5ffd5b823591506020830135611b4381611a9c565b809150509250929050565b803561ffff81168114611abb575f5ffd5b5f5f60408385031215611b70575f5ffd5b611b7983611b4e565b9150611b8760208401611b4e565b90509250929050565b634e487b7160e01b5f52604160045260245ffd5b60405160a0810167ffffffffffffffff81118282101715611bc757611bc7611b90565b60405290565b604051610120810167ffffffffffffffff81118282101715611bc757611bc7611b90565b5f82601f830112611c00575f5ffd5b813567ffffffffffffffff811115611c1a57611c1a611b90565b604051601f8201601f19908116603f0116810167ffffffffffffffff81118282101715611c4957611c49611b90565b604052818152838201602001851015611c60575f5ffd5b816020850160208301375f918101602001919091529392505050565b80356bffffffffffffffffffffffff81168114611abb575f5ffd5b803563ffffffff81168114611abb575f5ffd5b5f60208284031215611cba575f5ffd5b813567ffffffffffffffff811115611cd0575f5ffd5b820160a08185031215611ce1575f5ffd5b611ce9611ba4565b813567ffffffffffffffff811115611cff575f5ffd5b82016101208187031215611d11575f5ffd5b611d19611bcd565b611d2282611ab0565b8152602082013567ffffffffffffffff811115611d3d575f5ffd5b611d4988828501611bf1565b602083015250604082013567ffffffffffffffff811115611d68575f5ffd5b611d7488828501611bf1565b604083015250611d8660608301611ab0565b606082015260808281013590820152611da160a08301611c7c565b60a0820152611db260c08301611c97565b60c0820152611dc360e08301611b4e565b60e0820152611dd56101008301611b4e565b6101008201528252506020828101359082015260408083013590820152611dfe60608301611ab0565b6060820152611e0f60808301611ab0565b6080820152949350505050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f825160a06020840152611e6e60c0840182516001600160a01b03169052565b602081015161012060e0850152611e896101e0850182611e1c565b9050604082015160bf1985830301610100860152611ea78282611e1c565b9150506060820151611ec56101208601826001600160a01b03169052565b50608082015161014085015260a08201516bffffffffffffffffffffffff1661016085015260c082015163ffffffff1661018085015260e082015161ffff9081166101a0860152610100909201519182166101c0850152602085015160408501526040850151606085015260608501519150611f4c60808501836001600160a01b03169052565b60808501516001600160a01b03811660a086015291505b949350505050565b5f5f60408385031215611f7c575f5ffd5b8235611f8781611a9c565b915060208301358015158114611b43575f5ffd5b5f5f5f60608486031215611fad575f5ffd5b8335611fb881611a9c565b92506020840135611fc881611a9c565b91506040840135611fd881611a9c565b809150509250925092565b634e487b7160e01b5f52601160045260245ffd5b8082028115828204841417610a9057610a90611fe3565b5f8261202857634e487b7160e01b5f52601260045260245ffd5b500490565b81810381811115610a9057610a90611fe3565b6001600160a01b03831681526040602082018190525f90611f6390830184611e1c565b5f8161207157612071611fe3565b505f190190565b634e487b7160e01b5f52603260045260245ffd5b80820180821115610a9057610a90611fe3565b5f82518060208501845e5f920191825250919050565b5f602082840312156120c5575f5ffd5b815160ff81168114611adb575f5ffd5b6001815b6001841115612110578085048111156120f4576120f4611fe3565b600184161561210257908102905b60019390931c9280026120d9565b935093915050565b5f8261212657506001610a90565b8161213257505f610a90565b816001811461214857600281146121525761216e565b6001915050610a90565b60ff84111561216357612163611fe3565b50506001821b610a90565b5060208310610133831016604e8410600b8410161715612191575081810a610a90565b61219d5f1984846120d5565b805f19048211156121b0576121b0611fe3565b029392505050565b5f611adb60ff84168361211856fe65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862aa2646970667358221220942214b529ea09a9dd4e1a908a011dc4b3d049cb09abba7a0c4126ea17afe39764736f6c634300081e003365d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a";
1397
+ const isSuperArgs = (xs) => xs.length > 1;
1398
+ export class Protocol__factory extends ContractFactory {
1399
+ constructor(...args) {
1400
+ if (isSuperArgs(args)) {
1401
+ super(...args);
1402
+ }
1403
+ else {
1404
+ super(_abi, _bytecode, args[0]);
1405
+ }
1406
+ }
1407
+ getDeployTransaction(config, overrides) {
1408
+ return super.getDeployTransaction(config, overrides || {});
1409
+ }
1410
+ deploy(config, overrides) {
1411
+ return super.deploy(config, overrides || {});
1412
+ }
1413
+ connect(runner) {
1414
+ return super.connect(runner);
1415
+ }
1416
+ static bytecode = _bytecode;
1417
+ static abi = _abi;
1418
+ static createInterface() {
1419
+ return new Interface(_abi);
1420
+ }
1421
+ static connect(address, runner) {
1422
+ return new Contract(address, _abi, runner);
1423
+ }
1424
+ }