@zoralabs/limit-orders 0.2.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 (208) hide show
  1. package/.turbo/turbo-build$colon$js.log +85 -0
  2. package/AUDIT_NOTES.md +33 -0
  3. package/AUDIT_RFP.md +408 -0
  4. package/CHANGELOG.md +25 -0
  5. package/GAS_COMPARISON_RESULTS.md +194 -0
  6. package/LICENSE +21 -0
  7. package/README.md +650 -0
  8. package/SPEC.md +291 -0
  9. package/abis/BalanceDeltaLibrary.json +15 -0
  10. package/abis/BeforeSwapDeltaLibrary.json +15 -0
  11. package/abis/CurrencyLibrary.json +25 -0
  12. package/abis/CustomRevert.json +28 -0
  13. package/abis/IAllowanceTransfer.json +486 -0
  14. package/abis/IAuthority.json +31 -0
  15. package/abis/ICoin.json +1074 -0
  16. package/abis/IDeployedCoinVersionLookup.json +21 -0
  17. package/abis/IDopplerErrors.json +44 -0
  18. package/abis/IEIP712.json +15 -0
  19. package/abis/IERC1363.json +373 -0
  20. package/abis/IERC165.json +21 -0
  21. package/abis/IERC20.json +185 -0
  22. package/abis/IERC20Minimal.json +172 -0
  23. package/abis/IERC6909Claims.json +288 -0
  24. package/abis/IERC7572.json +21 -0
  25. package/abis/IExtsload.json +64 -0
  26. package/abis/IExttload.json +40 -0
  27. package/abis/IHasCoinType.json +15 -0
  28. package/abis/IHasPoolKey.json +42 -0
  29. package/abis/IHasRewardsRecipients.json +54 -0
  30. package/abis/IHasSwapPath.json +60 -0
  31. package/abis/IHasTotalSupplyForPositions.json +15 -0
  32. package/abis/IHooks.json +789 -0
  33. package/abis/IMsgSender.json +15 -0
  34. package/abis/IPoolManager.json +1286 -0
  35. package/abis/IProtocolFees.json +174 -0
  36. package/abis/ISupportsLimitOrderFill.json +15 -0
  37. package/abis/ISwapPathRouter.json +92 -0
  38. package/abis/ISwapRouter.json +219 -0
  39. package/abis/IUniswapV3SwapCallback.json +25 -0
  40. package/abis/IUpgradeableDestinationV4Hook.json +84 -0
  41. package/abis/IUpgradeableDestinationV4HookWithUpdateableFee.json +95 -0
  42. package/abis/IUpgradeableV4Hook.json +112 -0
  43. package/abis/IZoraHookRegistry.json +188 -0
  44. package/abis/IZoraLimitOrderBook.json +623 -0
  45. package/abis/IZoraLimitOrderBookCoinsInterface.json +67 -0
  46. package/abis/IZoraV4CoinHook.json +610 -0
  47. package/abis/Permit2Payments.json +7 -0
  48. package/abis/Position.json +7 -0
  49. package/abis/SafeCast.json +7 -0
  50. package/abis/SafeCast160.json +7 -0
  51. package/abis/SafeERC20.json +34 -0
  52. package/abis/SimpleAccessManaged.json +57 -0
  53. package/abis/SimpleAccessManager.json +351 -0
  54. package/abis/SqrtPriceMath.json +22 -0
  55. package/abis/StateLibrary.json +80 -0
  56. package/abis/SwapLimitOrders.json +22 -0
  57. package/abis/SwapWithLimitOrders.json +457 -0
  58. package/abis/TickBitmap.json +18 -0
  59. package/abis/TickMath.json +24 -0
  60. package/abis/V3ToV4SwapLib.json +28 -0
  61. package/abis/ZoraLimitOrderBook.json +771 -0
  62. package/cache/solidity-files-cache.json +1 -0
  63. package/dist/index.cjs +760 -0
  64. package/dist/index.cjs.map +1 -0
  65. package/dist/index.d.ts +2 -0
  66. package/dist/index.d.ts.map +1 -0
  67. package/dist/index.js +731 -0
  68. package/dist/index.js.map +1 -0
  69. package/dist/wagmiGenerated.d.ts +1012 -0
  70. package/dist/wagmiGenerated.d.ts.map +1 -0
  71. package/foundry.toml +29 -0
  72. package/gas_comparison.py +49 -0
  73. package/out/BalanceDelta.sol/BalanceDeltaLibrary.json +1 -0
  74. package/out/BeforeSwapDelta.sol/BeforeSwapDeltaLibrary.json +1 -0
  75. package/out/BitMath.sol/BitMath.json +1 -0
  76. package/out/BytesLib.sol/BytesLib.json +1 -0
  77. package/out/CoinCommon.sol/CoinCommon.json +1 -0
  78. package/out/CoinConfigurationVersions.sol/CoinConfigurationVersions.json +1 -0
  79. package/out/CoinConstants.sol/CoinConstants.json +1 -0
  80. package/out/Context.sol/Context.json +1 -0
  81. package/out/Currency.sol/CurrencyLibrary.json +1 -0
  82. package/out/CurrencyReserves.sol/CurrencyReserves.json +1 -0
  83. package/out/CustomRevert.sol/CustomRevert.json +1 -0
  84. package/out/DopplerMath.sol/DopplerMath.json +1 -0
  85. package/out/FixedPoint128.sol/FixedPoint128.json +1 -0
  86. package/out/FixedPoint96.sol/FixedPoint96.json +1 -0
  87. package/out/FullMath.sol/FullMath.json +1 -0
  88. package/out/IAllowanceTransfer.sol/IAllowanceTransfer.json +1 -0
  89. package/out/IAuthority.sol/IAuthority.json +1 -0
  90. package/out/ICoin.sol/ICoin.json +1 -0
  91. package/out/ICoin.sol/IHasCoinType.json +1 -0
  92. package/out/ICoin.sol/IHasPoolKey.json +1 -0
  93. package/out/ICoin.sol/IHasSwapPath.json +1 -0
  94. package/out/ICoin.sol/IHasTotalSupplyForPositions.json +1 -0
  95. package/out/IDeployedCoinVersionLookup.sol/IDeployedCoinVersionLookup.json +1 -0
  96. package/out/IDopplerErrors.sol/IDopplerErrors.json +1 -0
  97. package/out/IEIP712.sol/IEIP712.json +1 -0
  98. package/out/IERC1363.sol/IERC1363.json +1 -0
  99. package/out/IERC165.sol/IERC165.json +1 -0
  100. package/out/IERC20.sol/IERC20.json +1 -0
  101. package/out/IERC20Minimal.sol/IERC20Minimal.json +1 -0
  102. package/out/IERC6909Claims.sol/IERC6909Claims.json +1 -0
  103. package/out/IERC7572.sol/IERC7572.json +1 -0
  104. package/out/IExtsload.sol/IExtsload.json +1 -0
  105. package/out/IExttload.sol/IExttload.json +1 -0
  106. package/out/IHasRewardsRecipients.sol/IHasRewardsRecipients.json +1 -0
  107. package/out/IHooks.sol/IHooks.json +1 -0
  108. package/out/IMsgSender.sol/IMsgSender.json +1 -0
  109. package/out/IPoolManager.sol/IPoolManager.json +1 -0
  110. package/out/IProtocolFees.sol/IProtocolFees.json +1 -0
  111. package/out/ISupportsLimitOrderFill.sol/ISupportsLimitOrderFill.json +1 -0
  112. package/out/ISwapPathRouter.sol/ISwapPathRouter.json +1 -0
  113. package/out/ISwapRouter.sol/ISwapRouter.json +1 -0
  114. package/out/IUniswapV3SwapCallback.sol/IUniswapV3SwapCallback.json +1 -0
  115. package/out/IUpgradeableV4Hook.sol/IUpgradeableDestinationV4Hook.json +1 -0
  116. package/out/IUpgradeableV4Hook.sol/IUpgradeableDestinationV4HookWithUpdateableFee.json +1 -0
  117. package/out/IUpgradeableV4Hook.sol/IUpgradeableV4Hook.json +1 -0
  118. package/out/IZoraHookRegistry.sol/IZoraHookRegistry.json +1 -0
  119. package/out/IZoraLimitOrderBook.sol/IZoraLimitOrderBook.json +1 -0
  120. package/out/IZoraLimitOrderBookCoinsInterface.sol/IZoraLimitOrderBookCoinsInterface.json +1 -0
  121. package/out/IZoraV4CoinHook.sol/IZoraV4CoinHook.json +1 -0
  122. package/out/LimitOrderBitmap.sol/LimitOrderBitmap.json +1 -0
  123. package/out/LimitOrderCommon.sol/LimitOrderCommon.json +1 -0
  124. package/out/LimitOrderCreate.sol/LimitOrderCreate.json +1 -0
  125. package/out/LimitOrderFill.sol/LimitOrderFill.json +1 -0
  126. package/out/LimitOrderLiquidity.sol/LimitOrderLiquidity.json +1 -0
  127. package/out/LimitOrderQueues.sol/LimitOrderQueues.json +1 -0
  128. package/out/LimitOrderStorage.sol/LimitOrderStorage.json +1 -0
  129. package/out/LimitOrderTypes.sol/LimitOrderTypes.json +1 -0
  130. package/out/LimitOrderWithdraw.sol/LimitOrderWithdraw.json +1 -0
  131. package/out/LiquidityAmounts.sol/LiquidityAmounts.json +1 -0
  132. package/out/LiquidityMath.sol/LiquidityMath.json +1 -0
  133. package/out/Lock.sol/Lock.json +1 -0
  134. package/out/NonzeroDeltaCount.sol/NonzeroDeltaCount.json +1 -0
  135. package/out/Path.sol/Path.json +1 -0
  136. package/out/PathKey.sol/PathKeyLibrary.json +1 -0
  137. package/out/Permit2Payments.sol/Permit2Payments.json +1 -0
  138. package/out/PoolId.sol/PoolIdLibrary.json +1 -0
  139. package/out/Position.sol/Position.json +1 -0
  140. package/out/SafeCast.sol/SafeCast.json +1 -0
  141. package/out/SafeCast160.sol/SafeCast160.json +1 -0
  142. package/out/SafeERC20.sol/SafeERC20.json +1 -0
  143. package/out/SimpleAccessManaged.sol/SimpleAccessManaged.json +1 -0
  144. package/out/SimpleAccessManager.sol/SimpleAccessManager.json +1 -0
  145. package/out/SqrtPriceMath.sol/SqrtPriceMath.json +1 -0
  146. package/out/StateLibrary.sol/StateLibrary.json +1 -0
  147. package/out/SwapLimitOrders.sol/SwapLimitOrders.json +1 -0
  148. package/out/SwapWithLimitOrders.sol/SwapWithLimitOrders.json +1 -0
  149. package/out/TickBitmap.sol/TickBitmap.json +1 -0
  150. package/out/TickMath.sol/TickMath.json +1 -0
  151. package/out/TransientSlot.sol/TransientSlot.json +1 -0
  152. package/out/TransientStateLibrary.sol/TransientStateLibrary.json +1 -0
  153. package/out/UniV4SwapToCurrency.sol/UniV4SwapToCurrency.json +1 -0
  154. package/out/UnsafeMath.sol/UnsafeMath.json +1 -0
  155. package/out/V3ToV4SwapLib.sol/V3ToV4SwapLib.json +1 -0
  156. package/out/ZoraLimitOrderBook.sol/ZoraLimitOrderBook.json +1 -0
  157. package/out/build-info/69718f10d1dc37f0.json +1 -0
  158. package/out/uniswap/BitMath.sol/BitMath.json +1 -0
  159. package/out/uniswap/CustomRevert.sol/CustomRevert.json +1 -0
  160. package/out/uniswap/FullMath.sol/FullMath.json +1 -0
  161. package/out/uniswap/SafeCast.sol/SafeCast.json +1 -0
  162. package/out/uniswap/TickMath.sol/TickMath.json +1 -0
  163. package/package/index.ts +1 -0
  164. package/package/wagmiGenerated.ts +738 -0
  165. package/package.json +57 -0
  166. package/remappings.txt +11 -0
  167. package/src/IZoraLimitOrderBook.sol +195 -0
  168. package/src/ZoraLimitOrderBook.sol +220 -0
  169. package/src/access/SimpleAccessManaged.sol +76 -0
  170. package/src/access/SimpleAccessManager.sol +268 -0
  171. package/src/libs/LimitOrderBitmap.sol +84 -0
  172. package/src/libs/LimitOrderCommon.sol +91 -0
  173. package/src/libs/LimitOrderCreate.sol +277 -0
  174. package/src/libs/LimitOrderFill.sol +362 -0
  175. package/src/libs/LimitOrderLiquidity.sol +222 -0
  176. package/src/libs/LimitOrderQueues.sol +101 -0
  177. package/src/libs/LimitOrderStorage.sol +34 -0
  178. package/src/libs/LimitOrderTypes.sol +41 -0
  179. package/src/libs/LimitOrderWithdraw.sol +100 -0
  180. package/src/libs/Permit2Payments.sol +41 -0
  181. package/src/libs/SwapLimitOrders.sol +209 -0
  182. package/src/router/SwapWithLimitOrders.sol +454 -0
  183. package/test/LimitOrderAccessControl.t.sol +461 -0
  184. package/test/LimitOrderBitmap.t.sol +194 -0
  185. package/test/LimitOrderCreate.t.sol +348 -0
  186. package/test/LimitOrderFill.t.sol +1005 -0
  187. package/test/LimitOrderLibraries.t.sol +354 -0
  188. package/test/LimitOrderLiquidityPayouts.t.sol +333 -0
  189. package/test/LimitOrderV4Pools.t.sol +157 -0
  190. package/test/LimitOrderWithdraw.t.sol +653 -0
  191. package/test/SimpleAccessManager.t.sol +420 -0
  192. package/test/SwapWithLimitOrders.t.sol +107 -0
  193. package/test/SwapWithLimitOrdersRouter.t.sol +1073 -0
  194. package/test/gas/LimitOrderFillGas.t.sol +1008 -0
  195. package/test/gas/LimitOrderSwapGas.t.sol +403 -0
  196. package/test/gas/logs/gas_benchmarks_fill_20251201.log +30 -0
  197. package/test/gas/logs/gas_benchmarks_swap_20251201.log +27 -0
  198. package/test/unit/LimitOrderBitmapUnit.t.sol +276 -0
  199. package/test/unit/LimitOrderCreateUnit.t.sol +358 -0
  200. package/test/unit/SwapLimitOrdersUnit.t.sol +672 -0
  201. package/test/unit/SwapLimitOrdersValidation.t.sol +423 -0
  202. package/test/unit/SwapWithLimitOrdersUnit.t.sol +321 -0
  203. package/test/utils/BaseTest.sol +793 -0
  204. package/test/utils/TestableZoraLimitOrderBook.sol +54 -0
  205. package/tsconfig.build.json +10 -0
  206. package/tsconfig.json +9 -0
  207. package/tsup.config.ts +11 -0
  208. package/wagmi.config.ts +18 -0
@@ -0,0 +1 @@
1
+ {"abi":[{"type":"error","name":"SafeCastOverflow","inputs":[]}],"bytecode":{"object":"0x6080806040523460175760039081601c823930815050f35b5f80fdfe5f80fd","sourceMap":"201:2067:28:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x5f80fd","sourceMap":"201:2067:28:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"SafeCastOverflow\",\"type\":\"error\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"Safe casting methods\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Contains methods for safely casting between types\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@uniswap/v4-core/src/libraries/SafeCast.sol\":\"SafeCast\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@uniswap/universal-router/contracts/=node_modules/@uniswap/universal-router/contracts/\",\":@uniswap/v4-core/=node_modules/@uniswap/v4-core/\",\":@uniswap/v4-periphery/=node_modules/@uniswap/v4-periphery/\",\":@zoralabs/coins/=node_modules/@zoralabs/coins/\",\":@zoralabs/shared-contracts/=node_modules/@zoralabs/shared-contracts/src/\",\":ds-test/=node_modules/ds-test/src/\",\":forge-std/=node_modules/forge-std/src/\",\":permit2/src/=node_modules/@uniswap/permit2/src/\",\":solady/=node_modules/solady/src/\",\":solmate/=node_modules/solmate/src/\"],\"viaIR\":true},\"sources\":{\"node_modules/@uniswap/v4-core/src/libraries/CustomRevert.sol\":{\"keccak256\":\"0x111ed3031b6990c80a93ae35dde6b6ac0b7e6af471388fdd7461e91edda9b7de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c9ea883c98d6ae1829160d0977bb5195761cfd5bc81692d0a941f45717f594cd\",\"dweb:/ipfs/QmZPwxzaeMNv536wzrAMrMswu7vMHuqPVpjcqL3YvCMoxt\"]},\"node_modules/@uniswap/v4-core/src/libraries/SafeCast.sol\":{\"keccak256\":\"0x42c4a24f996a14d358be397b71f7ec9d7daf666aaec78002c63315a6ee67aa86\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c3db86e2ba3679105fc32edec656c70282e1fede6cab11217702443f6c26fa59\",\"dweb:/ipfs/QmX4yaaSPdKQzYNRsezjTvZKsubzS8JRTEGFD3fPpTTCcj\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.28+commit.7893614a"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"SafeCastOverflow"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@uniswap/universal-router/contracts/=node_modules/@uniswap/universal-router/contracts/","@uniswap/v4-core/=node_modules/@uniswap/v4-core/","@uniswap/v4-periphery/=node_modules/@uniswap/v4-periphery/","@zoralabs/coins/=node_modules/@zoralabs/coins/","@zoralabs/shared-contracts/=node_modules/@zoralabs/shared-contracts/src/","ds-test/=node_modules/ds-test/src/","forge-std/=node_modules/forge-std/src/","permit2/src/=node_modules/@uniswap/permit2/src/","solady/=node_modules/solady/src/","solmate/=node_modules/solmate/src/"],"optimizer":{"enabled":true,"runs":100},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"node_modules/@uniswap/v4-core/src/libraries/SafeCast.sol":"SafeCast"},"evmVersion":"prague","libraries":{},"viaIR":true},"sources":{"node_modules/@uniswap/v4-core/src/libraries/CustomRevert.sol":{"keccak256":"0x111ed3031b6990c80a93ae35dde6b6ac0b7e6af471388fdd7461e91edda9b7de","urls":["bzz-raw://c9ea883c98d6ae1829160d0977bb5195761cfd5bc81692d0a941f45717f594cd","dweb:/ipfs/QmZPwxzaeMNv536wzrAMrMswu7vMHuqPVpjcqL3YvCMoxt"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/libraries/SafeCast.sol":{"keccak256":"0x42c4a24f996a14d358be397b71f7ec9d7daf666aaec78002c63315a6ee67aa86","urls":["bzz-raw://c3db86e2ba3679105fc32edec656c70282e1fede6cab11217702443f6c26fa59","dweb:/ipfs/QmX4yaaSPdKQzYNRsezjTvZKsubzS8JRTEGFD3fPpTTCcj"],"license":"MIT"}},"version":1},"id":28}
@@ -0,0 +1 @@
1
+ {"abi":[{"type":"error","name":"UnsafeCast","inputs":[]}],"bytecode":{"object":"0x6080806040523460175760039081601c823930815050f35b5f80fdfe5f80fd","sourceMap":"58:396:11:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x5f80fd","sourceMap":"58:396:11:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"UnsafeCast\",\"type\":\"error\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"errors\":{\"UnsafeCast()\":[{\"notice\":\"Thrown when a valude greater than type(uint160).max is cast to uint160\"}]},\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@uniswap/permit2/src/libraries/SafeCast160.sol\":\"SafeCast160\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@uniswap/universal-router/contracts/=node_modules/@uniswap/universal-router/contracts/\",\":@uniswap/v4-core/=node_modules/@uniswap/v4-core/\",\":@uniswap/v4-periphery/=node_modules/@uniswap/v4-periphery/\",\":@zoralabs/coins/=node_modules/@zoralabs/coins/\",\":@zoralabs/shared-contracts/=node_modules/@zoralabs/shared-contracts/src/\",\":ds-test/=node_modules/ds-test/src/\",\":forge-std/=node_modules/forge-std/src/\",\":permit2/src/=node_modules/@uniswap/permit2/src/\",\":solady/=node_modules/solady/src/\",\":solmate/=node_modules/solmate/src/\"],\"viaIR\":true},\"sources\":{\"node_modules/@uniswap/permit2/src/libraries/SafeCast160.sol\":{\"keccak256\":\"0x8a34e2beac108d74f89510c949983212b5f09307a93ee9e17a9d50e93f6bc8e9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://828697f9567ce617c5c1c8f76b6bcd250e93aea2c4f3ee188be6dff8443c19e7\",\"dweb:/ipfs/QmafxeSPhUc9gGtNDLAw26oZooC5XNLhDMxHxYhJxL5Nwi\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.28+commit.7893614a"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"UnsafeCast"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@uniswap/universal-router/contracts/=node_modules/@uniswap/universal-router/contracts/","@uniswap/v4-core/=node_modules/@uniswap/v4-core/","@uniswap/v4-periphery/=node_modules/@uniswap/v4-periphery/","@zoralabs/coins/=node_modules/@zoralabs/coins/","@zoralabs/shared-contracts/=node_modules/@zoralabs/shared-contracts/src/","ds-test/=node_modules/ds-test/src/","forge-std/=node_modules/forge-std/src/","permit2/src/=node_modules/@uniswap/permit2/src/","solady/=node_modules/solady/src/","solmate/=node_modules/solmate/src/"],"optimizer":{"enabled":true,"runs":100},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"node_modules/@uniswap/permit2/src/libraries/SafeCast160.sol":"SafeCast160"},"evmVersion":"prague","libraries":{},"viaIR":true},"sources":{"node_modules/@uniswap/permit2/src/libraries/SafeCast160.sol":{"keccak256":"0x8a34e2beac108d74f89510c949983212b5f09307a93ee9e17a9d50e93f6bc8e9","urls":["bzz-raw://828697f9567ce617c5c1c8f76b6bcd250e93aea2c4f3ee188be6dff8443c19e7","dweb:/ipfs/QmafxeSPhUc9gGtNDLAw26oZooC5XNLhDMxHxYhJxL5Nwi"],"license":"MIT"}},"version":1},"id":11}
@@ -0,0 +1 @@
1
+ {"abi":[{"type":"error","name":"SafeERC20FailedDecreaseAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"currentAllowance","type":"uint256","internalType":"uint256"},{"name":"requestedDecrease","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x6080806040523460175760039081601c823930815050f35b5f80fdfe5f80fd","sourceMap":"698:9376:5:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x5f80fd","sourceMap":"698:9376:5:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"currentAllowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"requestedDecrease\",\"type\":\"uint256\"}],\"name\":\"SafeERC20FailedDecreaseAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Wrappers around ERC-20 operations that throw on failure (when the token contract returns false). Tokens that return no value (and instead revert or throw on failure) are also supported, non-reverting calls are assumed to be successful. To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract, which allows you to call the safe operations as `token.safeTransfer(...)`, etc.\",\"errors\":{\"SafeERC20FailedDecreaseAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failed `decreaseAllowance` request.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC-20 token failed.\"}]},\"kind\":\"dev\",\"methods\":{},\"title\":\"SafeERC20\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":\"SafeERC20\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@uniswap/universal-router/contracts/=node_modules/@uniswap/universal-router/contracts/\",\":@uniswap/v4-core/=node_modules/@uniswap/v4-core/\",\":@uniswap/v4-periphery/=node_modules/@uniswap/v4-periphery/\",\":@zoralabs/coins/=node_modules/@zoralabs/coins/\",\":@zoralabs/shared-contracts/=node_modules/@zoralabs/shared-contracts/src/\",\":ds-test/=node_modules/ds-test/src/\",\":forge-std/=node_modules/forge-std/src/\",\":permit2/src/=node_modules/@uniswap/permit2/src/\",\":solady/=node_modules/solady/src/\",\":solmate/=node_modules/solmate/src/\"],\"viaIR\":true},\"sources\":{\"node_modules/@openzeppelin/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0xd5ea07362ab630a6a3dee4285a74cf2377044ca2e4be472755ad64d7c5d4b69d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da5e832b40fc5c3145d3781e2e5fa60ac2052c9d08af7e300dc8ab80c4343100\",\"dweb:/ipfs/QmTzf7N5ZUdh5raqtzbM11yexiUoLC9z3Ws632MCuycq1d\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0x0afcb7e740d1537b252cb2676f600465ce6938398569f09ba1b9ca240dde2dfc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1c299900ac4ec268d4570ecef0d697a3013cd11a6eb74e295ee3fbc945056037\",\"dweb:/ipfs/Qmab9owJoxcA7vJT5XNayCMaUR1qxqj1NDzzisduwaJMcZ\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0x1a6221315ce0307746c2c4827c125d821ee796c74a676787762f4778671d4f44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1bb2332a7ee26dd0b0de9b7fe266749f54820c99ab6a3bcb6f7e6b751d47ee2d\",\"dweb:/ipfs/QmcRWpaBeCYkhy68PR3B4AgD7asuQk7PwkWxrvJbZcikLF\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303\",\"dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x982c5cb790ab941d1e04f807120a71709d4c313ba0bfc16006447ffbd27fbbd5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8150ceb4ac947e8a442b2a9c017e01e880b2be2dd958f1fa9bc405f4c5a86508\",\"dweb:/ipfs/QmbcBmFX66AY6Kbhnd5gx7zpkgqnUafo43XnmayAM7zVdB\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x8891738ffe910f0cf2da09566928589bf5d63f4524dd734fd9cedbac3274dd5c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://971f954442df5c2ef5b5ebf1eb245d7105d9fbacc7386ee5c796df1d45b21617\",\"dweb:/ipfs/QmadRjHbkicwqwwh61raUEapaVEtaLMcYbQZWs9gUkgj3u\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.28+commit.7893614a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"currentAllowance","type":"uint256"},{"internalType":"uint256","name":"requestedDecrease","type":"uint256"}],"type":"error","name":"SafeERC20FailedDecreaseAllowance"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"SafeERC20FailedOperation"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@uniswap/universal-router/contracts/=node_modules/@uniswap/universal-router/contracts/","@uniswap/v4-core/=node_modules/@uniswap/v4-core/","@uniswap/v4-periphery/=node_modules/@uniswap/v4-periphery/","@zoralabs/coins/=node_modules/@zoralabs/coins/","@zoralabs/shared-contracts/=node_modules/@zoralabs/shared-contracts/src/","ds-test/=node_modules/ds-test/src/","forge-std/=node_modules/forge-std/src/","permit2/src/=node_modules/@uniswap/permit2/src/","solady/=node_modules/solady/src/","solmate/=node_modules/solmate/src/"],"optimizer":{"enabled":true,"runs":100},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":"SafeERC20"},"evmVersion":"prague","libraries":{},"viaIR":true},"sources":{"node_modules/@openzeppelin/contracts/interfaces/IERC1363.sol":{"keccak256":"0xd5ea07362ab630a6a3dee4285a74cf2377044ca2e4be472755ad64d7c5d4b69d","urls":["bzz-raw://da5e832b40fc5c3145d3781e2e5fa60ac2052c9d08af7e300dc8ab80c4343100","dweb:/ipfs/QmTzf7N5ZUdh5raqtzbM11yexiUoLC9z3Ws632MCuycq1d"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC165.sol":{"keccak256":"0x0afcb7e740d1537b252cb2676f600465ce6938398569f09ba1b9ca240dde2dfc","urls":["bzz-raw://1c299900ac4ec268d4570ecef0d697a3013cd11a6eb74e295ee3fbc945056037","dweb:/ipfs/Qmab9owJoxcA7vJT5XNayCMaUR1qxqj1NDzzisduwaJMcZ"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC20.sol":{"keccak256":"0x1a6221315ce0307746c2c4827c125d821ee796c74a676787762f4778671d4f44","urls":["bzz-raw://1bb2332a7ee26dd0b0de9b7fe266749f54820c99ab6a3bcb6f7e6b751d47ee2d","dweb:/ipfs/QmcRWpaBeCYkhy68PR3B4AgD7asuQk7PwkWxrvJbZcikLF"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2","urls":["bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303","dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x982c5cb790ab941d1e04f807120a71709d4c313ba0bfc16006447ffbd27fbbd5","urls":["bzz-raw://8150ceb4ac947e8a442b2a9c017e01e880b2be2dd958f1fa9bc405f4c5a86508","dweb:/ipfs/QmbcBmFX66AY6Kbhnd5gx7zpkgqnUafo43XnmayAM7zVdB"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x8891738ffe910f0cf2da09566928589bf5d63f4524dd734fd9cedbac3274dd5c","urls":["bzz-raw://971f954442df5c2ef5b5ebf1eb245d7105d9fbacc7386ee5c796df1d45b21617","dweb:/ipfs/QmadRjHbkicwqwwh61raUEapaVEtaLMcYbQZWs9gUkgj3u"],"license":"MIT"}},"version":1},"id":5}
@@ -0,0 +1 @@
1
+ {"abi":[{"type":"function","name":"authority","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"setAuthority","inputs":[{"name":"newAuthority","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"AuthorityUpdated","inputs":[{"name":"authority","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AccessManagedInvalidAuthority","inputs":[{"name":"authority","type":"address","internalType":"address"}]},{"type":"error","name":"AccessManagedUnauthorized","inputs":[]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"authority()":"bf7e214f","setAuthority(address)":"7a9e5e4b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"authority\",\"type\":\"address\"}],\"name\":\"AccessManagedInvalidAuthority\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AccessManagedUnauthorized\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"authority\",\"type\":\"address\"}],\"name\":\"AuthorityUpdated\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"authority\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newAuthority\",\"type\":\"address\"}],\"name\":\"setAuthority\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"This contract module makes a contract \\\"access managed\\\", allowing an authority contract to control access to specific functions. This is a simplified version of OpenZeppelin's AccessManaged that removes time-based access control features (delays, scheduled operations) and only supports immediate access checks. The authority is set during construction and can only be changed by the current authority.\",\"errors\":{\"AccessManagedInvalidAuthority(address)\":[{\"details\":\"Thrown when trying to set an invalid authority (e.g., not a contract)\"}],\"AccessManagedUnauthorized()\":[{\"details\":\"Thrown when an unauthorized caller attempts to access a restricted function\"}]},\"events\":{\"AuthorityUpdated(address)\":{\"details\":\"Emitted when the authority is updated\"}},\"kind\":\"dev\",\"methods\":{\"authority()\":{\"details\":\"Returns the current authority address.\",\"returns\":{\"_0\":\"The address of the authority contract\"}},\"constructor\":{\"details\":\"Initializes the contract with an initial authority.\",\"params\":{\"initialAuthority\":\"The address of the authority contract\"}},\"setAuthority(address)\":{\"details\":\"Transfers control of the contract to a new authority. Can only be called by the current authority.\",\"params\":{\"newAuthority\":\"The address of the new authority contract\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/access/SimpleAccessManaged.sol\":\"SimpleAccessManaged\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@uniswap/universal-router/contracts/=node_modules/@uniswap/universal-router/contracts/\",\":@uniswap/v4-core/=node_modules/@uniswap/v4-core/\",\":@uniswap/v4-periphery/=node_modules/@uniswap/v4-periphery/\",\":@zoralabs/coins/=node_modules/@zoralabs/coins/\",\":@zoralabs/shared-contracts/=node_modules/@zoralabs/shared-contracts/src/\",\":ds-test/=node_modules/ds-test/src/\",\":forge-std/=node_modules/forge-std/src/\",\":permit2/src/=node_modules/@uniswap/permit2/src/\",\":solady/=node_modules/solady/src/\",\":solmate/=node_modules/solmate/src/\"],\"viaIR\":true},\"sources\":{\"node_modules/@openzeppelin/contracts/access/manager/IAuthority.sol\":{\"keccak256\":\"0x9c9a58dd831b9bb4a0ea47d96b53c13ab9a6e4270a518ea395b1424092fd74dc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d806b0c87fbcaf0cb827b51203b27f8289b13743aeadb5867fbbe041fcf87a92\",\"dweb:/ipfs/QmfTEGiDGxKDaqBuBJ5wWJockGDrsEBZnW5S7UWrKhAxGc\"]},\"src/access/SimpleAccessManaged.sol\":{\"keccak256\":\"0xd92f23941a7a5709efdb66928036b6812d6742eca3b4d7d1ff42197a7b8916c8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6ea18ad22ef178f454a65f55fcb29cdbd45396e1da3bab178357c54162be0269\",\"dweb:/ipfs/QmZVGjcJ1v6bFaG3VTkGZHz3Fb32xZ4KBDmAxdJHxdQzBM\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.28+commit.7893614a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"authority","type":"address"}],"type":"error","name":"AccessManagedInvalidAuthority"},{"inputs":[],"type":"error","name":"AccessManagedUnauthorized"},{"inputs":[{"internalType":"address","name":"authority","type":"address","indexed":false}],"type":"event","name":"AuthorityUpdated","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"authority","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"newAuthority","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setAuthority"}],"devdoc":{"kind":"dev","methods":{"authority()":{"details":"Returns the current authority address.","returns":{"_0":"The address of the authority contract"}},"constructor":{"details":"Initializes the contract with an initial authority.","params":{"initialAuthority":"The address of the authority contract"}},"setAuthority(address)":{"details":"Transfers control of the contract to a new authority. Can only be called by the current authority.","params":{"newAuthority":"The address of the new authority contract"}}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@uniswap/universal-router/contracts/=node_modules/@uniswap/universal-router/contracts/","@uniswap/v4-core/=node_modules/@uniswap/v4-core/","@uniswap/v4-periphery/=node_modules/@uniswap/v4-periphery/","@zoralabs/coins/=node_modules/@zoralabs/coins/","@zoralabs/shared-contracts/=node_modules/@zoralabs/shared-contracts/src/","ds-test/=node_modules/ds-test/src/","forge-std/=node_modules/forge-std/src/","permit2/src/=node_modules/@uniswap/permit2/src/","solady/=node_modules/solady/src/","solmate/=node_modules/solmate/src/"],"optimizer":{"enabled":true,"runs":100},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"src/access/SimpleAccessManaged.sol":"SimpleAccessManaged"},"evmVersion":"prague","libraries":{},"viaIR":true},"sources":{"node_modules/@openzeppelin/contracts/access/manager/IAuthority.sol":{"keccak256":"0x9c9a58dd831b9bb4a0ea47d96b53c13ab9a6e4270a518ea395b1424092fd74dc","urls":["bzz-raw://d806b0c87fbcaf0cb827b51203b27f8289b13743aeadb5867fbbe041fcf87a92","dweb:/ipfs/QmfTEGiDGxKDaqBuBJ5wWJockGDrsEBZnW5S7UWrKhAxGc"],"license":"MIT"},"src/access/SimpleAccessManaged.sol":{"keccak256":"0xd92f23941a7a5709efdb66928036b6812d6742eca3b4d7d1ff42197a7b8916c8","urls":["bzz-raw://6ea18ad22ef178f454a65f55fcb29cdbd45396e1da3bab178357c54162be0269","dweb:/ipfs/QmZVGjcJ1v6bFaG3VTkGZHz3Fb32xZ4KBDmAxdJHxdQzBM"],"license":"MIT"}},"version":1},"id":76}
@@ -0,0 +1 @@
1
+ {"abi":[{"type":"constructor","inputs":[{"name":"initialAdmin","type":"address","internalType":"address"},{"name":"initialFunctionRoles","type":"tuple[]","internalType":"struct SimpleAccessManager.InitialFunctionRole[]","components":[{"name":"selector","type":"bytes4","internalType":"bytes4"},{"name":"roleId","type":"uint64","internalType":"uint64"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"PUBLIC_ROLE","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"canCall","inputs":[{"name":"caller","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"},{"name":"selector","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"getFunctionRole","inputs":[{"name":"selector","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"roleId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"roleId","type":"uint64","internalType":"uint64"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"roleId","type":"uint64","internalType":"uint64"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"renounceRole","inputs":[{"name":"roleId","type":"uint64","internalType":"uint64"},{"name":"callerConfirmation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"roleId","type":"uint64","internalType":"uint64"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setFunctionRole","inputs":[{"name":"selector","type":"bytes4","internalType":"bytes4"},{"name":"roleId","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setRoleAdmin","inputs":[{"name":"roleId","type":"uint64","internalType":"uint64"},{"name":"admin","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"FunctionRoleUpdated","inputs":[{"name":"selector","type":"bytes4","indexed":true,"internalType":"bytes4"},{"name":"roleId","type":"uint64","indexed":true,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"roleId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"admin","type":"uint64","indexed":true,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"roleId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"account","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"roleId","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"account","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AccessManagerInvalidInitialAdmin","inputs":[{"name":"initialAdmin","type":"address","internalType":"address"}]},{"type":"error","name":"AccessManagerLockedRole","inputs":[{"name":"roleId","type":"uint64","internalType":"uint64"}]},{"type":"error","name":"AccessManagerUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"roleId","type":"uint64","internalType":"uint64"}]}],"bytecode":{"object":"0x60806040523461022357610919803803806100198161023b565b9283398101906040818303126102235780516001600160a01b0381169190829003610223576020810151906001600160401b038211610223570182601f82011215610223578051906001600160401b0382116102275761007e60208360051b0161023b565b9360208086858152019360061b8301019181831161022357602001925b8284106101bc57858580156101a9575f8181525f5160206108f95f395f51905f52602052604090205460ff161561015b575b505f5b815181101561014c576001906001600160e01b03196100ef8285610260565b515116828060401b0360206101048487610260565b5101511690805f525f60205260405f2082858060401b03198254161790557fa3e0b2a435476f7258ef6426c5ccc383db5cef84c531fc21905af2a5872a6d015f80a3016100d0565b60405161067090816102898239f35b5f8181525f5160206108f95f395f51905f5260205260408120805460ff191660011790557faad194d4c741066ed559517462aa599f8be124ae17cf4832c66a3a2958f277268180a3816100cd565b630409d6d160e11b5f525f60045260245ffd5b6040848303126102235760408051919082016001600160401b038111838210176102275760405284516001600160e01b0319811681036102235782526020850151906001600160401b0382168203610223578260209283604095015281520193019261009b565b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b6040519190601f01601f191682016001600160401b0381118382101761022757604052565b80518210156102745760209160051b010190565b634e487b7160e01b5f52603260045260245ffdfe60806040526004361015610011575f80fd5b5f3560e01c806330cae187146104625780633ca7c02a14610441578063530dd4561461040057806375b238fc146103e65780638e11fde6146103a5578063aa682ab614610303578063b428b0b0146101f9578063b700961314610199578063b7d2b16214610128578063d1f856ee146100f25763fe0776f514610092575f80fd5b346100ee5760403660031901126100ee576100ab610501565b6100b3610544565b336001600160a01b038216036100ce576100cc916105d8565b005b6001600160401b038263f07e038f60e01b5f52336004521660245260445ffd5b5f80fd5b346100ee5760403660031901126100ee57602061011e610110610501565b610118610544565b90610596565b6040519015158152f35b346100ee5760403660031901126100ee57610141610501565b610149610544565b6001600160401b0382165f5260026020526001600160401b0360405f205416916101733384610596565b15610182576100cc92506105d8565b8263f07e038f60e01b5f523360045260245260445ffd5b346100ee5760603660031901126100ee576004356001600160a01b03811681036100ee576101c5610544565b5060443563ffffffff60e01b81168091036100ee5760209161011e915f525f83526001600160401b0360405f205416610596565b346100ee5760403660031901126100ee57610212610501565b6001600160401b03610222610544565b911690815f5260026020526001600160401b0360405f2054166102453382610596565b156102ed57506001600160401b0382146102da57815f52600160205260405f2060018060a01b0382165f5260205260ff60405f2054161561028257005b815f52600160205260405f2060018060a01b0382165f5260205260405f20600160ff1982541617905560018060a01b0316907faad194d4c741066ed559517462aa599f8be124ae17cf4832c66a3a2958f277265f80a3005b5063061c6a4360e21b5f5260045260245ffd5b63f07e038f60e01b5f523360045260245260445ffd5b346100ee5760403660031901126100ee5761031c61052d565b610324610517565b9061032e3361055a565b1561038e576001600160e01b0319165f818152602081905260408120805467ffffffffffffffff19166001600160401b039490941693841790557fa3e0b2a435476f7258ef6426c5ccc383db5cef84c531fc21905af2a5872a6d019080a3005b63f07e038f60e01b5f52336004525f60245260445ffd5b346100ee5760203660031901126100ee576001600160e01b03196103c761052d565b165f525f60205260206001600160401b0360405f205416604051908152f35b346100ee575f3660031901126100ee5760206040515f8152f35b346100ee5760203660031901126100ee576001600160401b03610421610501565b165f52600260205260206001600160401b0360405f205416604051908152f35b346100ee575f3660031901126100ee5760206040516001600160401b038152f35b346100ee5760403660031901126100ee5761047b610501565b610483610517565b9061048d3361055a565b1561038e576001600160401b031690811580156104f1575b6102da576001600160401b0390825f52600260205260405f20828216831982541617905516907f1fd6dd7631312dfac2205b52913f99de03b4d7e381d5d27d3dbfe0713e6e63405f80a3005b506001600160401b0382146104a5565b600435906001600160401b03821682036100ee57565b602435906001600160401b03821682036100ee57565b600435906001600160e01b0319821682036100ee57565b602435906001600160a01b03821682036100ee57565b6001600160a01b03165f9081527fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb49602052604090205460ff1690565b6001600160401b03166001600160401b0381146105d1575f52600160205260405f209060018060a01b03165f5260205260ff60405f20541690565b5050600190565b6001600160401b0316906001600160401b0382146102da57815f52600160205260405f2060018060a01b0382165f5260205260ff60405f20541661061a575050565b5f8281526001602090815260408083206001600160a01b0394909416808452939091528120805460ff191690559091907ff229baa593af28c41b1d16b748cd7688f0c83aaf92d4be41c44005defe84c1669080a356a6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb49","sourceMap":"1139:11059:77:-:0;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1139:11059:77;;;;;;;;;;;;;;-1:-1:-1;;;;;1139:11059:77;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1139:11059:77;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5091:26;;;;5087:108;;-1:-1:-1;1498:16:77;;;-1:-1:-1;;;;;;;;;;;1139:11059:77;1498:16;1139:11059;1498:16;;;;;10542:30;10538:144;;1139:11059;5337:13;-1:-1:-1;5385:3:77;1340:16;;5352:31;;;;;10543:12;;-1:-1:-1;;;;;;5421:23:77;1139:11059;5421:23;;:::i;:::-;;1340:16;1139:11059;;;;;;;5455:23;;;;:::i;:::-;;:30;1340:16;1139:11059;;;-1:-1:-1;1139:11059:77;-1:-1:-1;1139:11059:77;;;-1:-1:-1;1139:11059:77;;;;;;;;;;;;;;12152:37;-1:-1:-1;12152:37:77;;1340:16;5337:13;;5352:31;1139:11059;;;;;;;;;10538:144;-1:-1:-1;1498:16:77;;;-1:-1:-1;;;;;;;;;;;1139:11059:77;1498:16;1139:11059;1498:16;;;;-1:-1:-1;;1498:16:77;10543:12;1498:16;;;10643:28;-1:-1:-1;;10643:28:77;10538:144;;;5087:108;5140:44;;;-1:-1:-1;5140:44:77;-1:-1:-1;5140:44:77;1139:11059;;-1:-1:-1;5140:44:77;1139:11059;;;;;;;;;;;;;;;-1:-1:-1;;;;;1139:11059:77;;;;;;;;;;;;-1:-1:-1;;;;;;1139:11059:77;;;;;;;;;;;;;-1:-1:-1;;;;;1139:11059:77;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1139:11059:77;;;;;;-1:-1:-1;1139:11059:77;;;;;-1:-1:-1;1139:11059:77;;;;;;;;-1:-1:-1;;1139:11059:77;;;-1:-1:-1;;;;;1139:11059:77;;;;;;;;;;:::o;1340:16::-;;;;;;;;;;;;;;;:::o;:::-;1139:11059;;;1340:16;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806330cae187146104625780633ca7c02a14610441578063530dd4561461040057806375b238fc146103e65780638e11fde6146103a5578063aa682ab614610303578063b428b0b0146101f9578063b700961314610199578063b7d2b16214610128578063d1f856ee146100f25763fe0776f514610092575f80fd5b346100ee5760403660031901126100ee576100ab610501565b6100b3610544565b336001600160a01b038216036100ce576100cc916105d8565b005b6001600160401b038263f07e038f60e01b5f52336004521660245260445ffd5b5f80fd5b346100ee5760403660031901126100ee57602061011e610110610501565b610118610544565b90610596565b6040519015158152f35b346100ee5760403660031901126100ee57610141610501565b610149610544565b6001600160401b0382165f5260026020526001600160401b0360405f205416916101733384610596565b15610182576100cc92506105d8565b8263f07e038f60e01b5f523360045260245260445ffd5b346100ee5760603660031901126100ee576004356001600160a01b03811681036100ee576101c5610544565b5060443563ffffffff60e01b81168091036100ee5760209161011e915f525f83526001600160401b0360405f205416610596565b346100ee5760403660031901126100ee57610212610501565b6001600160401b03610222610544565b911690815f5260026020526001600160401b0360405f2054166102453382610596565b156102ed57506001600160401b0382146102da57815f52600160205260405f2060018060a01b0382165f5260205260ff60405f2054161561028257005b815f52600160205260405f2060018060a01b0382165f5260205260405f20600160ff1982541617905560018060a01b0316907faad194d4c741066ed559517462aa599f8be124ae17cf4832c66a3a2958f277265f80a3005b5063061c6a4360e21b5f5260045260245ffd5b63f07e038f60e01b5f523360045260245260445ffd5b346100ee5760403660031901126100ee5761031c61052d565b610324610517565b9061032e3361055a565b1561038e576001600160e01b0319165f818152602081905260408120805467ffffffffffffffff19166001600160401b039490941693841790557fa3e0b2a435476f7258ef6426c5ccc383db5cef84c531fc21905af2a5872a6d019080a3005b63f07e038f60e01b5f52336004525f60245260445ffd5b346100ee5760203660031901126100ee576001600160e01b03196103c761052d565b165f525f60205260206001600160401b0360405f205416604051908152f35b346100ee575f3660031901126100ee5760206040515f8152f35b346100ee5760203660031901126100ee576001600160401b03610421610501565b165f52600260205260206001600160401b0360405f205416604051908152f35b346100ee575f3660031901126100ee5760206040516001600160401b038152f35b346100ee5760403660031901126100ee5761047b610501565b610483610517565b9061048d3361055a565b1561038e576001600160401b031690811580156104f1575b6102da576001600160401b0390825f52600260205260405f20828216831982541617905516907f1fd6dd7631312dfac2205b52913f99de03b4d7e381d5d27d3dbfe0713e6e63405f80a3005b506001600160401b0382146104a5565b600435906001600160401b03821682036100ee57565b602435906001600160401b03821682036100ee57565b600435906001600160e01b0319821682036100ee57565b602435906001600160a01b03821682036100ee57565b6001600160a01b03165f9081527fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb49602052604090205460ff1690565b6001600160401b03166001600160401b0381146105d1575f52600160205260405f209060018060a01b03165f5260205260ff60405f20541690565b5050600190565b6001600160401b0316906001600160401b0382146102da57815f52600160205260405f2060018060a01b0382165f5260205260ff60405f20541661061a575050565b5f8281526001602090815260408083206001600160a01b0394909416808452939091528120805460ff191690559091907ff229baa593af28c41b1d16b748cd7688f0c83aaf92d4be41c44005defe84c1669080a356","sourceMap":"1139:11059:77:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1139:11059:77;;;;;;:::i;:::-;;;:::i;:::-;735:10:6;-1:-1:-1;;;;;1139:11059:77;;9412:34;9408:126;;9563:18;;;:::i;:::-;1139:11059;9408:126;-1:-1:-1;;;;;3994:58:77;;;;1139:11059;9469:54;735:10:6;1139:11059:77;;;;;;;9469:54;1139:11059;;;;;;;;;;-1:-1:-1;;1139:11059:77;;;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;1139:11059:77;;;;;;:::i;:::-;;;:::i;:::-;-1:-1:-1;;;;;1139:11059:77;;;;7419:11;1139:11059;;-1:-1:-1;;;;;1139:11059:77;;;;;735:10:6;4364:32:77;735:10:6;4364:32:77;;:::i;:::-;4363:33;4359:128;;8956:7;;;;:::i;4359:128::-;3994:58;;;;1139:11059;4419:57;735:10:6;1139:11059:77;;;;;;4419:57;1139:11059;;;;;;-1:-1:-1;;1139:11059:77;;;;;;-1:-1:-1;;;;;1139:11059:77;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;6399:23;1139:11059;;;;;;-1:-1:-1;;;;;1139:11059:77;;;;;6399:23;:::i;1139:11059::-;;;;;;-1:-1:-1;;1139:11059:77;;;;;;:::i;:::-;-1:-1:-1;;;;;1139:11059:77;;:::i;:::-;;;;;;;7419:11;1139:11059;;-1:-1:-1;;;;;1139:11059:77;;;;;4364:32;735:10:6;4364:32:77;;:::i;:::-;4363:33;4359:128;;10442:21;-1:-1:-1;;;;;10442:21:77;;10438:90;;1139:11059;;;10543:12;1139:11059;;;;;;;;;;;;-1:-1:-1;1139:11059:77;;;;;-1:-1:-1;1139:11059:77;;;10542:30;10538:144;;1139:11059;10538:144;1139:11059;;;10543:12;1139:11059;;;;;;;;;;;;-1:-1:-1;1139:11059:77;;;;-1:-1:-1;1139:11059:77;10543:12;1139:11059;;;;;;;;;;;;;;10643:28;;1139:11059;10643:28;;1139:11059;10438:90;10038:31;;;;1139:11059;10486:31;1139:11059;;;;10486:31;4359:128;3994:58;;;1139:11059;4419:57;735:10:6;1139:11059:77;;;;;;4419:57;1139:11059;;;;;;-1:-1:-1;;1139:11059:77;;;;;;:::i;:::-;;;:::i;:::-;735:10:6;3938:33:77;735:10:6;3938:33:77;:::i;:::-;3937:34;3933:130;;-1:-1:-1;;;;;;1139:11059:77;;;;;;;;;;;;;;-1:-1:-1;;1139:11059:77;-1:-1:-1;;;;;1139:11059:77;;;;;;;;;12152:37;;1139:11059;12152:37;1139:11059;3933:130;3994:58;;;1139:11059;3994:58;735:10:6;1139:11059:77;;;;;;;3994:58;1139:11059;;;;;;-1:-1:-1;;1139:11059:77;;;;-1:-1:-1;;;;;;1139:11059:77;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;1139:11059:77;;;;;;;;;;;;;;;;;-1:-1:-1;;1139:11059:77;;;;;;;;;;;;;;;;;-1:-1:-1;;1139:11059:77;;;;-1:-1:-1;;;;;1139:11059:77;;:::i;:::-;;;;7419:11;1139:11059;;;-1:-1:-1;;;;;1139:11059:77;;;;;;;;;;;;;;;;;-1:-1:-1;;1139:11059:77;;;;;;;-1:-1:-1;;;;;1139:11059:77;;;;;;;;;-1:-1:-1;;1139:11059:77;;;;;;:::i;:::-;;;:::i;:::-;735:10:6;3938:33:77;735:10:6;3938:33:77;:::i;:::-;3937:34;3933:130;;-1:-1:-1;;;;;1139:11059:77;9970:20;;;:45;;;;1139:11059;9966:114;;-1:-1:-1;;;;;1139:11059:77;;;;10090:11;1139:11059;;;;;;;;;;;;;;;;;10132:31;;1139:11059;10132:31;;1139:11059;9970:45;9994:21;-1:-1:-1;;;;;9994:21:77;;9970:45;;1139:11059;;;;-1:-1:-1;;;;;1139:11059:77;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1139:11059:77;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;;1139:11059:77;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1139:11059:77;;;;;;:::o;7800:201::-;-1:-1:-1;;;;;1139:11059:77;-1:-1:-1;1139:11059:77;;;;;;;;;;;;;7800:201::o;:::-;-1:-1:-1;;;;;1139:11059:77;-1:-1:-1;;;;;7890:21:77;;7886:63;;1139:11059;;7965:12;1139:11059;;;;;7965:29;1139:11059;;;;;;-1:-1:-1;1139:11059:77;;;;;-1:-1:-1;1139:11059:77;;;7800:201;:::o;7886:63::-;7927:11;;7934:4;7927:11;:::o;10886:322::-;-1:-1:-1;;;;;1139:11059:77;10962:21;-1:-1:-1;;;;;10962:21:77;;10958:90;;1139:11059;-1:-1:-1;1139:11059:77;11062:12;1139:11059;;;-1:-1:-1;1139:11059:77;;;;;;;;-1:-1:-1;1139:11059:77;;;;;-1:-1:-1;1139:11059:77;;;11058:144;;10886:322;;:::o;11058:144::-;-1:-1:-1;1139:11059:77;;;11062:12;1139:11059;;;;;;;;-1:-1:-1;;;;;1139:11059:77;;;;;;;;;;;;;;;-1:-1:-1;;1139:11059:77;;;;;;11163:28;;-1:-1:-1;11163:28:77;10886:322::o","linkReferences":{}},"methodIdentifiers":{"ADMIN_ROLE()":"75b238fc","PUBLIC_ROLE()":"3ca7c02a","canCall(address,address,bytes4)":"b7009613","getFunctionRole(bytes4)":"8e11fde6","getRoleAdmin(uint64)":"530dd456","grantRole(uint64,address)":"b428b0b0","hasRole(uint64,address)":"d1f856ee","renounceRole(uint64,address)":"fe0776f5","revokeRole(uint64,address)":"b7d2b162","setFunctionRole(bytes4,uint64)":"aa682ab6","setRoleAdmin(uint64,uint64)":"30cae187"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"initialAdmin\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"bytes4\",\"name\":\"selector\",\"type\":\"bytes4\"},{\"internalType\":\"uint64\",\"name\":\"roleId\",\"type\":\"uint64\"}],\"internalType\":\"struct SimpleAccessManager.InitialFunctionRole[]\",\"name\":\"initialFunctionRoles\",\"type\":\"tuple[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"initialAdmin\",\"type\":\"address\"}],\"name\":\"AccessManagerInvalidInitialAdmin\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"roleId\",\"type\":\"uint64\"}],\"name\":\"AccessManagerLockedRole\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"roleId\",\"type\":\"uint64\"}],\"name\":\"AccessManagerUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes4\",\"name\":\"selector\",\"type\":\"bytes4\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"roleId\",\"type\":\"uint64\"}],\"name\":\"FunctionRoleUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"roleId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"admin\",\"type\":\"uint64\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"roleId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"roleId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PUBLIC_ROLE\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bytes4\",\"name\":\"selector\",\"type\":\"bytes4\"}],\"name\":\"canCall\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"selector\",\"type\":\"bytes4\"}],\"name\":\"getFunctionRole\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"roleId\",\"type\":\"uint64\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"roleId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"roleId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"roleId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"roleId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"selector\",\"type\":\"bytes4\"},{\"internalType\":\"uint64\",\"name\":\"roleId\",\"type\":\"uint64\"}],\"name\":\"setFunctionRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"roleId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"admin\",\"type\":\"uint64\"}],\"name\":\"setRoleAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Zora\",\"details\":\"This contract is designed to manage access for a single target contract by mapping function selectors directly to required roles. It implements the IAuthority interface for compatibility with SimpleAccessManaged contracts. Key features: - Maps function selectors to roles (selector -> roleId) - Immediate role grants/revokes (no delays) - PUBLIC_ROLE grants access to all addresses - ADMIN_ROLE (role 0) can configure function roles and manage other roles - Each role can have a custom admin role for delegation This is intentionally simpler than OpenZeppelin's AccessManager: - No execution delays or scheduled operations - No guardian role - No target address tracking (single-contract authority)\",\"errors\":{\"AccessManagerInvalidInitialAdmin(address)\":[{\"params\":{\"initialAdmin\":\"The invalid admin address provided\"}}],\"AccessManagerLockedRole(uint64)\":[{\"params\":{\"roleId\":\"The locked role that was targeted\"}}],\"AccessManagerUnauthorizedAccount(address,uint64)\":[{\"params\":{\"account\":\"The account that attempted the action\",\"roleId\":\"The role that was required\"}}]},\"events\":{\"FunctionRoleUpdated(bytes4,uint64)\":{\"params\":{\"roleId\":\"The new required role\",\"selector\":\"The function selector that was configured\"}},\"RoleAdminChanged(uint64,uint64)\":{\"params\":{\"admin\":\"The new admin role\",\"roleId\":\"The role whose admin changed\"}},\"RoleGranted(uint64,address)\":{\"params\":{\"account\":\"The account that received the role\",\"roleId\":\"The role that was granted\"}},\"RoleRevoked(uint64,address)\":{\"params\":{\"account\":\"The account that lost the role\",\"roleId\":\"The role that was revoked\"}}},\"kind\":\"dev\",\"methods\":{\"canCall(address,address,bytes4)\":{\"details\":\"The target parameter is ignored since this is a single-contract authority. Returns true if the caller has the role required for the selector, or if the selector is mapped to PUBLIC_ROLE (which all addresses implicitly have).\",\"params\":{\"caller\":\"The address attempting to call the function\",\"selector\":\"The function selector being called\"},\"returns\":{\"_0\":\"True if the caller is authorized to call the function\"}},\"constructor\":{\"details\":\"The initial admin is granted ADMIN_ROLE immediately. Initial function roles allow configuring access permissions at deployment time without additional transactions.\",\"params\":{\"initialAdmin\":\"The address that will receive ADMIN_ROLE (cannot be zero address)\",\"initialFunctionRoles\":\"Array of selector-to-role mappings to configure at deployment\"}},\"getFunctionRole(bytes4)\":{\"details\":\"If no role has been set for the selector, returns 0 (ADMIN_ROLE), meaning only admins can call unconfigured functions by default.\",\"params\":{\"selector\":\"The function selector to query\"},\"returns\":{\"_0\":\"The role ID required to call the function\"}},\"getRoleAdmin(uint64)\":{\"details\":\"The admin role is the role that can grant/revoke the specified role. If no admin has been set, returns 0 (ADMIN_ROLE).\",\"params\":{\"roleId\":\"The role to query the admin for\"},\"returns\":{\"_0\":\"The admin role ID that can manage the specified role\"}},\"grantRole(uint64,address)\":{\"details\":\"Only callable by accounts that have the admin role for the specified role. Emits {RoleGranted} if the account did not already have the role.\",\"params\":{\"account\":\"The account to receive the role\",\"roleId\":\"The role to grant\"}},\"hasRole(uint64,address)\":{\"details\":\"PUBLIC_ROLE always returns true for any account. For other roles, returns true only if the account has been explicitly granted the role.\",\"params\":{\"account\":\"The account to check\",\"roleId\":\"The role to check\"},\"returns\":{\"_0\":\"True if the account has the role\"}},\"renounceRole(uint64,address)\":{\"details\":\"The callerConfirmation parameter must match msg.sender to prevent accidental role renunciation. Emits {RoleRevoked} if the account had the role.\",\"params\":{\"callerConfirmation\":\"Must be msg.sender's address as confirmation\",\"roleId\":\"The role to renounce\"}},\"revokeRole(uint64,address)\":{\"details\":\"Only callable by accounts that have the admin role for the specified role. Emits {RoleRevoked} if the account had the role.\",\"params\":{\"account\":\"The account to lose the role\",\"roleId\":\"The role to revoke\"}},\"setFunctionRole(bytes4,uint64)\":{\"details\":\"Only callable by accounts with ADMIN_ROLE. Set to PUBLIC_ROLE to make a function callable by anyone. Emits {FunctionRoleUpdated}.\",\"params\":{\"roleId\":\"The role that will be required to call the function\",\"selector\":\"The function selector to configure\"}},\"setRoleAdmin(uint64,uint64)\":{\"details\":\"Only callable by accounts with ADMIN_ROLE. Cannot modify the admin of ADMIN_ROLE or PUBLIC_ROLE. Emits {RoleAdminChanged}.\",\"params\":{\"admin\":\"The new admin role ID\",\"roleId\":\"The role to set the admin for\"}}},\"stateVariables\":{\"_functionRoles\":{\"details\":\"Maps function selector to the role required to call it\"},\"_roleAdmins\":{\"details\":\"Maps role to its admin role (the role that can grant/revoke it)\"},\"_roleMembers\":{\"details\":\"Maps role to its members\"}},\"title\":\"SimpleAccessManager\",\"version\":1},\"userdoc\":{\"errors\":{\"AccessManagerInvalidInitialAdmin(address)\":[{\"notice\":\"Thrown when the initial admin address is invalid (zero address)\"}],\"AccessManagerLockedRole(uint64)\":[{\"notice\":\"Thrown when attempting to modify a locked role (ADMIN_ROLE or PUBLIC_ROLE)\"}],\"AccessManagerUnauthorizedAccount(address,uint64)\":[{\"notice\":\"Thrown when an account lacks the required role\"}]},\"events\":{\"FunctionRoleUpdated(bytes4,uint64)\":{\"notice\":\"Emitted when a function's required role is updated\"},\"RoleAdminChanged(uint64,uint64)\":{\"notice\":\"Emitted when a role's admin is changed\"},\"RoleGranted(uint64,address)\":{\"notice\":\"Emitted when a role is granted to an account\"},\"RoleRevoked(uint64,address)\":{\"notice\":\"Emitted when a role is revoked from an account\"}},\"kind\":\"user\",\"methods\":{\"ADMIN_ROLE()\":{\"notice\":\"The admin role identifier (0). Members can configure function roles and grant other roles.\"},\"PUBLIC_ROLE()\":{\"notice\":\"The public role identifier (max uint64). All addresses implicitly have this role.\"},\"canCall(address,address,bytes4)\":{\"notice\":\"Checks if a caller is authorized to invoke a function.\"},\"constructor\":{\"notice\":\"Initializes the access manager with an admin and optional function role configurations.\"},\"getFunctionRole(bytes4)\":{\"notice\":\"Returns the role required to call a specific function.\"},\"getRoleAdmin(uint64)\":{\"notice\":\"Returns the admin role for a given role.\"},\"grantRole(uint64,address)\":{\"notice\":\"Grants a role to an account.\"},\"hasRole(uint64,address)\":{\"notice\":\"Checks if an account has a specific role.\"},\"renounceRole(uint64,address)\":{\"notice\":\"Allows an account to renounce a role it has.\"},\"revokeRole(uint64,address)\":{\"notice\":\"Revokes a role from an account.\"},\"setFunctionRole(bytes4,uint64)\":{\"notice\":\"Sets the role required to call a specific function.\"},\"setRoleAdmin(uint64,uint64)\":{\"notice\":\"Sets the admin role for a given role.\"}},\"notice\":\"A simplified single-contract access manager providing role-based access control without time-based validation.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/access/SimpleAccessManager.sol\":\"SimpleAccessManager\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@uniswap/universal-router/contracts/=node_modules/@uniswap/universal-router/contracts/\",\":@uniswap/v4-core/=node_modules/@uniswap/v4-core/\",\":@uniswap/v4-periphery/=node_modules/@uniswap/v4-periphery/\",\":@zoralabs/coins/=node_modules/@zoralabs/coins/\",\":@zoralabs/shared-contracts/=node_modules/@zoralabs/shared-contracts/src/\",\":ds-test/=node_modules/ds-test/src/\",\":forge-std/=node_modules/forge-std/src/\",\":permit2/src/=node_modules/@uniswap/permit2/src/\",\":solady/=node_modules/solady/src/\",\":solmate/=node_modules/solmate/src/\"],\"viaIR\":true},\"sources\":{\"node_modules/@openzeppelin/contracts/access/manager/IAuthority.sol\":{\"keccak256\":\"0x9c9a58dd831b9bb4a0ea47d96b53c13ab9a6e4270a518ea395b1424092fd74dc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d806b0c87fbcaf0cb827b51203b27f8289b13743aeadb5867fbbe041fcf87a92\",\"dweb:/ipfs/QmfTEGiDGxKDaqBuBJ5wWJockGDrsEBZnW5S7UWrKhAxGc\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"src/access/SimpleAccessManager.sol\":{\"keccak256\":\"0xbcb0d251b0f6841cfdcdedfd297621a949a2c21bf6a11969d934b9adcfd7f40f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a31d797c8ddbbecae738b62656b8828558f7a3f622b7058d84bd9d0b97429f36\",\"dweb:/ipfs/QmTTAiRJM13oaMbVqNp2EPfKCYzCNb1wg2QU5WTG68Q425\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.28+commit.7893614a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"initialAdmin","type":"address"},{"internalType":"struct SimpleAccessManager.InitialFunctionRole[]","name":"initialFunctionRoles","type":"tuple[]","components":[{"internalType":"bytes4","name":"selector","type":"bytes4"},{"internalType":"uint64","name":"roleId","type":"uint64"}]}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"initialAdmin","type":"address"}],"type":"error","name":"AccessManagerInvalidInitialAdmin"},{"inputs":[{"internalType":"uint64","name":"roleId","type":"uint64"}],"type":"error","name":"AccessManagerLockedRole"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint64","name":"roleId","type":"uint64"}],"type":"error","name":"AccessManagerUnauthorizedAccount"},{"inputs":[{"internalType":"bytes4","name":"selector","type":"bytes4","indexed":true},{"internalType":"uint64","name":"roleId","type":"uint64","indexed":true}],"type":"event","name":"FunctionRoleUpdated","anonymous":false},{"inputs":[{"internalType":"uint64","name":"roleId","type":"uint64","indexed":true},{"internalType":"uint64","name":"admin","type":"uint64","indexed":true}],"type":"event","name":"RoleAdminChanged","anonymous":false},{"inputs":[{"internalType":"uint64","name":"roleId","type":"uint64","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true}],"type":"event","name":"RoleGranted","anonymous":false},{"inputs":[{"internalType":"uint64","name":"roleId","type":"uint64","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true}],"type":"event","name":"RoleRevoked","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"ADMIN_ROLE","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"PUBLIC_ROLE","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"address","name":"caller","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"bytes4","name":"selector","type":"bytes4"}],"stateMutability":"view","type":"function","name":"canCall","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes4","name":"selector","type":"bytes4"}],"stateMutability":"view","type":"function","name":"getFunctionRole","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"uint64","name":"roleId","type":"uint64"}],"stateMutability":"view","type":"function","name":"getRoleAdmin","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"uint64","name":"roleId","type":"uint64"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantRole"},{"inputs":[{"internalType":"uint64","name":"roleId","type":"uint64"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint64","name":"roleId","type":"uint64"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"renounceRole"},{"inputs":[{"internalType":"uint64","name":"roleId","type":"uint64"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeRole"},{"inputs":[{"internalType":"bytes4","name":"selector","type":"bytes4"},{"internalType":"uint64","name":"roleId","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"setFunctionRole"},{"inputs":[{"internalType":"uint64","name":"roleId","type":"uint64"},{"internalType":"uint64","name":"admin","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"setRoleAdmin"}],"devdoc":{"kind":"dev","methods":{"canCall(address,address,bytes4)":{"details":"The target parameter is ignored since this is a single-contract authority. Returns true if the caller has the role required for the selector, or if the selector is mapped to PUBLIC_ROLE (which all addresses implicitly have).","params":{"caller":"The address attempting to call the function","selector":"The function selector being called"},"returns":{"_0":"True if the caller is authorized to call the function"}},"constructor":{"details":"The initial admin is granted ADMIN_ROLE immediately. Initial function roles allow configuring access permissions at deployment time without additional transactions.","params":{"initialAdmin":"The address that will receive ADMIN_ROLE (cannot be zero address)","initialFunctionRoles":"Array of selector-to-role mappings to configure at deployment"}},"getFunctionRole(bytes4)":{"details":"If no role has been set for the selector, returns 0 (ADMIN_ROLE), meaning only admins can call unconfigured functions by default.","params":{"selector":"The function selector to query"},"returns":{"_0":"The role ID required to call the function"}},"getRoleAdmin(uint64)":{"details":"The admin role is the role that can grant/revoke the specified role. If no admin has been set, returns 0 (ADMIN_ROLE).","params":{"roleId":"The role to query the admin for"},"returns":{"_0":"The admin role ID that can manage the specified role"}},"grantRole(uint64,address)":{"details":"Only callable by accounts that have the admin role for the specified role. Emits {RoleGranted} if the account did not already have the role.","params":{"account":"The account to receive the role","roleId":"The role to grant"}},"hasRole(uint64,address)":{"details":"PUBLIC_ROLE always returns true for any account. For other roles, returns true only if the account has been explicitly granted the role.","params":{"account":"The account to check","roleId":"The role to check"},"returns":{"_0":"True if the account has the role"}},"renounceRole(uint64,address)":{"details":"The callerConfirmation parameter must match msg.sender to prevent accidental role renunciation. Emits {RoleRevoked} if the account had the role.","params":{"callerConfirmation":"Must be msg.sender's address as confirmation","roleId":"The role to renounce"}},"revokeRole(uint64,address)":{"details":"Only callable by accounts that have the admin role for the specified role. Emits {RoleRevoked} if the account had the role.","params":{"account":"The account to lose the role","roleId":"The role to revoke"}},"setFunctionRole(bytes4,uint64)":{"details":"Only callable by accounts with ADMIN_ROLE. Set to PUBLIC_ROLE to make a function callable by anyone. Emits {FunctionRoleUpdated}.","params":{"roleId":"The role that will be required to call the function","selector":"The function selector to configure"}},"setRoleAdmin(uint64,uint64)":{"details":"Only callable by accounts with ADMIN_ROLE. Cannot modify the admin of ADMIN_ROLE or PUBLIC_ROLE. Emits {RoleAdminChanged}.","params":{"admin":"The new admin role ID","roleId":"The role to set the admin for"}}},"version":1},"userdoc":{"kind":"user","methods":{"ADMIN_ROLE()":{"notice":"The admin role identifier (0). Members can configure function roles and grant other roles."},"PUBLIC_ROLE()":{"notice":"The public role identifier (max uint64). All addresses implicitly have this role."},"canCall(address,address,bytes4)":{"notice":"Checks if a caller is authorized to invoke a function."},"constructor":{"notice":"Initializes the access manager with an admin and optional function role configurations."},"getFunctionRole(bytes4)":{"notice":"Returns the role required to call a specific function."},"getRoleAdmin(uint64)":{"notice":"Returns the admin role for a given role."},"grantRole(uint64,address)":{"notice":"Grants a role to an account."},"hasRole(uint64,address)":{"notice":"Checks if an account has a specific role."},"renounceRole(uint64,address)":{"notice":"Allows an account to renounce a role it has."},"revokeRole(uint64,address)":{"notice":"Revokes a role from an account."},"setFunctionRole(bytes4,uint64)":{"notice":"Sets the role required to call a specific function."},"setRoleAdmin(uint64,uint64)":{"notice":"Sets the admin role for a given role."}},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@uniswap/universal-router/contracts/=node_modules/@uniswap/universal-router/contracts/","@uniswap/v4-core/=node_modules/@uniswap/v4-core/","@uniswap/v4-periphery/=node_modules/@uniswap/v4-periphery/","@zoralabs/coins/=node_modules/@zoralabs/coins/","@zoralabs/shared-contracts/=node_modules/@zoralabs/shared-contracts/src/","ds-test/=node_modules/ds-test/src/","forge-std/=node_modules/forge-std/src/","permit2/src/=node_modules/@uniswap/permit2/src/","solady/=node_modules/solady/src/","solmate/=node_modules/solmate/src/"],"optimizer":{"enabled":true,"runs":100},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"src/access/SimpleAccessManager.sol":"SimpleAccessManager"},"evmVersion":"prague","libraries":{},"viaIR":true},"sources":{"node_modules/@openzeppelin/contracts/access/manager/IAuthority.sol":{"keccak256":"0x9c9a58dd831b9bb4a0ea47d96b53c13ab9a6e4270a518ea395b1424092fd74dc","urls":["bzz-raw://d806b0c87fbcaf0cb827b51203b27f8289b13743aeadb5867fbbe041fcf87a92","dweb:/ipfs/QmfTEGiDGxKDaqBuBJ5wWJockGDrsEBZnW5S7UWrKhAxGc"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"src/access/SimpleAccessManager.sol":{"keccak256":"0xbcb0d251b0f6841cfdcdedfd297621a949a2c21bf6a11969d934b9adcfd7f40f","urls":["bzz-raw://a31d797c8ddbbecae738b62656b8828558f7a3f622b7058d84bd9d0b97429f36","dweb:/ipfs/QmTTAiRJM13oaMbVqNp2EPfKCYzCNb1wg2QU5WTG68Q425"],"license":"MIT"}},"version":1},"id":77}
@@ -0,0 +1 @@
1
+ {"abi":[{"type":"error","name":"InvalidPrice","inputs":[]},{"type":"error","name":"InvalidPriceOrLiquidity","inputs":[]},{"type":"error","name":"NotEnoughLiquidity","inputs":[]},{"type":"error","name":"PriceOverflow","inputs":[]}],"bytecode":{"object":"0x6080806040523460175760039081601c823930815050f35b5f80fdfe5f80fd","sourceMap":"524:13285:67:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x5f80fd","sourceMap":"524:13285:67:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"InvalidPrice\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidPriceOrLiquidity\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEnoughLiquidity\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PriceOverflow\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"https://github.com/Uniswap/v4-core/blob/80311e34080fee64b6fc6c916e9a51a437d0e482/src/libraries/SqrtPriceMath.sol\",\"kind\":\"dev\",\"methods\":{},\"title\":\"Functions based on Q64.96 sqrt price and liquidity\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Contains the math that uses square root of price as a Q64.96 and liquidity to compute deltas\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@zoralabs/coins/src/utils/uniswap/SqrtPriceMath.sol\":\"SqrtPriceMath\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@uniswap/universal-router/contracts/=node_modules/@uniswap/universal-router/contracts/\",\":@uniswap/v4-core/=node_modules/@uniswap/v4-core/\",\":@uniswap/v4-periphery/=node_modules/@uniswap/v4-periphery/\",\":@zoralabs/coins/=node_modules/@zoralabs/coins/\",\":@zoralabs/shared-contracts/=node_modules/@zoralabs/shared-contracts/src/\",\":ds-test/=node_modules/ds-test/src/\",\":forge-std/=node_modules/forge-std/src/\",\":permit2/src/=node_modules/@uniswap/permit2/src/\",\":solady/=node_modules/solady/src/\",\":solmate/=node_modules/solmate/src/\"],\"viaIR\":true},\"sources\":{\"node_modules/@zoralabs/coins/src/utils/uniswap/CustomRevert.sol\":{\"keccak256\":\"0x5c17fced6eedcacc452d65842bb5904bd26b8a72a7973a2d6fac0167700328d4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://07044645057353591b0e9f03e0c6802d225307963b45f443c082bce0738c0c2a\",\"dweb:/ipfs/QmWPo2kbp4jkm6CETwPjpqhdVgeA3EfJAtF1SVZMGbf8xU\"]},\"node_modules/@zoralabs/coins/src/utils/uniswap/FixedPoint96.sol\":{\"keccak256\":\"0x711b83cbdbbfe19afc1df6f45f2f71abb1b75305ecb288e36a37cc286bc8de46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2957b0c179395705c49084b5b0c1033c0f47beeca043658a6c572226f5d07348\",\"dweb:/ipfs/QmZQD8s7u1Kjnydkw6n9FUyzVK9Loo6gYSZXic732Y7J76\"]},\"node_modules/@zoralabs/coins/src/utils/uniswap/FullMath.sol\":{\"keccak256\":\"0xc6b0d61b8d60acb295d196a72f81e577007e822f63c737ae0fa87d63e228f074\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://643ddf8897f3d2610ce5ac45c0571e86cd2a97542c2599121fa39a06daa95509\",\"dweb:/ipfs/QmZ74RCf31apWy8UukKUrFi98kgSK6sRH68MFMGudPVpqx\"]},\"node_modules/@zoralabs/coins/src/utils/uniswap/SafeCast.sol\":{\"keccak256\":\"0x5ec831c0fbdcb16091d35eee2e49d54eaadf7ce72d971aec9ea30f379cba258a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9440106f4a5ff5d829ed68c82de4f92e171c4e9306e89d28fe75b4ca30b5f298\",\"dweb:/ipfs/QmdLJitnGXNMZxG6XZxhvCMjoNEKzpZVJ2dnzGVXtWUSFf\"]},\"node_modules/@zoralabs/coins/src/utils/uniswap/SqrtPriceMath.sol\":{\"keccak256\":\"0x45ed757203ba04c7337435dd32e6231b768abf1709917b1d5e81ae1333513f75\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2fa319aa9c92b8da5a9634407ff487cbf0e0e6e234a99146f49c9ded06e8fd74\",\"dweb:/ipfs/QmcqHrXBGpcfgMyb8DqyPYuafBKuESGcvJo1tfCAUrYokb\"]},\"node_modules/@zoralabs/coins/src/utils/uniswap/UnsafeMath.sol\":{\"keccak256\":\"0x44ea34293d502dcff60379eff5504313d7a042ebcae72e7d82ca937f199f3d84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://142c8209cf7ff88b88fa5fe41c0c22a59a8065e1726c0e18b0582facbead3c5c\",\"dweb:/ipfs/QmRZZfsipKck8Ja4pPCK5GYFNfD5TeZggjqLVwJi1AjBzt\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.28+commit.7893614a"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"InvalidPrice"},{"inputs":[],"type":"error","name":"InvalidPriceOrLiquidity"},{"inputs":[],"type":"error","name":"NotEnoughLiquidity"},{"inputs":[],"type":"error","name":"PriceOverflow"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@uniswap/universal-router/contracts/=node_modules/@uniswap/universal-router/contracts/","@uniswap/v4-core/=node_modules/@uniswap/v4-core/","@uniswap/v4-periphery/=node_modules/@uniswap/v4-periphery/","@zoralabs/coins/=node_modules/@zoralabs/coins/","@zoralabs/shared-contracts/=node_modules/@zoralabs/shared-contracts/src/","ds-test/=node_modules/ds-test/src/","forge-std/=node_modules/forge-std/src/","permit2/src/=node_modules/@uniswap/permit2/src/","solady/=node_modules/solady/src/","solmate/=node_modules/solmate/src/"],"optimizer":{"enabled":true,"runs":100},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"node_modules/@zoralabs/coins/src/utils/uniswap/SqrtPriceMath.sol":"SqrtPriceMath"},"evmVersion":"prague","libraries":{},"viaIR":true},"sources":{"node_modules/@zoralabs/coins/src/utils/uniswap/CustomRevert.sol":{"keccak256":"0x5c17fced6eedcacc452d65842bb5904bd26b8a72a7973a2d6fac0167700328d4","urls":["bzz-raw://07044645057353591b0e9f03e0c6802d225307963b45f443c082bce0738c0c2a","dweb:/ipfs/QmWPo2kbp4jkm6CETwPjpqhdVgeA3EfJAtF1SVZMGbf8xU"],"license":"MIT"},"node_modules/@zoralabs/coins/src/utils/uniswap/FixedPoint96.sol":{"keccak256":"0x711b83cbdbbfe19afc1df6f45f2f71abb1b75305ecb288e36a37cc286bc8de46","urls":["bzz-raw://2957b0c179395705c49084b5b0c1033c0f47beeca043658a6c572226f5d07348","dweb:/ipfs/QmZQD8s7u1Kjnydkw6n9FUyzVK9Loo6gYSZXic732Y7J76"],"license":"MIT"},"node_modules/@zoralabs/coins/src/utils/uniswap/FullMath.sol":{"keccak256":"0xc6b0d61b8d60acb295d196a72f81e577007e822f63c737ae0fa87d63e228f074","urls":["bzz-raw://643ddf8897f3d2610ce5ac45c0571e86cd2a97542c2599121fa39a06daa95509","dweb:/ipfs/QmZ74RCf31apWy8UukKUrFi98kgSK6sRH68MFMGudPVpqx"],"license":"MIT"},"node_modules/@zoralabs/coins/src/utils/uniswap/SafeCast.sol":{"keccak256":"0x5ec831c0fbdcb16091d35eee2e49d54eaadf7ce72d971aec9ea30f379cba258a","urls":["bzz-raw://9440106f4a5ff5d829ed68c82de4f92e171c4e9306e89d28fe75b4ca30b5f298","dweb:/ipfs/QmdLJitnGXNMZxG6XZxhvCMjoNEKzpZVJ2dnzGVXtWUSFf"],"license":"MIT"},"node_modules/@zoralabs/coins/src/utils/uniswap/SqrtPriceMath.sol":{"keccak256":"0x45ed757203ba04c7337435dd32e6231b768abf1709917b1d5e81ae1333513f75","urls":["bzz-raw://2fa319aa9c92b8da5a9634407ff487cbf0e0e6e234a99146f49c9ded06e8fd74","dweb:/ipfs/QmcqHrXBGpcfgMyb8DqyPYuafBKuESGcvJo1tfCAUrYokb"],"license":"MIT"},"node_modules/@zoralabs/coins/src/utils/uniswap/UnsafeMath.sol":{"keccak256":"0x44ea34293d502dcff60379eff5504313d7a042ebcae72e7d82ca937f199f3d84","urls":["bzz-raw://142c8209cf7ff88b88fa5fe41c0c22a59a8065e1726c0e18b0582facbead3c5c","dweb:/ipfs/QmRZZfsipKck8Ja4pPCK5GYFNfD5TeZggjqLVwJi1AjBzt"],"license":"MIT"}},"version":1},"id":67}
@@ -0,0 +1 @@
1
+ {"abi":[{"type":"function","name":"FEE_GROWTH_GLOBAL0_OFFSET","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"LIQUIDITY_OFFSET","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"POOLS_SLOT","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"POSITIONS_OFFSET","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"TICKS_OFFSET","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"TICK_BITMAP_OFFSET","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"}],"bytecode":{"object":"0x6080806040523460175760d79081601c823930815050f35b5f80fdfe60808060405260043610156011575f80fd5b5f3560e01c9081632ba31c531460c45750806357eb1da71460af578063769323e314609a5780637d35604a146085578063b432004a1460705763ca24e3b5146057575f80fd5b5f366003190112606c57602060405160018152f35b5f80fd5b5f366003190112606c57602060405160038152f35b5f366003190112606c57602060405160058152f35b5f366003190112606c57602060405160048152f35b5f366003190112606c57602060405160068152f35b5f366003190112606c5780600660209252f3","sourceMap":"276:15750:29:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60808060405260043610156011575f80fd5b5f3560e01c9081632ba31c531460c45750806357eb1da71460af578063769323e314609a5780637d35604a146085578063b432004a1460705763ca24e3b5146057575f80fd5b5f366003190112606c57602060405160018152f35b5f80fd5b5f366003190112606c57602060405160038152f35b5f366003190112606c57602060405160058152f35b5f366003190112606c57602060405160048152f35b5f366003190112606c57602060405160068152f35b5f366003190112606c5780600660209252f3","sourceMap":"276:15750:29:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;276:15750:29;;;;;;;536:1;276:15750;;;;;;;;;;-1:-1:-1;;276:15750:29;;;;;;;690:1;276:15750;;;;;;-1:-1:-1;;276:15750:29;;;;;;;940:1;276:15750;;;;;;-1:-1:-1;;276:15750:29;;;;;;;;;;;;;;-1:-1:-1;;276:15750:29;;;;;;;414:1;276:15750;;;;;;-1:-1:-1;;276:15750:29;;;;;1100:1;276:15750;;;","linkReferences":{}},"methodIdentifiers":{"FEE_GROWTH_GLOBAL0_OFFSET()":"ca24e3b5","LIQUIDITY_OFFSET()":"b432004a","POOLS_SLOT()":"57eb1da7","POSITIONS_OFFSET()":"2ba31c53","TICKS_OFFSET()":"769323e3","TICK_BITMAP_OFFSET()":"7d35604a"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"FEE_GROWTH_GLOBAL0_OFFSET\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"LIQUIDITY_OFFSET\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"POOLS_SLOT\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"POSITIONS_OFFSET\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TICKS_OFFSET\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TICK_BITMAP_OFFSET\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"FEE_GROWTH_GLOBAL0_OFFSET()\":{\"notice\":\"index of feeGrowthGlobal0X128 in Pool.State\"},\"LIQUIDITY_OFFSET()\":{\"notice\":\"index of liquidity in Pool.State\"},\"POOLS_SLOT()\":{\"notice\":\"index of pools mapping in the PoolManager\"},\"POSITIONS_OFFSET()\":{\"notice\":\"index of Position.State mapping in Pool.State: mapping(bytes32 => Position.State) positions;\"},\"TICKS_OFFSET()\":{\"notice\":\"index of TicksInfo mapping in Pool.State: mapping(int24 => TickInfo) ticks;\"},\"TICK_BITMAP_OFFSET()\":{\"notice\":\"index of tickBitmap mapping in Pool.State\"}},\"notice\":\"A helper library to provide state getters that use extsload\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@uniswap/v4-core/src/libraries/StateLibrary.sol\":\"StateLibrary\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@uniswap/universal-router/contracts/=node_modules/@uniswap/universal-router/contracts/\",\":@uniswap/v4-core/=node_modules/@uniswap/v4-core/\",\":@uniswap/v4-periphery/=node_modules/@uniswap/v4-periphery/\",\":@zoralabs/coins/=node_modules/@zoralabs/coins/\",\":@zoralabs/shared-contracts/=node_modules/@zoralabs/shared-contracts/src/\",\":ds-test/=node_modules/ds-test/src/\",\":forge-std/=node_modules/forge-std/src/\",\":permit2/src/=node_modules/@uniswap/permit2/src/\",\":solady/=node_modules/solady/src/\",\":solmate/=node_modules/solmate/src/\"],\"viaIR\":true},\"sources\":{\"node_modules/@uniswap/v4-core/src/interfaces/IExtsload.sol\":{\"keccak256\":\"0x80b53ca4907d6f0088c3b931f2b72cad1dc4615a95094d96bd0fb8dff8d5ba43\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://375c69148622aab7a3537d5fd37d373a8e9731022c8d87bdaee46233b0a99fe1\",\"dweb:/ipfs/QmXFjdoYRxsA5B1kyuxEXgNf3FBoL1zPvy26Qy8EtpdFRN\"]},\"node_modules/@uniswap/v4-core/src/interfaces/IExttload.sol\":{\"keccak256\":\"0xc6b68283ebd8d1c789df536756726eed51c589134bb20821b236a0d22a135937\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://294394f72dfc219689209f4130d85601dfd0d63c8d47578050d312db70f9b6c8\",\"dweb:/ipfs/QmTDMQ3oxCGHgEBU48a3Lp4S1rRjc8vVCxkhE5ZNej1bsY\"]},\"node_modules/@uniswap/v4-core/src/interfaces/IHooks.sol\":{\"keccak256\":\"0xc131ffa2d04c10a012fe715fe2c115811526b7ea34285cf0a04ce7ce8320da8d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3b212358897db5d99c21244d88f97b2e788527552cb430629b472a8cc6289aec\",\"dweb:/ipfs/QmQtwV4dDe2RYk2ErLpaAX7U82jWh1L6Lw2HRuKDvBi84G\"]},\"node_modules/@uniswap/v4-core/src/interfaces/IPoolManager.sol\":{\"keccak256\":\"0xbdab3544da3d32dfdf7457baa94e17d5a3012952428559e013ffac45d067038e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ce95ff864468e37c76adf71df061d4f3d6f3a5ec1f9bc3aea090463bc72798f4\",\"dweb:/ipfs/QmSbWh1pLbz51yQF4HEu5NRhr8XVv9JYGEw1hq1HudAnCi\"]},\"node_modules/@uniswap/v4-core/src/interfaces/IProtocolFees.sol\":{\"keccak256\":\"0x32a666e588a2f66334430357bb1e2424fe7eebeb98a3364b1dd16eb6ccca9848\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85751d302125881f72e5f8af051c2d5d9b1f606ebaea8ca7d04fccdd27cc252d\",\"dweb:/ipfs/QmeRwomeh9NWm6A6fgNA4KZPQZHPpdKsPQyYsHSFmvud7J\"]},\"node_modules/@uniswap/v4-core/src/interfaces/external/IERC20Minimal.sol\":{\"keccak256\":\"0xeccadf1bf69ba2eb51f2fe4fa511bc7bb05bbd6b9f9a3cb8e5d83d9582613e0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://118757369892687b99ef46ce28d6861f62c098285bd7687a4f17f7e44e5f81de\",\"dweb:/ipfs/QmUxqbYqQtcEwwFbb9e6BBMePEaSgN8C45v6RKubD4ib8d\"]},\"node_modules/@uniswap/v4-core/src/interfaces/external/IERC6909Claims.sol\":{\"keccak256\":\"0xa586f345739e52b0488a0fe40b6e375cce67fdd25758408b0efcb5133ad96a48\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8c557b7e52abdbbd82e415a1acc27921446a7fd090b7d4877e52be72619547f\",\"dweb:/ipfs/QmXE2KNPbXmGX8BQF3ei6zhzRTnhoTQg39XmqMnkhbr6QK\"]},\"node_modules/@uniswap/v4-core/src/libraries/CustomRevert.sol\":{\"keccak256\":\"0x111ed3031b6990c80a93ae35dde6b6ac0b7e6af471388fdd7461e91edda9b7de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c9ea883c98d6ae1829160d0977bb5195761cfd5bc81692d0a941f45717f594cd\",\"dweb:/ipfs/QmZPwxzaeMNv536wzrAMrMswu7vMHuqPVpjcqL3YvCMoxt\"]},\"node_modules/@uniswap/v4-core/src/libraries/FixedPoint128.sol\":{\"keccak256\":\"0xad236e10853f4b4b20a35a9bb52b857c4fc79874846b7e444e06ead7f2630542\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0de1f9a06520b1a689660943faa14fc0b8344ab41fab9e6012ea34bff4b9b3eb\",\"dweb:/ipfs/QmRNMPTyko7W6d6KxuTsnDBa9oZgDK4xiwRRq3H9ASTbwy\"]},\"node_modules/@uniswap/v4-core/src/libraries/FullMath.sol\":{\"keccak256\":\"0x4fc73a00817193fd3cac1cc03d8167d21af97d75f1815a070ee31a90c702b4c2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c3b2d66d36b1ad56b1ab6e2eb8a816740877b40b461c93f125e88621c8378e52\",\"dweb:/ipfs/QmPGvMZzKQvNiWKd8aRzzdW7oAizwrMgcMtnaworDkVHFC\"]},\"node_modules/@uniswap/v4-core/src/libraries/LiquidityMath.sol\":{\"keccak256\":\"0x000ef2eadcc1eb7b2c18a77655f94e76e0e860f605783484657ef65fd6eda353\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a766b620a7a22798b43c6c1f23b5c6cff0ebf588deb89842bad05208d448cd99\",\"dweb:/ipfs/QmVKjaFJdzkqA3ey2Byum8iTCMssWVD8MmVC8rw62Tj5WD\"]},\"node_modules/@uniswap/v4-core/src/libraries/Position.sol\":{\"keccak256\":\"0xddab2a831f1befb6abf5567e77c4582169ca8156cf69eb4f22d8e87f7226a3f9\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c79fe61b50f3b70cff503abfa6f5643fcbefb9b794855bee1019b1e6d9c083b2\",\"dweb:/ipfs/QmbKmYNQesaMz8bo1b7TMHQcAwaDd3eDPrE5pAdPPZTtk5\"]},\"node_modules/@uniswap/v4-core/src/libraries/SafeCast.sol\":{\"keccak256\":\"0x42c4a24f996a14d358be397b71f7ec9d7daf666aaec78002c63315a6ee67aa86\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c3db86e2ba3679105fc32edec656c70282e1fede6cab11217702443f6c26fa59\",\"dweb:/ipfs/QmX4yaaSPdKQzYNRsezjTvZKsubzS8JRTEGFD3fPpTTCcj\"]},\"node_modules/@uniswap/v4-core/src/libraries/StateLibrary.sol\":{\"keccak256\":\"0x96db333ee126a841dd959e38e452cc59d73583cb0437a1d48b2052e33a74f952\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8672bba1eb69608299b0904f4ff305238eb18479d371c26518f278c9ee184cd0\",\"dweb:/ipfs/QmTLu3s6ECvsEDHStQv8HTVHYtvkviBbdjPrFJd4SpVRFY\"]},\"node_modules/@uniswap/v4-core/src/types/BalanceDelta.sol\":{\"keccak256\":\"0xa719c8fe51e0a9524280178f19f6851bcc3b3b60e73618f3d60905d35ae5569f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7436928dc9de35c6c7c5c636cb51adaf295cfd590da83b19a004ae33cbec9ef9\",\"dweb:/ipfs/QmRJ9yZkUpzk4433GX3LgVVL8jwpbSYSUwXcucKisf3v4H\"]},\"node_modules/@uniswap/v4-core/src/types/BeforeSwapDelta.sol\":{\"keccak256\":\"0x2a774312d91285313d569da1a718c909655da5432310417692097a1d4dc83a78\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2c7a0379955cff9c17ab9e61f95e42909aa5947c22740f86ce940d09856f782\",\"dweb:/ipfs/QmaAuo8UBYXsGrVuKh8iRoAAdqwtg1jDq515cW1ZRP5m9K\"]},\"node_modules/@uniswap/v4-core/src/types/Currency.sol\":{\"keccak256\":\"0x4a0b84b282577ff6f8acf13ec9f4d32dbb9348748b49611d00e68bee96609c93\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://45f9d62ab3d51b52957279e353853ba1547c3182c9a1e3d1846ada4a90263b01\",\"dweb:/ipfs/QmS8NG84ccQS1yXVD8cv3eKX7J1UKxuJhbUfHTQR2opKF5\"]},\"node_modules/@uniswap/v4-core/src/types/PoolId.sol\":{\"keccak256\":\"0x308311916ea0f5c2fd878b6a2751eb223d170a69e33f601fae56dfe3c5d392af\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://669c2cd7ac17690b5d8831e0bda72822376c3a04b36afed6d31df4d75fe60918\",\"dweb:/ipfs/QmT6EpkxqU8VF3WsgrZ66F3s1cCQRffR95z1HDYZz7ph6y\"]},\"node_modules/@uniswap/v4-core/src/types/PoolKey.sol\":{\"keccak256\":\"0xf89856e0580d7a4856d3187a76858377ccee9d59702d230c338d84388221b786\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f3118fa189025695c37fdf0bdd1190f085ad097484d3c88cf4c56d1db65f639\",\"dweb:/ipfs/QmamXpgtB8GV1CaFLvqefPWSoikLDhMk1yU4heBnVzU8gi\"]},\"node_modules/@uniswap/v4-core/src/types/PoolOperation.sol\":{\"keccak256\":\"0x7a1a107fc1f2208abb2c9364c8c54e56e98dca27673e9441bed2b949b6382162\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ad2470383bc5595d5af17840c64971f457adac68895a4db41ba5c71a4478e07\",\"dweb:/ipfs/QmdwKhBHDZFuqXrR2BfDBD9r7rB2ULGQBznsajRTkTmL4c\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.28+commit.7893614a"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"FEE_GROWTH_GLOBAL0_OFFSET","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"LIQUIDITY_OFFSET","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"POOLS_SLOT","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"POSITIONS_OFFSET","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TICKS_OFFSET","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TICK_BITMAP_OFFSET","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"FEE_GROWTH_GLOBAL0_OFFSET()":{"notice":"index of feeGrowthGlobal0X128 in Pool.State"},"LIQUIDITY_OFFSET()":{"notice":"index of liquidity in Pool.State"},"POOLS_SLOT()":{"notice":"index of pools mapping in the PoolManager"},"POSITIONS_OFFSET()":{"notice":"index of Position.State mapping in Pool.State: mapping(bytes32 => Position.State) positions;"},"TICKS_OFFSET()":{"notice":"index of TicksInfo mapping in Pool.State: mapping(int24 => TickInfo) ticks;"},"TICK_BITMAP_OFFSET()":{"notice":"index of tickBitmap mapping in Pool.State"}},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@uniswap/universal-router/contracts/=node_modules/@uniswap/universal-router/contracts/","@uniswap/v4-core/=node_modules/@uniswap/v4-core/","@uniswap/v4-periphery/=node_modules/@uniswap/v4-periphery/","@zoralabs/coins/=node_modules/@zoralabs/coins/","@zoralabs/shared-contracts/=node_modules/@zoralabs/shared-contracts/src/","ds-test/=node_modules/ds-test/src/","forge-std/=node_modules/forge-std/src/","permit2/src/=node_modules/@uniswap/permit2/src/","solady/=node_modules/solady/src/","solmate/=node_modules/solmate/src/"],"optimizer":{"enabled":true,"runs":100},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"node_modules/@uniswap/v4-core/src/libraries/StateLibrary.sol":"StateLibrary"},"evmVersion":"prague","libraries":{},"viaIR":true},"sources":{"node_modules/@uniswap/v4-core/src/interfaces/IExtsload.sol":{"keccak256":"0x80b53ca4907d6f0088c3b931f2b72cad1dc4615a95094d96bd0fb8dff8d5ba43","urls":["bzz-raw://375c69148622aab7a3537d5fd37d373a8e9731022c8d87bdaee46233b0a99fe1","dweb:/ipfs/QmXFjdoYRxsA5B1kyuxEXgNf3FBoL1zPvy26Qy8EtpdFRN"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/interfaces/IExttload.sol":{"keccak256":"0xc6b68283ebd8d1c789df536756726eed51c589134bb20821b236a0d22a135937","urls":["bzz-raw://294394f72dfc219689209f4130d85601dfd0d63c8d47578050d312db70f9b6c8","dweb:/ipfs/QmTDMQ3oxCGHgEBU48a3Lp4S1rRjc8vVCxkhE5ZNej1bsY"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/interfaces/IHooks.sol":{"keccak256":"0xc131ffa2d04c10a012fe715fe2c115811526b7ea34285cf0a04ce7ce8320da8d","urls":["bzz-raw://3b212358897db5d99c21244d88f97b2e788527552cb430629b472a8cc6289aec","dweb:/ipfs/QmQtwV4dDe2RYk2ErLpaAX7U82jWh1L6Lw2HRuKDvBi84G"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/interfaces/IPoolManager.sol":{"keccak256":"0xbdab3544da3d32dfdf7457baa94e17d5a3012952428559e013ffac45d067038e","urls":["bzz-raw://ce95ff864468e37c76adf71df061d4f3d6f3a5ec1f9bc3aea090463bc72798f4","dweb:/ipfs/QmSbWh1pLbz51yQF4HEu5NRhr8XVv9JYGEw1hq1HudAnCi"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/interfaces/IProtocolFees.sol":{"keccak256":"0x32a666e588a2f66334430357bb1e2424fe7eebeb98a3364b1dd16eb6ccca9848","urls":["bzz-raw://85751d302125881f72e5f8af051c2d5d9b1f606ebaea8ca7d04fccdd27cc252d","dweb:/ipfs/QmeRwomeh9NWm6A6fgNA4KZPQZHPpdKsPQyYsHSFmvud7J"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/interfaces/external/IERC20Minimal.sol":{"keccak256":"0xeccadf1bf69ba2eb51f2fe4fa511bc7bb05bbd6b9f9a3cb8e5d83d9582613e0f","urls":["bzz-raw://118757369892687b99ef46ce28d6861f62c098285bd7687a4f17f7e44e5f81de","dweb:/ipfs/QmUxqbYqQtcEwwFbb9e6BBMePEaSgN8C45v6RKubD4ib8d"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/interfaces/external/IERC6909Claims.sol":{"keccak256":"0xa586f345739e52b0488a0fe40b6e375cce67fdd25758408b0efcb5133ad96a48","urls":["bzz-raw://e8c557b7e52abdbbd82e415a1acc27921446a7fd090b7d4877e52be72619547f","dweb:/ipfs/QmXE2KNPbXmGX8BQF3ei6zhzRTnhoTQg39XmqMnkhbr6QK"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/libraries/CustomRevert.sol":{"keccak256":"0x111ed3031b6990c80a93ae35dde6b6ac0b7e6af471388fdd7461e91edda9b7de","urls":["bzz-raw://c9ea883c98d6ae1829160d0977bb5195761cfd5bc81692d0a941f45717f594cd","dweb:/ipfs/QmZPwxzaeMNv536wzrAMrMswu7vMHuqPVpjcqL3YvCMoxt"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/libraries/FixedPoint128.sol":{"keccak256":"0xad236e10853f4b4b20a35a9bb52b857c4fc79874846b7e444e06ead7f2630542","urls":["bzz-raw://0de1f9a06520b1a689660943faa14fc0b8344ab41fab9e6012ea34bff4b9b3eb","dweb:/ipfs/QmRNMPTyko7W6d6KxuTsnDBa9oZgDK4xiwRRq3H9ASTbwy"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/libraries/FullMath.sol":{"keccak256":"0x4fc73a00817193fd3cac1cc03d8167d21af97d75f1815a070ee31a90c702b4c2","urls":["bzz-raw://c3b2d66d36b1ad56b1ab6e2eb8a816740877b40b461c93f125e88621c8378e52","dweb:/ipfs/QmPGvMZzKQvNiWKd8aRzzdW7oAizwrMgcMtnaworDkVHFC"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/libraries/LiquidityMath.sol":{"keccak256":"0x000ef2eadcc1eb7b2c18a77655f94e76e0e860f605783484657ef65fd6eda353","urls":["bzz-raw://a766b620a7a22798b43c6c1f23b5c6cff0ebf588deb89842bad05208d448cd99","dweb:/ipfs/QmVKjaFJdzkqA3ey2Byum8iTCMssWVD8MmVC8rw62Tj5WD"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/libraries/Position.sol":{"keccak256":"0xddab2a831f1befb6abf5567e77c4582169ca8156cf69eb4f22d8e87f7226a3f9","urls":["bzz-raw://c79fe61b50f3b70cff503abfa6f5643fcbefb9b794855bee1019b1e6d9c083b2","dweb:/ipfs/QmbKmYNQesaMz8bo1b7TMHQcAwaDd3eDPrE5pAdPPZTtk5"],"license":"BUSL-1.1"},"node_modules/@uniswap/v4-core/src/libraries/SafeCast.sol":{"keccak256":"0x42c4a24f996a14d358be397b71f7ec9d7daf666aaec78002c63315a6ee67aa86","urls":["bzz-raw://c3db86e2ba3679105fc32edec656c70282e1fede6cab11217702443f6c26fa59","dweb:/ipfs/QmX4yaaSPdKQzYNRsezjTvZKsubzS8JRTEGFD3fPpTTCcj"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/libraries/StateLibrary.sol":{"keccak256":"0x96db333ee126a841dd959e38e452cc59d73583cb0437a1d48b2052e33a74f952","urls":["bzz-raw://8672bba1eb69608299b0904f4ff305238eb18479d371c26518f278c9ee184cd0","dweb:/ipfs/QmTLu3s6ECvsEDHStQv8HTVHYtvkviBbdjPrFJd4SpVRFY"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/types/BalanceDelta.sol":{"keccak256":"0xa719c8fe51e0a9524280178f19f6851bcc3b3b60e73618f3d60905d35ae5569f","urls":["bzz-raw://7436928dc9de35c6c7c5c636cb51adaf295cfd590da83b19a004ae33cbec9ef9","dweb:/ipfs/QmRJ9yZkUpzk4433GX3LgVVL8jwpbSYSUwXcucKisf3v4H"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/types/BeforeSwapDelta.sol":{"keccak256":"0x2a774312d91285313d569da1a718c909655da5432310417692097a1d4dc83a78","urls":["bzz-raw://a2c7a0379955cff9c17ab9e61f95e42909aa5947c22740f86ce940d09856f782","dweb:/ipfs/QmaAuo8UBYXsGrVuKh8iRoAAdqwtg1jDq515cW1ZRP5m9K"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/types/Currency.sol":{"keccak256":"0x4a0b84b282577ff6f8acf13ec9f4d32dbb9348748b49611d00e68bee96609c93","urls":["bzz-raw://45f9d62ab3d51b52957279e353853ba1547c3182c9a1e3d1846ada4a90263b01","dweb:/ipfs/QmS8NG84ccQS1yXVD8cv3eKX7J1UKxuJhbUfHTQR2opKF5"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/types/PoolId.sol":{"keccak256":"0x308311916ea0f5c2fd878b6a2751eb223d170a69e33f601fae56dfe3c5d392af","urls":["bzz-raw://669c2cd7ac17690b5d8831e0bda72822376c3a04b36afed6d31df4d75fe60918","dweb:/ipfs/QmT6EpkxqU8VF3WsgrZ66F3s1cCQRffR95z1HDYZz7ph6y"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/types/PoolKey.sol":{"keccak256":"0xf89856e0580d7a4856d3187a76858377ccee9d59702d230c338d84388221b786","urls":["bzz-raw://6f3118fa189025695c37fdf0bdd1190f085ad097484d3c88cf4c56d1db65f639","dweb:/ipfs/QmamXpgtB8GV1CaFLvqefPWSoikLDhMk1yU4heBnVzU8gi"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/types/PoolOperation.sol":{"keccak256":"0x7a1a107fc1f2208abb2c9364c8c54e56e98dca27673e9441bed2b949b6382162","urls":["bzz-raw://4ad2470383bc5595d5af17840c64971f457adac68895a4db41ba5c71a4478e07","dweb:/ipfs/QmdwKhBHDZFuqXrR2BfDBD9r7rB2ULGQBznsajRTkTmL4c"],"license":"MIT"}},"version":1},"id":29}
@@ -0,0 +1 @@
1
+ {"abi":[{"type":"error","name":"InvalidMultiple","inputs":[]},{"type":"error","name":"InvalidPercent","inputs":[]},{"type":"error","name":"LengthMismatch","inputs":[]},{"type":"error","name":"PercentOverflow","inputs":[]}],"bytecode":{"object":"0x6080806040523460175760039081601c823930815050f35b5f80fdfe5f80fd","sourceMap":"1669:6910:88:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x5f80fd","sourceMap":"1669:6910:88:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"InvalidMultiple\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidPercent\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LengthMismatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PercentOverflow\",\"type\":\"error\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"MIN_LIMIT_ORDER_SIZE\":{\"details\":\"Minimum coins to create orders - prevents dust\"},\"MULTIPLE_SCALE\":{\"details\":\"1.0x price multiplier (e.g., 2e18 = 2x)\"},\"PERCENT_SCALE\":{\"details\":\"100% in basis points (e.g., 5000 = 50%)\"},\"SQRT_MULTIPLE_SCALE\":{\"details\":\"sqrt(1e18) - scales sqrt calculations without precision loss\"}},\"title\":\"SwapLimitOrders\",\"version\":1},\"userdoc\":{\"errors\":{\"InvalidMultiple()\":[{\"notice\":\"A multiple is \\u2264 1.0x\"}],\"InvalidPercent()\":[{\"notice\":\"A percentage is zero\"}],\"LengthMismatch()\":[{\"notice\":\"Multiples and percentages arrays have different lengths\"}],\"PercentOverflow()\":[{\"notice\":\"Percentages sum exceeds 100%\"}]},\"kind\":\"user\",\"methods\":{},\"notice\":\"Computes limit order ladders on coin swaps\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/libs/SwapLimitOrders.sol\":\"SwapLimitOrders\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@uniswap/universal-router/contracts/=node_modules/@uniswap/universal-router/contracts/\",\":@uniswap/v4-core/=node_modules/@uniswap/v4-core/\",\":@uniswap/v4-periphery/=node_modules/@uniswap/v4-periphery/\",\":@zoralabs/coins/=node_modules/@zoralabs/coins/\",\":@zoralabs/shared-contracts/=node_modules/@zoralabs/shared-contracts/src/\",\":ds-test/=node_modules/ds-test/src/\",\":forge-std/=node_modules/forge-std/src/\",\":permit2/src/=node_modules/@uniswap/permit2/src/\",\":solady/=node_modules/solady/src/\",\":solmate/=node_modules/solmate/src/\"],\"viaIR\":true},\"sources\":{\"node_modules/@uniswap/v4-core/src/interfaces/IHooks.sol\":{\"keccak256\":\"0xc131ffa2d04c10a012fe715fe2c115811526b7ea34285cf0a04ce7ce8320da8d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3b212358897db5d99c21244d88f97b2e788527552cb430629b472a8cc6289aec\",\"dweb:/ipfs/QmQtwV4dDe2RYk2ErLpaAX7U82jWh1L6Lw2HRuKDvBi84G\"]},\"node_modules/@uniswap/v4-core/src/interfaces/external/IERC20Minimal.sol\":{\"keccak256\":\"0xeccadf1bf69ba2eb51f2fe4fa511bc7bb05bbd6b9f9a3cb8e5d83d9582613e0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://118757369892687b99ef46ce28d6861f62c098285bd7687a4f17f7e44e5f81de\",\"dweb:/ipfs/QmUxqbYqQtcEwwFbb9e6BBMePEaSgN8C45v6RKubD4ib8d\"]},\"node_modules/@uniswap/v4-core/src/libraries/CustomRevert.sol\":{\"keccak256\":\"0x111ed3031b6990c80a93ae35dde6b6ac0b7e6af471388fdd7461e91edda9b7de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c9ea883c98d6ae1829160d0977bb5195761cfd5bc81692d0a941f45717f594cd\",\"dweb:/ipfs/QmZPwxzaeMNv536wzrAMrMswu7vMHuqPVpjcqL3YvCMoxt\"]},\"node_modules/@uniswap/v4-core/src/libraries/SafeCast.sol\":{\"keccak256\":\"0x42c4a24f996a14d358be397b71f7ec9d7daf666aaec78002c63315a6ee67aa86\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c3db86e2ba3679105fc32edec656c70282e1fede6cab11217702443f6c26fa59\",\"dweb:/ipfs/QmX4yaaSPdKQzYNRsezjTvZKsubzS8JRTEGFD3fPpTTCcj\"]},\"node_modules/@uniswap/v4-core/src/types/BalanceDelta.sol\":{\"keccak256\":\"0xa719c8fe51e0a9524280178f19f6851bcc3b3b60e73618f3d60905d35ae5569f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7436928dc9de35c6c7c5c636cb51adaf295cfd590da83b19a004ae33cbec9ef9\",\"dweb:/ipfs/QmRJ9yZkUpzk4433GX3LgVVL8jwpbSYSUwXcucKisf3v4H\"]},\"node_modules/@uniswap/v4-core/src/types/BeforeSwapDelta.sol\":{\"keccak256\":\"0x2a774312d91285313d569da1a718c909655da5432310417692097a1d4dc83a78\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2c7a0379955cff9c17ab9e61f95e42909aa5947c22740f86ce940d09856f782\",\"dweb:/ipfs/QmaAuo8UBYXsGrVuKh8iRoAAdqwtg1jDq515cW1ZRP5m9K\"]},\"node_modules/@uniswap/v4-core/src/types/Currency.sol\":{\"keccak256\":\"0x4a0b84b282577ff6f8acf13ec9f4d32dbb9348748b49611d00e68bee96609c93\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://45f9d62ab3d51b52957279e353853ba1547c3182c9a1e3d1846ada4a90263b01\",\"dweb:/ipfs/QmS8NG84ccQS1yXVD8cv3eKX7J1UKxuJhbUfHTQR2opKF5\"]},\"node_modules/@uniswap/v4-core/src/types/PoolId.sol\":{\"keccak256\":\"0x308311916ea0f5c2fd878b6a2751eb223d170a69e33f601fae56dfe3c5d392af\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://669c2cd7ac17690b5d8831e0bda72822376c3a04b36afed6d31df4d75fe60918\",\"dweb:/ipfs/QmT6EpkxqU8VF3WsgrZ66F3s1cCQRffR95z1HDYZz7ph6y\"]},\"node_modules/@uniswap/v4-core/src/types/PoolKey.sol\":{\"keccak256\":\"0xf89856e0580d7a4856d3187a76858377ccee9d59702d230c338d84388221b786\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f3118fa189025695c37fdf0bdd1190f085ad097484d3c88cf4c56d1db65f639\",\"dweb:/ipfs/QmamXpgtB8GV1CaFLvqefPWSoikLDhMk1yU4heBnVzU8gi\"]},\"node_modules/@uniswap/v4-core/src/types/PoolOperation.sol\":{\"keccak256\":\"0x7a1a107fc1f2208abb2c9364c8c54e56e98dca27673e9441bed2b949b6382162\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ad2470383bc5595d5af17840c64971f457adac68895a4db41ba5c71a4478e07\",\"dweb:/ipfs/QmdwKhBHDZFuqXrR2BfDBD9r7rB2ULGQBznsajRTkTmL4c\"]},\"node_modules/@zoralabs/coins/src/interfaces/IDopplerErrors.sol\":{\"keccak256\":\"0xf78efeb8a0d37914bae9be8c6ed70d54a1d48305b3f9e3f8b95d20f9685640ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1e51cc18a8367dc9363a958f179cf2e8af662cbe41474647aa78424be781120e\",\"dweb:/ipfs/QmNrxrY2P7FMRY7tJtV2n5eiPDyM5pRhBpn9wgDfgwdDCs\"]},\"node_modules/@zoralabs/coins/src/libs/CoinConstants.sol\":{\"keccak256\":\"0x0c17b040ed707c2353e4b238bf6bac90d22a71980ff1a091f763da281b7035bf\",\"license\":\"ZORA-DELAYED-OSL-v1\",\"urls\":[\"bzz-raw://083bb0022dd69434858946ea15b55d08483913baf57b428d600ede1eb5a19f46\",\"dweb:/ipfs/QmXdNPvCm2Wv4R8Kbd7FYdnjjQCLWVGsr1DhCn5MrQj3Z7\"]},\"node_modules/@zoralabs/coins/src/libs/DopplerMath.sol\":{\"keccak256\":\"0xafa02392a303dd86c7728266484b038b933bba74cad3a0fb44848a2463626683\",\"license\":\"ZORA-DELAYED-OSL-v1\",\"urls\":[\"bzz-raw://b307a817e4a60a99b1d4ccdbae1fe65b9ce7e6753bb2bb019c8588712cfbe96b\",\"dweb:/ipfs/QmeCjTfTGADS9aU9x2zMyauak3vqSCmiWSEoSBhBVLWaAx\"]},\"node_modules/@zoralabs/coins/src/types/LpPosition.sol\":{\"keccak256\":\"0x19dfc13b9f6a831ee7a624094c17a7c0b20bbc9ef62121dd98d85a8641d53aaf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fe77a4cb9ff9afbf7561ed647d15729b201259ef767d6c140a0b6e9254a97fe6\",\"dweb:/ipfs/QmaieKjUcT2SG2Spdg2sHzZso8zd5YTVsMRRoDzz6Kgn1t\"]},\"node_modules/@zoralabs/coins/src/utils/uniswap/BitMath.sol\":{\"keccak256\":\"0x4b5411b3868695776c707738846c79a2dd96bf2fd29e5fe8a47818cd20e1a19d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3d9016ed3d9902f455ce8aba6cb4e29d7cb47e5af555de00bb802d7f01566070\",\"dweb:/ipfs/QmeHZHQsXkuCN3i1YAt9WayYTTWWtNz5F8R1EspyEER2JN\"]},\"node_modules/@zoralabs/coins/src/utils/uniswap/CustomRevert.sol\":{\"keccak256\":\"0x5c17fced6eedcacc452d65842bb5904bd26b8a72a7973a2d6fac0167700328d4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://07044645057353591b0e9f03e0c6802d225307963b45f443c082bce0738c0c2a\",\"dweb:/ipfs/QmWPo2kbp4jkm6CETwPjpqhdVgeA3EfJAtF1SVZMGbf8xU\"]},\"node_modules/@zoralabs/coins/src/utils/uniswap/FixedPoint96.sol\":{\"keccak256\":\"0x711b83cbdbbfe19afc1df6f45f2f71abb1b75305ecb288e36a37cc286bc8de46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2957b0c179395705c49084b5b0c1033c0f47beeca043658a6c572226f5d07348\",\"dweb:/ipfs/QmZQD8s7u1Kjnydkw6n9FUyzVK9Loo6gYSZXic732Y7J76\"]},\"node_modules/@zoralabs/coins/src/utils/uniswap/FullMath.sol\":{\"keccak256\":\"0xc6b0d61b8d60acb295d196a72f81e577007e822f63c737ae0fa87d63e228f074\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://643ddf8897f3d2610ce5ac45c0571e86cd2a97542c2599121fa39a06daa95509\",\"dweb:/ipfs/QmZ74RCf31apWy8UukKUrFi98kgSK6sRH68MFMGudPVpqx\"]},\"node_modules/@zoralabs/coins/src/utils/uniswap/LiquidityAmounts.sol\":{\"keccak256\":\"0x4811d0187e6ccf97d6323c597355967e481392cbdc65dea804f770dec91cece7\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://8d41f633f2a92b4caeb0430096851b62b0be1f68915603ff8c5b220c693e9755\",\"dweb:/ipfs/QmY9c5EwQVKi2Ak7xude2iUe7TGAdwmChUtwzwWcGb62PE\"]},\"node_modules/@zoralabs/coins/src/utils/uniswap/SafeCast.sol\":{\"keccak256\":\"0x5ec831c0fbdcb16091d35eee2e49d54eaadf7ce72d971aec9ea30f379cba258a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9440106f4a5ff5d829ed68c82de4f92e171c4e9306e89d28fe75b4ca30b5f298\",\"dweb:/ipfs/QmdLJitnGXNMZxG6XZxhvCMjoNEKzpZVJ2dnzGVXtWUSFf\"]},\"node_modules/@zoralabs/coins/src/utils/uniswap/SqrtPriceMath.sol\":{\"keccak256\":\"0x45ed757203ba04c7337435dd32e6231b768abf1709917b1d5e81ae1333513f75\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2fa319aa9c92b8da5a9634407ff487cbf0e0e6e234a99146f49c9ded06e8fd74\",\"dweb:/ipfs/QmcqHrXBGpcfgMyb8DqyPYuafBKuESGcvJo1tfCAUrYokb\"]},\"node_modules/@zoralabs/coins/src/utils/uniswap/TickMath.sol\":{\"keccak256\":\"0xb8d86efe55d877582bdd2d2580d5c57c0fd955fdfb08116dba033f2e8f429e2e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://997e7fc24b30ff5464a5d3db14ac17eb07bed862bbce553a060f38affd8cb6f7\",\"dweb:/ipfs/QmfQ8bo8zEGT6NEDVRdWJaCWaAXMoH7eH8xz14XA1p4Ex3\"]},\"node_modules/@zoralabs/coins/src/utils/uniswap/UnsafeMath.sol\":{\"keccak256\":\"0x44ea34293d502dcff60379eff5504313d7a042ebcae72e7d82ca937f199f3d84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://142c8209cf7ff88b88fa5fe41c0c22a59a8065e1726c0e18b0582facbead3c5c\",\"dweb:/ipfs/QmRZZfsipKck8Ja4pPCK5GYFNfD5TeZggjqLVwJi1AjBzt\"]},\"src/libs/SwapLimitOrders.sol\":{\"keccak256\":\"0x8cae687f28f2afa4b9ca021c0d8f8e3209534986e2c98036ddfe4bdc5d9b3d1b\",\"license\":\"ZORA-DELAYED-OSL-v1\",\"urls\":[\"bzz-raw://873f7e137bbbcc9a56bf362525eaf122ca6912d4e20c44bebabf12f565f78b5a\",\"dweb:/ipfs/QmUfYtnhmc8vFNZaWhjYriMXR1bGg6JzdAbXpS6wMASxHM\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.28+commit.7893614a"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"InvalidMultiple"},{"inputs":[],"type":"error","name":"InvalidPercent"},{"inputs":[],"type":"error","name":"LengthMismatch"},{"inputs":[],"type":"error","name":"PercentOverflow"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@uniswap/universal-router/contracts/=node_modules/@uniswap/universal-router/contracts/","@uniswap/v4-core/=node_modules/@uniswap/v4-core/","@uniswap/v4-periphery/=node_modules/@uniswap/v4-periphery/","@zoralabs/coins/=node_modules/@zoralabs/coins/","@zoralabs/shared-contracts/=node_modules/@zoralabs/shared-contracts/src/","ds-test/=node_modules/ds-test/src/","forge-std/=node_modules/forge-std/src/","permit2/src/=node_modules/@uniswap/permit2/src/","solady/=node_modules/solady/src/","solmate/=node_modules/solmate/src/"],"optimizer":{"enabled":true,"runs":100},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"src/libs/SwapLimitOrders.sol":"SwapLimitOrders"},"evmVersion":"prague","libraries":{},"viaIR":true},"sources":{"node_modules/@uniswap/v4-core/src/interfaces/IHooks.sol":{"keccak256":"0xc131ffa2d04c10a012fe715fe2c115811526b7ea34285cf0a04ce7ce8320da8d","urls":["bzz-raw://3b212358897db5d99c21244d88f97b2e788527552cb430629b472a8cc6289aec","dweb:/ipfs/QmQtwV4dDe2RYk2ErLpaAX7U82jWh1L6Lw2HRuKDvBi84G"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/interfaces/external/IERC20Minimal.sol":{"keccak256":"0xeccadf1bf69ba2eb51f2fe4fa511bc7bb05bbd6b9f9a3cb8e5d83d9582613e0f","urls":["bzz-raw://118757369892687b99ef46ce28d6861f62c098285bd7687a4f17f7e44e5f81de","dweb:/ipfs/QmUxqbYqQtcEwwFbb9e6BBMePEaSgN8C45v6RKubD4ib8d"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/libraries/CustomRevert.sol":{"keccak256":"0x111ed3031b6990c80a93ae35dde6b6ac0b7e6af471388fdd7461e91edda9b7de","urls":["bzz-raw://c9ea883c98d6ae1829160d0977bb5195761cfd5bc81692d0a941f45717f594cd","dweb:/ipfs/QmZPwxzaeMNv536wzrAMrMswu7vMHuqPVpjcqL3YvCMoxt"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/libraries/SafeCast.sol":{"keccak256":"0x42c4a24f996a14d358be397b71f7ec9d7daf666aaec78002c63315a6ee67aa86","urls":["bzz-raw://c3db86e2ba3679105fc32edec656c70282e1fede6cab11217702443f6c26fa59","dweb:/ipfs/QmX4yaaSPdKQzYNRsezjTvZKsubzS8JRTEGFD3fPpTTCcj"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/types/BalanceDelta.sol":{"keccak256":"0xa719c8fe51e0a9524280178f19f6851bcc3b3b60e73618f3d60905d35ae5569f","urls":["bzz-raw://7436928dc9de35c6c7c5c636cb51adaf295cfd590da83b19a004ae33cbec9ef9","dweb:/ipfs/QmRJ9yZkUpzk4433GX3LgVVL8jwpbSYSUwXcucKisf3v4H"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/types/BeforeSwapDelta.sol":{"keccak256":"0x2a774312d91285313d569da1a718c909655da5432310417692097a1d4dc83a78","urls":["bzz-raw://a2c7a0379955cff9c17ab9e61f95e42909aa5947c22740f86ce940d09856f782","dweb:/ipfs/QmaAuo8UBYXsGrVuKh8iRoAAdqwtg1jDq515cW1ZRP5m9K"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/types/Currency.sol":{"keccak256":"0x4a0b84b282577ff6f8acf13ec9f4d32dbb9348748b49611d00e68bee96609c93","urls":["bzz-raw://45f9d62ab3d51b52957279e353853ba1547c3182c9a1e3d1846ada4a90263b01","dweb:/ipfs/QmS8NG84ccQS1yXVD8cv3eKX7J1UKxuJhbUfHTQR2opKF5"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/types/PoolId.sol":{"keccak256":"0x308311916ea0f5c2fd878b6a2751eb223d170a69e33f601fae56dfe3c5d392af","urls":["bzz-raw://669c2cd7ac17690b5d8831e0bda72822376c3a04b36afed6d31df4d75fe60918","dweb:/ipfs/QmT6EpkxqU8VF3WsgrZ66F3s1cCQRffR95z1HDYZz7ph6y"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/types/PoolKey.sol":{"keccak256":"0xf89856e0580d7a4856d3187a76858377ccee9d59702d230c338d84388221b786","urls":["bzz-raw://6f3118fa189025695c37fdf0bdd1190f085ad097484d3c88cf4c56d1db65f639","dweb:/ipfs/QmamXpgtB8GV1CaFLvqefPWSoikLDhMk1yU4heBnVzU8gi"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/types/PoolOperation.sol":{"keccak256":"0x7a1a107fc1f2208abb2c9364c8c54e56e98dca27673e9441bed2b949b6382162","urls":["bzz-raw://4ad2470383bc5595d5af17840c64971f457adac68895a4db41ba5c71a4478e07","dweb:/ipfs/QmdwKhBHDZFuqXrR2BfDBD9r7rB2ULGQBznsajRTkTmL4c"],"license":"MIT"},"node_modules/@zoralabs/coins/src/interfaces/IDopplerErrors.sol":{"keccak256":"0xf78efeb8a0d37914bae9be8c6ed70d54a1d48305b3f9e3f8b95d20f9685640ea","urls":["bzz-raw://1e51cc18a8367dc9363a958f179cf2e8af662cbe41474647aa78424be781120e","dweb:/ipfs/QmNrxrY2P7FMRY7tJtV2n5eiPDyM5pRhBpn9wgDfgwdDCs"],"license":"MIT"},"node_modules/@zoralabs/coins/src/libs/CoinConstants.sol":{"keccak256":"0x0c17b040ed707c2353e4b238bf6bac90d22a71980ff1a091f763da281b7035bf","urls":["bzz-raw://083bb0022dd69434858946ea15b55d08483913baf57b428d600ede1eb5a19f46","dweb:/ipfs/QmXdNPvCm2Wv4R8Kbd7FYdnjjQCLWVGsr1DhCn5MrQj3Z7"],"license":"ZORA-DELAYED-OSL-v1"},"node_modules/@zoralabs/coins/src/libs/DopplerMath.sol":{"keccak256":"0xafa02392a303dd86c7728266484b038b933bba74cad3a0fb44848a2463626683","urls":["bzz-raw://b307a817e4a60a99b1d4ccdbae1fe65b9ce7e6753bb2bb019c8588712cfbe96b","dweb:/ipfs/QmeCjTfTGADS9aU9x2zMyauak3vqSCmiWSEoSBhBVLWaAx"],"license":"ZORA-DELAYED-OSL-v1"},"node_modules/@zoralabs/coins/src/types/LpPosition.sol":{"keccak256":"0x19dfc13b9f6a831ee7a624094c17a7c0b20bbc9ef62121dd98d85a8641d53aaf","urls":["bzz-raw://fe77a4cb9ff9afbf7561ed647d15729b201259ef767d6c140a0b6e9254a97fe6","dweb:/ipfs/QmaieKjUcT2SG2Spdg2sHzZso8zd5YTVsMRRoDzz6Kgn1t"],"license":"MIT"},"node_modules/@zoralabs/coins/src/utils/uniswap/BitMath.sol":{"keccak256":"0x4b5411b3868695776c707738846c79a2dd96bf2fd29e5fe8a47818cd20e1a19d","urls":["bzz-raw://3d9016ed3d9902f455ce8aba6cb4e29d7cb47e5af555de00bb802d7f01566070","dweb:/ipfs/QmeHZHQsXkuCN3i1YAt9WayYTTWWtNz5F8R1EspyEER2JN"],"license":"MIT"},"node_modules/@zoralabs/coins/src/utils/uniswap/CustomRevert.sol":{"keccak256":"0x5c17fced6eedcacc452d65842bb5904bd26b8a72a7973a2d6fac0167700328d4","urls":["bzz-raw://07044645057353591b0e9f03e0c6802d225307963b45f443c082bce0738c0c2a","dweb:/ipfs/QmWPo2kbp4jkm6CETwPjpqhdVgeA3EfJAtF1SVZMGbf8xU"],"license":"MIT"},"node_modules/@zoralabs/coins/src/utils/uniswap/FixedPoint96.sol":{"keccak256":"0x711b83cbdbbfe19afc1df6f45f2f71abb1b75305ecb288e36a37cc286bc8de46","urls":["bzz-raw://2957b0c179395705c49084b5b0c1033c0f47beeca043658a6c572226f5d07348","dweb:/ipfs/QmZQD8s7u1Kjnydkw6n9FUyzVK9Loo6gYSZXic732Y7J76"],"license":"MIT"},"node_modules/@zoralabs/coins/src/utils/uniswap/FullMath.sol":{"keccak256":"0xc6b0d61b8d60acb295d196a72f81e577007e822f63c737ae0fa87d63e228f074","urls":["bzz-raw://643ddf8897f3d2610ce5ac45c0571e86cd2a97542c2599121fa39a06daa95509","dweb:/ipfs/QmZ74RCf31apWy8UukKUrFi98kgSK6sRH68MFMGudPVpqx"],"license":"MIT"},"node_modules/@zoralabs/coins/src/utils/uniswap/LiquidityAmounts.sol":{"keccak256":"0x4811d0187e6ccf97d6323c597355967e481392cbdc65dea804f770dec91cece7","urls":["bzz-raw://8d41f633f2a92b4caeb0430096851b62b0be1f68915603ff8c5b220c693e9755","dweb:/ipfs/QmY9c5EwQVKi2Ak7xude2iUe7TGAdwmChUtwzwWcGb62PE"],"license":"UNLICENSED"},"node_modules/@zoralabs/coins/src/utils/uniswap/SafeCast.sol":{"keccak256":"0x5ec831c0fbdcb16091d35eee2e49d54eaadf7ce72d971aec9ea30f379cba258a","urls":["bzz-raw://9440106f4a5ff5d829ed68c82de4f92e171c4e9306e89d28fe75b4ca30b5f298","dweb:/ipfs/QmdLJitnGXNMZxG6XZxhvCMjoNEKzpZVJ2dnzGVXtWUSFf"],"license":"MIT"},"node_modules/@zoralabs/coins/src/utils/uniswap/SqrtPriceMath.sol":{"keccak256":"0x45ed757203ba04c7337435dd32e6231b768abf1709917b1d5e81ae1333513f75","urls":["bzz-raw://2fa319aa9c92b8da5a9634407ff487cbf0e0e6e234a99146f49c9ded06e8fd74","dweb:/ipfs/QmcqHrXBGpcfgMyb8DqyPYuafBKuESGcvJo1tfCAUrYokb"],"license":"MIT"},"node_modules/@zoralabs/coins/src/utils/uniswap/TickMath.sol":{"keccak256":"0xb8d86efe55d877582bdd2d2580d5c57c0fd955fdfb08116dba033f2e8f429e2e","urls":["bzz-raw://997e7fc24b30ff5464a5d3db14ac17eb07bed862bbce553a060f38affd8cb6f7","dweb:/ipfs/QmfQ8bo8zEGT6NEDVRdWJaCWaAXMoH7eH8xz14XA1p4Ex3"],"license":"MIT"},"node_modules/@zoralabs/coins/src/utils/uniswap/UnsafeMath.sol":{"keccak256":"0x44ea34293d502dcff60379eff5504313d7a042ebcae72e7d82ca937f199f3d84","urls":["bzz-raw://142c8209cf7ff88b88fa5fe41c0c22a59a8065e1726c0e18b0582facbead3c5c","dweb:/ipfs/QmRZZfsipKck8Ja4pPCK5GYFNfD5TeZggjqLVwJi1AjBzt"],"license":"MIT"},"src/libs/SwapLimitOrders.sol":{"keccak256":"0x8cae687f28f2afa4b9ca021c0d8f8e3209534986e2c98036ddfe4bdc5d9b3d1b","urls":["bzz-raw://873f7e137bbbcc9a56bf362525eaf122ca6912d4e20c44bebabf12f565f78b5a","dweb:/ipfs/QmUfYtnhmc8vFNZaWhjYriMXR1bGg6JzdAbXpS6wMASxHM"],"license":"ZORA-DELAYED-OSL-v1"}},"version":1},"id":88}