@zoralabs/limit-orders 0.2.1 → 0.2.2

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 (127) hide show
  1. package/.turbo/turbo-build$colon$js.log +50 -51
  2. package/CHANGELOG.md +12 -0
  3. package/abis/ISetLimitOrderConfig.json +27 -0
  4. package/abis/{SimpleAccessManaged.json → Ownable.json} +29 -10
  5. package/abis/Ownable2Step.json +115 -0
  6. package/abis/PermittedCallers.json +181 -0
  7. package/abis/SwapWithLimitOrders.json +116 -3
  8. package/abis/ZoraLimitOrderBook.json +159 -35
  9. package/cache/solidity-files-cache.json +1 -1
  10. package/dist/index.cjs +191 -27
  11. package/dist/index.cjs.map +1 -1
  12. package/dist/index.js +191 -27
  13. package/dist/index.js.map +1 -1
  14. package/dist/wagmiGenerated.d.ts +217 -32
  15. package/dist/wagmiGenerated.d.ts.map +1 -1
  16. package/out/BalanceDelta.sol/BalanceDeltaLibrary.json +1 -1
  17. package/out/BeforeSwapDelta.sol/BeforeSwapDeltaLibrary.json +1 -1
  18. package/out/BitMath.sol/BitMath.json +1 -1
  19. package/out/BytesLib.sol/BytesLib.json +1 -1
  20. package/out/CoinCommon.sol/CoinCommon.json +1 -1
  21. package/out/CoinConfigurationVersions.sol/CoinConfigurationVersions.json +1 -1
  22. package/out/CoinConstants.sol/CoinConstants.json +1 -1
  23. package/out/Context.sol/Context.json +1 -1
  24. package/out/Currency.sol/CurrencyLibrary.json +1 -1
  25. package/out/CurrencyReserves.sol/CurrencyReserves.json +1 -1
  26. package/out/CustomRevert.sol/CustomRevert.json +1 -1
  27. package/out/DopplerMath.sol/DopplerMath.json +1 -1
  28. package/out/FixedPoint128.sol/FixedPoint128.json +1 -1
  29. package/out/FixedPoint96.sol/FixedPoint96.json +1 -1
  30. package/out/FullMath.sol/FullMath.json +1 -1
  31. package/out/IAllowanceTransfer.sol/IAllowanceTransfer.json +1 -1
  32. package/out/ICoin.sol/ICoin.json +1 -1
  33. package/out/ICoin.sol/IHasCoinType.json +1 -1
  34. package/out/ICoin.sol/IHasPoolKey.json +1 -1
  35. package/out/ICoin.sol/IHasSwapPath.json +1 -1
  36. package/out/ICoin.sol/IHasTotalSupplyForPositions.json +1 -1
  37. package/out/IDeployedCoinVersionLookup.sol/IDeployedCoinVersionLookup.json +1 -1
  38. package/out/IDopplerErrors.sol/IDopplerErrors.json +1 -1
  39. package/out/IEIP712.sol/IEIP712.json +1 -1
  40. package/out/IERC1363.sol/IERC1363.json +1 -1
  41. package/out/IERC165.sol/IERC165.json +1 -1
  42. package/out/IERC20.sol/IERC20.json +1 -1
  43. package/out/IERC20Minimal.sol/IERC20Minimal.json +1 -1
  44. package/out/IERC6909Claims.sol/IERC6909Claims.json +1 -1
  45. package/out/IERC7572.sol/IERC7572.json +1 -1
  46. package/out/IExtsload.sol/IExtsload.json +1 -1
  47. package/out/IExttload.sol/IExttload.json +1 -1
  48. package/out/IHasRewardsRecipients.sol/IHasRewardsRecipients.json +1 -1
  49. package/out/IHooks.sol/IHooks.json +1 -1
  50. package/out/IMsgSender.sol/IMsgSender.json +1 -1
  51. package/out/IPoolManager.sol/IPoolManager.json +1 -1
  52. package/out/IProtocolFees.sol/IProtocolFees.json +1 -1
  53. package/out/ISetLimitOrderConfig.sol/ISetLimitOrderConfig.json +1 -0
  54. package/out/ISupportsLimitOrderFill.sol/ISupportsLimitOrderFill.json +1 -1
  55. package/out/ISwapPathRouter.sol/ISwapPathRouter.json +1 -1
  56. package/out/ISwapRouter.sol/ISwapRouter.json +1 -1
  57. package/out/IUniswapV3SwapCallback.sol/IUniswapV3SwapCallback.json +1 -1
  58. package/out/IUpgradeableV4Hook.sol/IUpgradeableDestinationV4Hook.json +1 -1
  59. package/out/IUpgradeableV4Hook.sol/IUpgradeableDestinationV4HookWithUpdateableFee.json +1 -1
  60. package/out/IUpgradeableV4Hook.sol/IUpgradeableV4Hook.json +1 -1
  61. package/out/IWETH.sol/IWETH.json +1 -1
  62. package/out/IZoraHookRegistry.sol/IZoraHookRegistry.json +1 -1
  63. package/out/IZoraLimitOrderBook.sol/IZoraLimitOrderBook.json +1 -1
  64. package/out/IZoraLimitOrderBookCoinsInterface.sol/IZoraLimitOrderBookCoinsInterface.json +1 -1
  65. package/out/IZoraV4CoinHook.sol/IZoraV4CoinHook.json +1 -1
  66. package/out/LimitOrderCommon.sol/LimitOrderCommon.json +1 -1
  67. package/out/LimitOrderCreate.sol/LimitOrderCreate.json +1 -1
  68. package/out/LimitOrderFill.sol/LimitOrderFill.json +1 -1
  69. package/out/LimitOrderViews.sol/LimitOrderViews.json +1 -1
  70. package/out/LimitOrderWithdraw.sol/LimitOrderWithdraw.json +1 -1
  71. package/out/LiquidityAmounts.sol/LiquidityAmounts.json +1 -1
  72. package/out/LiquidityMath.sol/LiquidityMath.json +1 -1
  73. package/out/Lock.sol/Lock.json +1 -1
  74. package/out/NonzeroDeltaCount.sol/NonzeroDeltaCount.json +1 -1
  75. package/out/Ownable.sol/Ownable.json +1 -0
  76. package/out/Ownable2Step.sol/Ownable2Step.json +1 -0
  77. package/out/Path.sol/Path.json +1 -1
  78. package/out/PathKey.sol/PathKeyLibrary.json +1 -1
  79. package/out/PermittedCallers.sol/PermittedCallers.json +1 -0
  80. package/out/PoolId.sol/PoolIdLibrary.json +1 -1
  81. package/out/Position.sol/Position.json +1 -1
  82. package/out/SafeCast.sol/SafeCast.json +1 -1
  83. package/out/SafeCast160.sol/SafeCast160.json +1 -1
  84. package/out/SafeERC20.sol/SafeERC20.json +1 -1
  85. package/out/SqrtPriceMath.sol/SqrtPriceMath.json +1 -1
  86. package/out/StateLibrary.sol/StateLibrary.json +1 -1
  87. package/out/SwapWithLimitOrders.sol/SwapWithLimitOrders.json +1 -1
  88. package/out/TickBitmap.sol/TickBitmap.json +1 -1
  89. package/out/TickMath.sol/TickMath.json +1 -1
  90. package/out/TransientSlot.sol/TransientSlot.json +1 -1
  91. package/out/TransientStateLibrary.sol/TransientStateLibrary.json +1 -1
  92. package/out/UniV4SwapToCurrency.sol/UniV4SwapToCurrency.json +1 -1
  93. package/out/UnsafeMath.sol/UnsafeMath.json +1 -1
  94. package/out/V3ToV4SwapLib.sol/V3ToV4SwapLib.json +1 -1
  95. package/out/ZoraLimitOrderBook.sol/ZoraLimitOrderBook.json +1 -1
  96. package/out/build-info/37e0124d88d60569.json +1 -0
  97. package/out/uniswap/BitMath.sol/BitMath.json +1 -1
  98. package/out/uniswap/CustomRevert.sol/CustomRevert.json +1 -1
  99. package/out/uniswap/FullMath.sol/FullMath.json +1 -1
  100. package/out/uniswap/SafeCast.sol/SafeCast.json +1 -1
  101. package/out/uniswap/TickMath.sol/TickMath.json +1 -1
  102. package/package/wagmiGenerated.ts +190 -26
  103. package/package.json +1 -1
  104. package/src/IZoraLimitOrderBook.sol +3 -5
  105. package/src/ZoraLimitOrderBook.sol +14 -45
  106. package/src/access/PermittedCallers.sol +41 -0
  107. package/src/router/ISetLimitOrderConfig.sol +12 -0
  108. package/src/router/SwapWithLimitOrders.sol +8 -9
  109. package/test/LimitOrderAccessControl.t.sol +173 -156
  110. package/test/LimitOrderFill.t.sol +0 -5
  111. package/test/SwapWithLimitOrders.t.sol +0 -2
  112. package/test/SwapWithLimitOrdersRouter.t.sol +0 -2
  113. package/test/gas/LimitOrderFillGas.t.sol +0 -7
  114. package/test/gas/LimitOrderSwapGas.t.sol +0 -6
  115. package/test/unit/SwapLimitOrdersUnit.t.sol +4 -4
  116. package/test/unit/SwapLimitOrdersValidation.t.sol +8 -8
  117. package/test/utils/BaseTest.sol +7 -16
  118. package/test/utils/TestableZoraLimitOrderBook.sol +2 -2
  119. package/abis/IAuthority.json +0 -31
  120. package/abis/SimpleAccessManager.json +0 -351
  121. package/out/IAuthority.sol/IAuthority.json +0 -1
  122. package/out/SimpleAccessManaged.sol/SimpleAccessManaged.json +0 -1
  123. package/out/SimpleAccessManager.sol/SimpleAccessManager.json +0 -1
  124. package/out/build-info/876cc09bc44cc8a7.json +0 -1
  125. package/src/access/SimpleAccessManaged.sol +0 -76
  126. package/src/access/SimpleAccessManager.sol +0 -268
  127. package/test/SimpleAccessManager.t.sol +0 -420
@@ -1,17 +1,17 @@
1
1
 
2
- > @zoralabs/limit-orders@0.2.1 build:js /home/runner/work/zora-protocol-private/zora-protocol-private/packages/limit-orders
2
+ > @zoralabs/limit-orders@0.2.2 build:js /home/runner/work/zora-protocol-private/zora-protocol-private/packages/limit-orders
3
3
  > pnpm run wagmi:generate && pnpm run copy-abis && pnpm run prettier:write && tsup
4
4
 
5
5
 
6
- > @zoralabs/limit-orders@0.2.1 wagmi:generate /home/runner/work/zora-protocol-private/zora-protocol-private/packages/limit-orders
6
+ > @zoralabs/limit-orders@0.2.2 wagmi:generate /home/runner/work/zora-protocol-private/zora-protocol-private/packages/limit-orders
7
7
  > pnpm run build:contracts:minimal && wagmi generate && pnpm exec rename-generated-abi-casing ./package/wagmiGenerated.ts
8
8
 
9
9
 
10
- > @zoralabs/limit-orders@0.2.1 build:contracts:minimal /home/runner/work/zora-protocol-private/zora-protocol-private/packages/limit-orders
10
+ > @zoralabs/limit-orders@0.2.2 build:contracts:minimal /home/runner/work/zora-protocol-private/zora-protocol-private/packages/limit-orders
11
11
  > forge build src/ --no-metadata
12
12
 
13
- Compiling 92 files with Solc 0.8.28
14
- Solc 0.8.28 finished in 8.26s
13
+ Compiling 93 files with Solc 0.8.28
14
+ Solc 0.8.28 finished in 7.13s
15
15
  Compiler run successful!
16
16
  - Validating plugins
17
17
  ✔ Validating plugins
@@ -26,51 +26,50 @@ Compiler run successful!
26
26
  ✅ Updated ./package/wagmiGenerated.ts (3 replacements)
27
27
  ✨ All files processed successfully!
28
28
 
29
- > @zoralabs/limit-orders@0.2.1 copy-abis /home/runner/work/zora-protocol-private/zora-protocol-private/packages/limit-orders
29
+ > @zoralabs/limit-orders@0.2.2 copy-abis /home/runner/work/zora-protocol-private/zora-protocol-private/packages/limit-orders
30
30
  > pnpm exec bundle-abis
31
31
 
32
32
 
33
- > @zoralabs/limit-orders@0.2.1 prettier:write /home/runner/work/zora-protocol-private/zora-protocol-private/packages/limit-orders
33
+ > @zoralabs/limit-orders@0.2.2 prettier:write /home/runner/work/zora-protocol-private/zora-protocol-private/packages/limit-orders
34
34
  > prettier --write 'src/**/*.sol' 'test/**/*.sol'
35
35
 
36
- src/access/SimpleAccessManaged.sol 345ms (unchanged)
37
- src/access/SimpleAccessManager.sol 253ms (unchanged)
38
- src/IZoraLimitOrderBook.sol 62ms (unchanged)
39
- src/libs/LimitOrderBitmap.sol 66ms (unchanged)
40
- src/libs/LimitOrderCommon.sol 207ms (unchanged)
41
- src/libs/LimitOrderCreate.sol 482ms (unchanged)
42
- src/libs/LimitOrderFill.sol 243ms (unchanged)
43
- src/libs/LimitOrderLiquidity.sol 232ms (unchanged)
44
- src/libs/LimitOrderQueues.sol 37ms (unchanged)
45
- src/libs/LimitOrderStorage.sol 16ms (unchanged)
46
- src/libs/LimitOrderTypes.sol 2ms (unchanged)
47
- src/libs/LimitOrderViews.sol 132ms (unchanged)
48
- src/libs/LimitOrderWithdraw.sol 91ms (unchanged)
49
- src/libs/Permit2Payments.sol 32ms (unchanged)
50
- src/libs/SwapLimitOrders.sol 161ms (unchanged)
51
- src/router/SwapWithLimitOrders.sol 269ms (unchanged)
52
- src/ZoraLimitOrderBook.sol 136ms (unchanged)
53
- test/gas/LimitOrderFillGas.t.sol 851ms (unchanged)
54
- test/gas/LimitOrderSwapGas.t.sol 310ms (unchanged)
55
- test/LimitOrderAccessControl.t.sol 402ms (unchanged)
56
- test/LimitOrderBitmap.t.sol 217ms (unchanged)
57
- test/LimitOrderCreate.t.sol 392ms (unchanged)
58
- test/LimitOrderFill.t.sol 1071ms (unchanged)
59
- test/LimitOrderLibraries.t.sol 381ms (unchanged)
60
- test/LimitOrderLiquidityPayouts.t.sol 436ms (unchanged)
61
- test/LimitOrderV4Pools.t.sol 147ms (unchanged)
62
- test/LimitOrderWithdraw.t.sol 677ms (unchanged)
63
- test/SimpleAccessManager.t.sol 303ms (unchanged)
64
- test/SwapWithLimitOrders.t.sol 125ms (unchanged)
65
- test/SwapWithLimitOrdersRouter.t.sol 636ms (unchanged)
66
- test/unit/LimitOrderBitmapUnit.t.sol 86ms
67
- test/unit/LimitOrderCreateUnit.t.sol 172ms (unchanged)
68
- test/unit/SwapLimitOrdersUnit.t.sol 637ms (unchanged)
69
- test/unit/SwapLimitOrdersValidation.t.sol 229ms (unchanged)
70
- test/unit/SwapWithLimitOrdersUnit.t.sol 69ms (unchanged)
71
- test/utils/BaseTest.sol 635ms (unchanged)
72
- test/utils/MockWETH.sol 33ms (unchanged)
73
- test/utils/TestableZoraLimitOrderBook.sol 37ms (unchanged)
36
+ src/access/PermittedCallers.sol 449ms (unchanged)
37
+ src/IZoraLimitOrderBook.sol 54ms (unchanged)
38
+ src/libs/LimitOrderBitmap.sol 57ms (unchanged)
39
+ src/libs/LimitOrderCommon.sol 210ms (unchanged)
40
+ src/libs/LimitOrderCreate.sol 374ms (unchanged)
41
+ src/libs/LimitOrderFill.sol 244ms (unchanged)
42
+ src/libs/LimitOrderLiquidity.sol 250ms (unchanged)
43
+ src/libs/LimitOrderQueues.sol 43ms (unchanged)
44
+ src/libs/LimitOrderStorage.sol 13ms (unchanged)
45
+ src/libs/LimitOrderTypes.sol 3ms (unchanged)
46
+ src/libs/LimitOrderViews.sol 114ms (unchanged)
47
+ src/libs/LimitOrderWithdraw.sol 109ms (unchanged)
48
+ src/libs/Permit2Payments.sol 17ms (unchanged)
49
+ src/libs/SwapLimitOrders.sol 173ms (unchanged)
50
+ src/router/ISetLimitOrderConfig.sol 1ms (unchanged)
51
+ src/router/SwapWithLimitOrders.sol 301ms (unchanged)
52
+ src/ZoraLimitOrderBook.sol 111ms (unchanged)
53
+ test/gas/LimitOrderFillGas.t.sol 792ms (unchanged)
54
+ test/gas/LimitOrderSwapGas.t.sol 283ms (unchanged)
55
+ test/LimitOrderAccessControl.t.sol 396ms (unchanged)
56
+ test/LimitOrderBitmap.t.sol 212ms (unchanged)
57
+ test/LimitOrderCreate.t.sol 364ms (unchanged)
58
+ test/LimitOrderFill.t.sol 999ms (unchanged)
59
+ test/LimitOrderLibraries.t.sol 371ms (unchanged)
60
+ test/LimitOrderLiquidityPayouts.t.sol 420ms (unchanged)
61
+ test/LimitOrderV4Pools.t.sol 141ms (unchanged)
62
+ test/LimitOrderWithdraw.t.sol 665ms (unchanged)
63
+ test/SwapWithLimitOrders.t.sol 88ms (unchanged)
64
+ test/SwapWithLimitOrdersRouter.t.sol 626ms (unchanged)
65
+ test/unit/LimitOrderBitmapUnit.t.sol 80ms (unchanged)
66
+ test/unit/LimitOrderCreateUnit.t.sol 193ms (unchanged)
67
+ test/unit/SwapLimitOrdersUnit.t.sol 601ms (unchanged)
68
+ test/unit/SwapLimitOrdersValidation.t.sol 228ms (unchanged)
69
+ test/unit/SwapWithLimitOrdersUnit.t.sol 63ms (unchanged)
70
+ test/utils/BaseTest.sol 593ms (unchanged)
71
+ test/utils/MockWETH.sol 34ms (unchanged)
72
+ test/utils/TestableZoraLimitOrderBook.sol 41ms (unchanged)
74
73
  CLI Building entry: package/index.ts
75
74
  CLI Using tsconfig: tsconfig.json
76
75
  CLI tsup v8.4.0
@@ -79,9 +78,9 @@ test/utils/TestableZoraLimitOrderBook.sol 37ms (unchanged)
79
78
  CLI Cleaning output folder
80
79
  CJS Build start
81
80
  ESM Build start
82
- CJS dist/index.cjs 22.04 KB
83
- CJS dist/index.cjs.map 37.57 KB
84
- CJS ⚡️ Build success in 24ms
85
- ESM dist/index.js 20.87 KB
86
- ESM dist/index.js.map 37.45 KB
87
- ESM ⚡️ Build success in 25ms
81
+ CJS dist/index.cjs 25.65 KB
82
+ CJS dist/index.cjs.map 44.14 KB
83
+ CJS ⚡️ Build success in 35ms
84
+ ESM dist/index.js 24.48 KB
85
+ ESM dist/index.js.map 44.03 KB
86
+ ESM ⚡️ Build success in 35ms
package/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # @zoralabs/limit-orders
2
2
 
3
+ ## 0.2.2
4
+
5
+ ### Patch Changes
6
+
7
+ - bb2c2b76: Replace AccessManager with PermittedCallers + Ownable2Step for access control in ZoraLimitOrderBook and SwapWithLimitOrders contracts.
8
+
9
+ - Remove AccessManager and SimpleAccessManaged pattern
10
+ - Use OpenZeppelin Ownable2Step for two-step ownership transfer
11
+ - Add `permittedCallers` mapping to gate `create()` access (public by default, owner can restrict)
12
+ - Add `isPermittedCaller()` getter and `setPermittedCallers()` batch setter functions
13
+ - Owner (multisig) retains access to `setMaxFillCount()` and `setLimitOrderConfig()` functions
14
+
3
15
  ## 0.2.1
4
16
 
5
17
  ### Patch Changes
@@ -0,0 +1,27 @@
1
+ [
2
+ {
3
+ "type": "function",
4
+ "name": "setLimitOrderConfig",
5
+ "inputs": [
6
+ {
7
+ "name": "config",
8
+ "type": "tuple",
9
+ "internalType": "struct LimitOrderConfig",
10
+ "components": [
11
+ {
12
+ "name": "multiples",
13
+ "type": "uint256[]",
14
+ "internalType": "uint256[]"
15
+ },
16
+ {
17
+ "name": "percentages",
18
+ "type": "uint256[]",
19
+ "internalType": "uint256[]"
20
+ }
21
+ ]
22
+ }
23
+ ],
24
+ "outputs": [],
25
+ "stateMutability": "nonpayable"
26
+ }
27
+ ]
@@ -1,7 +1,7 @@
1
1
  [
2
2
  {
3
3
  "type": "function",
4
- "name": "authority",
4
+ "name": "owner",
5
5
  "inputs": [],
6
6
  "outputs": [
7
7
  {
@@ -14,10 +14,17 @@
14
14
  },
15
15
  {
16
16
  "type": "function",
17
- "name": "setAuthority",
17
+ "name": "renounceOwnership",
18
+ "inputs": [],
19
+ "outputs": [],
20
+ "stateMutability": "nonpayable"
21
+ },
22
+ {
23
+ "type": "function",
24
+ "name": "transferOwnership",
18
25
  "inputs": [
19
26
  {
20
- "name": "newAuthority",
27
+ "name": "newOwner",
21
28
  "type": "address",
22
29
  "internalType": "address"
23
30
  }
@@ -27,12 +34,18 @@
27
34
  },
28
35
  {
29
36
  "type": "event",
30
- "name": "AuthorityUpdated",
37
+ "name": "OwnershipTransferred",
31
38
  "inputs": [
32
39
  {
33
- "name": "authority",
40
+ "name": "previousOwner",
34
41
  "type": "address",
35
- "indexed": false,
42
+ "indexed": true,
43
+ "internalType": "address"
44
+ },
45
+ {
46
+ "name": "newOwner",
47
+ "type": "address",
48
+ "indexed": true,
36
49
  "internalType": "address"
37
50
  }
38
51
  ],
@@ -40,10 +53,10 @@
40
53
  },
41
54
  {
42
55
  "type": "error",
43
- "name": "AccessManagedInvalidAuthority",
56
+ "name": "OwnableInvalidOwner",
44
57
  "inputs": [
45
58
  {
46
- "name": "authority",
59
+ "name": "owner",
47
60
  "type": "address",
48
61
  "internalType": "address"
49
62
  }
@@ -51,7 +64,13 @@
51
64
  },
52
65
  {
53
66
  "type": "error",
54
- "name": "AccessManagedUnauthorized",
55
- "inputs": []
67
+ "name": "OwnableUnauthorizedAccount",
68
+ "inputs": [
69
+ {
70
+ "name": "account",
71
+ "type": "address",
72
+ "internalType": "address"
73
+ }
74
+ ]
56
75
  }
57
76
  ]
@@ -0,0 +1,115 @@
1
+ [
2
+ {
3
+ "type": "function",
4
+ "name": "acceptOwnership",
5
+ "inputs": [],
6
+ "outputs": [],
7
+ "stateMutability": "nonpayable"
8
+ },
9
+ {
10
+ "type": "function",
11
+ "name": "owner",
12
+ "inputs": [],
13
+ "outputs": [
14
+ {
15
+ "name": "",
16
+ "type": "address",
17
+ "internalType": "address"
18
+ }
19
+ ],
20
+ "stateMutability": "view"
21
+ },
22
+ {
23
+ "type": "function",
24
+ "name": "pendingOwner",
25
+ "inputs": [],
26
+ "outputs": [
27
+ {
28
+ "name": "",
29
+ "type": "address",
30
+ "internalType": "address"
31
+ }
32
+ ],
33
+ "stateMutability": "view"
34
+ },
35
+ {
36
+ "type": "function",
37
+ "name": "renounceOwnership",
38
+ "inputs": [],
39
+ "outputs": [],
40
+ "stateMutability": "nonpayable"
41
+ },
42
+ {
43
+ "type": "function",
44
+ "name": "transferOwnership",
45
+ "inputs": [
46
+ {
47
+ "name": "newOwner",
48
+ "type": "address",
49
+ "internalType": "address"
50
+ }
51
+ ],
52
+ "outputs": [],
53
+ "stateMutability": "nonpayable"
54
+ },
55
+ {
56
+ "type": "event",
57
+ "name": "OwnershipTransferStarted",
58
+ "inputs": [
59
+ {
60
+ "name": "previousOwner",
61
+ "type": "address",
62
+ "indexed": true,
63
+ "internalType": "address"
64
+ },
65
+ {
66
+ "name": "newOwner",
67
+ "type": "address",
68
+ "indexed": true,
69
+ "internalType": "address"
70
+ }
71
+ ],
72
+ "anonymous": false
73
+ },
74
+ {
75
+ "type": "event",
76
+ "name": "OwnershipTransferred",
77
+ "inputs": [
78
+ {
79
+ "name": "previousOwner",
80
+ "type": "address",
81
+ "indexed": true,
82
+ "internalType": "address"
83
+ },
84
+ {
85
+ "name": "newOwner",
86
+ "type": "address",
87
+ "indexed": true,
88
+ "internalType": "address"
89
+ }
90
+ ],
91
+ "anonymous": false
92
+ },
93
+ {
94
+ "type": "error",
95
+ "name": "OwnableInvalidOwner",
96
+ "inputs": [
97
+ {
98
+ "name": "owner",
99
+ "type": "address",
100
+ "internalType": "address"
101
+ }
102
+ ]
103
+ },
104
+ {
105
+ "type": "error",
106
+ "name": "OwnableUnauthorizedAccount",
107
+ "inputs": [
108
+ {
109
+ "name": "account",
110
+ "type": "address",
111
+ "internalType": "address"
112
+ }
113
+ ]
114
+ }
115
+ ]
@@ -0,0 +1,181 @@
1
+ [
2
+ {
3
+ "type": "function",
4
+ "name": "acceptOwnership",
5
+ "inputs": [],
6
+ "outputs": [],
7
+ "stateMutability": "nonpayable"
8
+ },
9
+ {
10
+ "type": "function",
11
+ "name": "isPermittedCaller",
12
+ "inputs": [
13
+ {
14
+ "name": "caller",
15
+ "type": "address",
16
+ "internalType": "address"
17
+ }
18
+ ],
19
+ "outputs": [
20
+ {
21
+ "name": "",
22
+ "type": "bool",
23
+ "internalType": "bool"
24
+ }
25
+ ],
26
+ "stateMutability": "view"
27
+ },
28
+ {
29
+ "type": "function",
30
+ "name": "owner",
31
+ "inputs": [],
32
+ "outputs": [
33
+ {
34
+ "name": "",
35
+ "type": "address",
36
+ "internalType": "address"
37
+ }
38
+ ],
39
+ "stateMutability": "view"
40
+ },
41
+ {
42
+ "type": "function",
43
+ "name": "pendingOwner",
44
+ "inputs": [],
45
+ "outputs": [
46
+ {
47
+ "name": "",
48
+ "type": "address",
49
+ "internalType": "address"
50
+ }
51
+ ],
52
+ "stateMutability": "view"
53
+ },
54
+ {
55
+ "type": "function",
56
+ "name": "renounceOwnership",
57
+ "inputs": [],
58
+ "outputs": [],
59
+ "stateMutability": "nonpayable"
60
+ },
61
+ {
62
+ "type": "function",
63
+ "name": "setPermittedCallers",
64
+ "inputs": [
65
+ {
66
+ "name": "callers",
67
+ "type": "address[]",
68
+ "internalType": "address[]"
69
+ },
70
+ {
71
+ "name": "permitted",
72
+ "type": "bool[]",
73
+ "internalType": "bool[]"
74
+ }
75
+ ],
76
+ "outputs": [],
77
+ "stateMutability": "nonpayable"
78
+ },
79
+ {
80
+ "type": "function",
81
+ "name": "transferOwnership",
82
+ "inputs": [
83
+ {
84
+ "name": "newOwner",
85
+ "type": "address",
86
+ "internalType": "address"
87
+ }
88
+ ],
89
+ "outputs": [],
90
+ "stateMutability": "nonpayable"
91
+ },
92
+ {
93
+ "type": "event",
94
+ "name": "OwnershipTransferStarted",
95
+ "inputs": [
96
+ {
97
+ "name": "previousOwner",
98
+ "type": "address",
99
+ "indexed": true,
100
+ "internalType": "address"
101
+ },
102
+ {
103
+ "name": "newOwner",
104
+ "type": "address",
105
+ "indexed": true,
106
+ "internalType": "address"
107
+ }
108
+ ],
109
+ "anonymous": false
110
+ },
111
+ {
112
+ "type": "event",
113
+ "name": "OwnershipTransferred",
114
+ "inputs": [
115
+ {
116
+ "name": "previousOwner",
117
+ "type": "address",
118
+ "indexed": true,
119
+ "internalType": "address"
120
+ },
121
+ {
122
+ "name": "newOwner",
123
+ "type": "address",
124
+ "indexed": true,
125
+ "internalType": "address"
126
+ }
127
+ ],
128
+ "anonymous": false
129
+ },
130
+ {
131
+ "type": "event",
132
+ "name": "PermittedCallerUpdated",
133
+ "inputs": [
134
+ {
135
+ "name": "caller",
136
+ "type": "address",
137
+ "indexed": true,
138
+ "internalType": "address"
139
+ },
140
+ {
141
+ "name": "permitted",
142
+ "type": "bool",
143
+ "indexed": false,
144
+ "internalType": "bool"
145
+ }
146
+ ],
147
+ "anonymous": false
148
+ },
149
+ {
150
+ "type": "error",
151
+ "name": "CallerNotPermitted",
152
+ "inputs": []
153
+ },
154
+ {
155
+ "type": "error",
156
+ "name": "OwnableInvalidOwner",
157
+ "inputs": [
158
+ {
159
+ "name": "owner",
160
+ "type": "address",
161
+ "internalType": "address"
162
+ }
163
+ ]
164
+ },
165
+ {
166
+ "type": "error",
167
+ "name": "OwnableUnauthorizedAccount",
168
+ "inputs": [
169
+ {
170
+ "name": "account",
171
+ "type": "address",
172
+ "internalType": "address"
173
+ }
174
+ ]
175
+ },
176
+ {
177
+ "type": "error",
178
+ "name": "PermittedCallersLengthMismatch",
179
+ "inputs": []
180
+ }
181
+ ]