@layerzerolabs/utils-upgradeable-evm-contracts 0.2.74

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 (37) hide show
  1. package/.turbo/turbo-lint.log +491 -0
  2. package/.turbo/turbo-test.log +1356 -0
  3. package/LICENSE +23 -0
  4. package/contracts/access/AccessControl2StepUpgradeable.sol +144 -0
  5. package/contracts/allowlist/AllowlistBaseUpgradeable.sol +184 -0
  6. package/contracts/allowlist/AllowlistRBACUpgradeable.sol +55 -0
  7. package/contracts/fee-accounting/FeeHandlerBaseUpgradeable.sol +69 -0
  8. package/contracts/fee-accounting/FeeHandlerRBACUpgradeable.sol +34 -0
  9. package/contracts/fee-config/FeeConfigBaseUpgradeable.sol +128 -0
  10. package/contracts/fee-config/FeeConfigRBACUpgradeable.sol +44 -0
  11. package/contracts/libs/EnumerableSetPagination.sol +77 -0
  12. package/contracts/pause/PauseBaseUpgradeable.sol +107 -0
  13. package/contracts/pause/PauseRBACUpgradeable.sol +47 -0
  14. package/contracts/pause-by-id/PauseByIDBaseUpgradeable.sol +127 -0
  15. package/contracts/pause-by-id/PauseByIDRBACUpgradeable.sol +74 -0
  16. package/contracts/rate-limiter/RateLimiterBaseUpgradeable.sol +636 -0
  17. package/contracts/rate-limiter/RateLimiterRBACUpgradeable.sol +89 -0
  18. package/contracts/rate-limiter/libs/RateLimiterUtils.sol +82 -0
  19. package/foundry.toml +27 -0
  20. package/package.json +34 -0
  21. package/solhint.config.js +3 -0
  22. package/test/AccessControl2StepUpgradeable.t.sol +374 -0
  23. package/test/AllowlistBaseUpgradeable.t.sol +380 -0
  24. package/test/AllowlistRBACUpgradeable.t.sol +84 -0
  25. package/test/EnumerableSetPagination.t.sol +445 -0
  26. package/test/FeeConfigBaseUpgradeable.t.sol +232 -0
  27. package/test/FeeConfigRBACUpgradeable.t.sol +59 -0
  28. package/test/FeeHandlerBaseUpgradeable.t.sol +78 -0
  29. package/test/FeeHandlerRBACUpgradeable.t.sol +45 -0
  30. package/test/PauseBaseUpgradeable.t.sol +244 -0
  31. package/test/PauseByIDBaseUpgradeable.t.sol +337 -0
  32. package/test/PauseByIDRBACUpgradeable.t.sol +414 -0
  33. package/test/PauseRBACUpgradeable.t.sol +258 -0
  34. package/test/RateLimiterBaseUpgradeable.t.sol +826 -0
  35. package/test/RateLimiterRBACUpgradeable.t.sol +128 -0
  36. package/test/RateLimiterRBACUpgradeableInvariant.t.sol +444 -0
  37. package/test/RateLimiterUtils.t.sol +137 -0
@@ -0,0 +1,1356 @@
1
+
2
+ > @layerzerolabs/utils-upgradeable-evm-contracts@0.0.0 test /home/runner/work/monorepo-internal/monorepo-internal/contracts/common/utils/evm/upgradeable
3
+ > pnpm lz-tool forge test
4
+
5
+ ✅ forge-1.3.6-hardhat-2.26.3
6
+ 🔧 forge version: 1.3.6
7
+ $ docker image inspect --format {{.Id}} 438003944538.dkr.ecr.us-east-1.amazonaws.com/layerzerolabs/evm-tooling:forge-1.3.6-hardhat-2.26.3-patch-3
8
+ (node:66898) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///home/runner/work/monorepo-internal/monorepo-internal/configs/vm-tooling/values/docker-image-repo.ts is not specified and it doesn't parse as CommonJS.
9
+ Reparsing as ES module because module syntax was detected. This incurs a performance overhead.
10
+ To eliminate this warning, add "type": "module" to /home/runner/work/monorepo-internal/monorepo-internal/package.json.
11
+ (Use `node --trace-warnings ...` to show where the warning was created)
12
+ Error response from daemon: No such image: 438003944538.dkr.ecr.us-east-1.amazonaws.com/layerzerolabs/evm-tooling:forge-1.3.6-hardhat-2.26.3-patch-3
13
+ 📥 Pulling Docker image from: 438003944538.dkr.ecr.us-east-1.amazonaws.com/layerzerolabs/evm-tooling:forge-1.3.6-hardhat-2.26.3-patch-3
14
+ $ docker pull 438003944538.dkr.ecr.us-east-1.amazonaws.com/layerzerolabs/evm-tooling:forge-1.3.6-hardhat-2.26.3-patch-3
15
+ forge-1.3.6-hardhat-2.26.3-patch-3: Pulling from layerzerolabs/evm-tooling
16
+ 86ec798129ac: Pulling fs layer
17
+ eef7c391911c: Pulling fs layer
18
+ cc2ecf4065b7: Pulling fs layer
19
+ 5760fdd70374: Pulling fs layer
20
+ c70db14240a1: Pulling fs layer
21
+ 0cb2c6965bde: Pulling fs layer
22
+ 885bca26f927: Pulling fs layer
23
+ 8e167e77288f: Pulling fs layer
24
+ 45d43cc973ba: Pulling fs layer
25
+ 44c09156221f: Pulling fs layer
26
+ f2fb700979ad: Pulling fs layer
27
+ 2a1ced882ba9: Pulling fs layer
28
+ 597168d5c38e: Pulling fs layer
29
+ e431adaf232f: Pulling fs layer
30
+ 36e15e3f2788: Pulling fs layer
31
+ 36e15e3f2788: Waiting
32
+ eef7c391911c: Download complete
33
+ 5760fdd70374: Waiting
34
+ c70db14240a1: Waiting
35
+ 0cb2c6965bde: Waiting
36
+ 885bca26f927: Waiting
37
+ 8e167e77288f: Waiting
38
+ 45d43cc973ba: Waiting
39
+ 44c09156221f: Waiting
40
+ f2fb700979ad: Waiting
41
+ 2a1ced882ba9: Waiting
42
+ 597168d5c38e: Waiting
43
+ e431adaf232f: Waiting
44
+ 5760fdd70374: Verifying Checksum
45
+ 5760fdd70374: Download complete
46
+ c70db14240a1: Download complete
47
+ cc2ecf4065b7: Verifying Checksum
48
+ cc2ecf4065b7: Download complete
49
+ 86ec798129ac: Verifying Checksum
50
+ 86ec798129ac: Download complete
51
+ 8e167e77288f: Verifying Checksum
52
+ 8e167e77288f: Download complete
53
+ 45d43cc973ba: Verifying Checksum
54
+ 45d43cc973ba: Download complete
55
+ 44c09156221f: Verifying Checksum
56
+ 44c09156221f: Download complete
57
+ f2fb700979ad: Verifying Checksum
58
+ f2fb700979ad: Download complete
59
+ 0cb2c6965bde: Verifying Checksum
60
+ 0cb2c6965bde: Download complete
61
+ 597168d5c38e: Verifying Checksum
62
+ 597168d5c38e: Download complete
63
+ 86ec798129ac: Pull complete
64
+ eef7c391911c: Pull complete
65
+ cc2ecf4065b7: Pull complete
66
+ 5760fdd70374: Pull complete
67
+ c70db14240a1: Pull complete
68
+ 2a1ced882ba9: Verifying Checksum
69
+ 2a1ced882ba9: Download complete
70
+ 36e15e3f2788: Verifying Checksum
71
+ 36e15e3f2788: Download complete
72
+ 0cb2c6965bde: Pull complete
73
+ e431adaf232f: Download complete
74
+ 885bca26f927: Download complete
75
+ 885bca26f927: Pull complete
76
+ 8e167e77288f: Pull complete
77
+ 45d43cc973ba: Pull complete
78
+ 44c09156221f: Pull complete
79
+ f2fb700979ad: Pull complete
80
+ 2a1ced882ba9: Pull complete
81
+ 597168d5c38e: Pull complete
82
+ e431adaf232f: Pull complete
83
+ 36e15e3f2788: Pull complete
84
+ Digest: sha256:08b858b586759ec59f4df44c0bc5eac9f856a1eb32b6ce37f79f31a20a89ed52
85
+ Status: Image is up to date for 438003944538.dkr.ecr.us-east-1.amazonaws.com/layerzerolabs/evm-tooling:forge-1.3.6-hardhat-2.26.3-patch-3
86
+ 438003944538.dkr.ecr.us-east-1.amazonaws.com/layerzerolabs/evm-tooling:forge-1.3.6-hardhat-2.26.3-patch-3
87
+ ✅ Successfully pulled: 438003944538.dkr.ecr.us-east-1.amazonaws.com/layerzerolabs/evm-tooling:forge-1.3.6-hardhat-2.26.3-patch-3
88
+ 👤 Running container as UID:GID 1001:1001
89
+ $ docker run --rm --add-host=host.docker.internal:host-gateway -e LOCAL_UID=1001 -e LOCAL_GID=1001 -v /home/runner/work/monorepo-internal/monorepo-internal:/workspace -w /workspace/contracts/common/utils/evm/upgradeable 438003944538.dkr.ecr.us-east-1.amazonaws.com/layerzerolabs/evm-tooling:forge-1.3.6-hardhat-2.26.3-patch-3 forge test
90
+ Compiling 84 files with Solc 0.8.22
91
+ Solc 0.8.22 finished in 14.96s
92
+ Compiler run successful with warnings:
93
+ Warning (2018): Function state mutability can be restricted to view
94
+ --> test/EnumerableSetPagination.t.sol:91:5:
95
+ |
96
+ 91 | function test_address_paginate_OffsetZero() public {
97
+ | ^ (Relevant source part starts here and spans across multiple lines).
98
+
99
+ Warning (2018): Function state mutability can be restricted to view
100
+ --> test/EnumerableSetPagination.t.sol:99:5:
101
+ |
102
+ 99 | function test_address_paginate_MiddleOffset() public {
103
+ | ^ (Relevant source part starts here and spans across multiple lines).
104
+
105
+ Warning (2018): Function state mutability can be restricted to view
106
+ --> test/EnumerableSetPagination.t.sol:107:5:
107
+ |
108
+ 107 | function test_address_paginate_OffsetAtEnd() public {
109
+ | ^ (Relevant source part starts here and spans across multiple lines).
110
+
111
+ Warning (2018): Function state mutability can be restricted to view
112
+ --> test/EnumerableSetPagination.t.sol:113:5:
113
+ |
114
+ 113 | function test_address_paginate_OffsetBeyondEnd() public {
115
+ | ^ (Relevant source part starts here and spans across multiple lines).
116
+
117
+ Warning (2018): Function state mutability can be restricted to view
118
+ --> test/EnumerableSetPagination.t.sol:120:5:
119
+ |
120
+ 120 | function test_address_paginate_LimitZero() public {
121
+ | ^ (Relevant source part starts here and spans across multiple lines).
122
+
123
+ Warning (2018): Function state mutability can be restricted to view
124
+ --> test/EnumerableSetPagination.t.sol:124:5:
125
+ |
126
+ 124 | function test_address_paginate_LimitOne() public {
127
+ | ^ (Relevant source part starts here and spans across multiple lines).
128
+
129
+ Warning (2018): Function state mutability can be restricted to view
130
+ --> test/EnumerableSetPagination.t.sol:130:5:
131
+ |
132
+ 130 | function test_address_paginate_LimitExceedsRemaining() public {
133
+ | ^ (Relevant source part starts here and spans across multiple lines).
134
+
135
+ Warning (2018): Function state mutability can be restricted to view
136
+ --> test/EnumerableSetPagination.t.sol:135:5:
137
+ |
138
+ 135 | function test_address_paginate_LimitExceedsTotal() public {
139
+ | ^ (Relevant source part starts here and spans across multiple lines).
140
+
141
+ Warning (2018): Function state mutability can be restricted to view
142
+ --> test/EnumerableSetPagination.t.sol:139:5:
143
+ |
144
+ 139 | function test_address_paginate_MaxUint256Limit() public {
145
+ | ^ (Relevant source part starts here and spans across multiple lines).
146
+
147
+ Warning (2018): Function state mutability can be restricted to view
148
+ --> test/EnumerableSetPagination.t.sol:145:5:
149
+ |
150
+ 145 | function test_address_paginate_SequentialPagesCompleteSet() public {
151
+ | ^ (Relevant source part starts here and spans across multiple lines).
152
+
153
+ Warning (2018): Function state mutability can be restricted to view
154
+ --> test/EnumerableSetPagination.t.sol:258:5:
155
+ |
156
+ 258 | function test_uint_paginate_OffsetZero() public {
157
+ | ^ (Relevant source part starts here and spans across multiple lines).
158
+
159
+ Warning (2018): Function state mutability can be restricted to view
160
+ --> test/EnumerableSetPagination.t.sol:266:5:
161
+ |
162
+ 266 | function test_uint_paginate_MiddleOffset() public {
163
+ | ^ (Relevant source part starts here and spans across multiple lines).
164
+
165
+ Warning (2018): Function state mutability can be restricted to view
166
+ --> test/EnumerableSetPagination.t.sol:274:5:
167
+ |
168
+ 274 | function test_uint_paginate_OffsetAtEnd() public {
169
+ | ^ (Relevant source part starts here and spans across multiple lines).
170
+
171
+ Warning (2018): Function state mutability can be restricted to view
172
+ --> test/EnumerableSetPagination.t.sol:280:5:
173
+ |
174
+ 280 | function test_uint_paginate_OffsetBeyondEnd() public {
175
+ | ^ (Relevant source part starts here and spans across multiple lines).
176
+
177
+ Warning (2018): Function state mutability can be restricted to view
178
+ --> test/EnumerableSetPagination.t.sol:287:5:
179
+ |
180
+ 287 | function test_uint_paginate_LimitZero() public {
181
+ | ^ (Relevant source part starts here and spans across multiple lines).
182
+
183
+ Warning (2018): Function state mutability can be restricted to view
184
+ --> test/EnumerableSetPagination.t.sol:291:5:
185
+ |
186
+ 291 | function test_uint_paginate_LimitOne() public {
187
+ | ^ (Relevant source part starts here and spans across multiple lines).
188
+
189
+ Warning (2018): Function state mutability can be restricted to view
190
+ --> test/EnumerableSetPagination.t.sol:297:5:
191
+ |
192
+ 297 | function test_uint_paginate_LimitExceedsRemaining() public {
193
+ | ^ (Relevant source part starts here and spans across multiple lines).
194
+
195
+ Warning (2018): Function state mutability can be restricted to view
196
+ --> test/EnumerableSetPagination.t.sol:302:5:
197
+ |
198
+ 302 | function test_uint_paginate_LimitExceedsTotal() public {
199
+ | ^ (Relevant source part starts here and spans across multiple lines).
200
+
201
+ Warning (2018): Function state mutability can be restricted to view
202
+ --> test/EnumerableSetPagination.t.sol:306:5:
203
+ |
204
+ 306 | function test_uint_paginate_MaxUint256Limit() public {
205
+ | ^ (Relevant source part starts here and spans across multiple lines).
206
+
207
+ Warning (2018): Function state mutability can be restricted to view
208
+ --> test/EnumerableSetPagination.t.sol:312:5:
209
+ |
210
+ 312 | function test_uint_paginate_SequentialPagesCompleteSet() public {
211
+ | ^ (Relevant source part starts here and spans across multiple lines).
212
+
213
+
214
+ Ran 35 tests for test/RateLimiterBaseUpgradeable.t.sol:RateLimiterBaseUpgradeableTest
215
+ [PASS] test_checkpointRateLimits_Empty() (gas: 10824)
216
+ [PASS] test_checkpointRateLimits_Multiple() (gas: 151676)
217
+ [PASS] test_checkpointRateLimits_PreservesDecay() (gas: 91907)
218
+ [PASS] test_checkpointRateLimits_Single() (gas: 85741)
219
+ [PASS] test_constructor_MaxScaledDecimals() (gas: 1389503)
220
+ [PASS] test_constructor_Revert_InvalidScaledDecimals() (gas: 38049)
221
+ [PASS] test_constructor_ZeroScaledDecimals() (gas: 1389321)
222
+ [PASS] test_getRateLimitUsages_BothDisabled() (gas: 25007)
223
+ [PASS] test_getRateLimitUsages_GloballyDisabled() (gas: 46159)
224
+ [PASS] test_getRateLimitUsages_InboundDisabled() (gas: 23907)
225
+ [PASS] test_getRateLimitUsages_OutboundDisabled() (gas: 23940)
226
+ [PASS] test_getRateLimitUsages_WithDecay() (gas: 86849)
227
+ [PASS] test_globalState_IgnoresIdSpecificConfig() (gas: 2123212)
228
+ [PASS] test_globalState_SharesStateAcrossIds() (gas: 2086558)
229
+ [PASS] test_globalState_UsesDefaultIdForState() (gas: 2083978)
230
+ [PASS] test_inflow_DefaultConfig_SpecificState_Inbound_Gross_NotExempt() (gas: 51618)
231
+ [PASS] test_inflow_GloballyDisabled() (gas: 52015)
232
+ [PASS] test_inflow_WithScaleDecimals() (gas: 2080458)
233
+ [PASS] test_initial_state_closed() (gas: 2034659)
234
+ [PASS] test_outflow_DefaultConfig_SpecificState_Outbound_Gross_NotExempt() (gas: 51752)
235
+ [PASS] test_outflow_ExplicitConfig_SpecificState_Both_Gross_Exempt() (gas: 30559)
236
+ [PASS] test_outflow_ExplicitConfig_SpecificState_Outbound_Gross_NotExempt() (gas: 32670)
237
+ [PASS] test_outflow_GloballyDisabled() (gas: 52036)
238
+ [PASS] test_outflow_Revert_RateLimitExceeded() (gas: 76468)
239
+ [PASS] test_outflow_WithScaleDecimals() (gas: 2080385)
240
+ [PASS] test_setRateLimitAddressExemptions() (gas: 59682)
241
+ [PASS] test_setRateLimitAddressExemptions_Revert_AlreadyExempt() (gas: 21817)
242
+ [PASS] test_setRateLimitConfigs_DoesNotAutoCheckpoint() (gas: 94677)
243
+ [PASS] test_setRateLimitConfigs_Multiple() (gas: 107608)
244
+ [PASS] test_setRateLimitConfigs_Single() (gas: 76669)
245
+ [PASS] test_setRateLimitGlobalConfig() (gas: 49357)
246
+ [PASS] test_setRateLimitStates_Revert_FutureTimestamp() (gas: 16394)
247
+ [PASS] test_setRateLimitStates_Single() (gas: 49974)
248
+ [PASS] test_storageHash() (gas: 3414)
249
+ [PASS] test_upscaleRateLimitAmount() (gas: 2014907)
250
+ Suite result: ok. 35 passed; 0 failed; 0 skipped; finished in 42.62ms (26.84ms CPU time)
251
+
252
+ Ran 5 tests for test/FeeHandlerBaseUpgradeable.t.sol:FeeHandlerBaseUpgradeableTest
253
+ [PASS] test_feeDeposit() (gas: 17576)
254
+ [PASS] test_setFeeDeposit() (gas: 24995)
255
+ [PASS] test_setFeeDeposit_Fuzz(address) (runs: 1000, μ: 21454, ~: 21454)
256
+ [PASS] test_setFeeDeposit_Revert_ZeroAddress() (gas: 13273)
257
+ [PASS] test_storageHash() (gas: 3337)
258
+ Suite result: ok. 5 passed; 0 failed; 0 skipped; finished in 94.53ms (93.93ms CPU time)
259
+
260
+ Ran 40 tests for test/RateLimiterRBACUpgradeable.t.sol:RateLimiterRBACUpgradeableTest
261
+ [PASS] test_checkpointRateLimits_Empty() (gas: 13362)
262
+ [PASS] test_checkpointRateLimits_Multiple() (gas: 154640)
263
+ [PASS] test_checkpointRateLimits_PreservesDecay() (gas: 95004)
264
+ [PASS] test_checkpointRateLimits_Revert_Unauthorized() (gas: 19822)
265
+ [PASS] test_checkpointRateLimits_Single() (gas: 88573)
266
+ [PASS] test_constructor_MaxScaledDecimals() (gas: 1389525)
267
+ [PASS] test_constructor_Revert_InvalidScaledDecimals() (gas: 38027)
268
+ [PASS] test_constructor_ZeroScaledDecimals() (gas: 1389277)
269
+ [PASS] test_getRateLimitUsages_BothDisabled() (gas: 25041)
270
+ [PASS] test_getRateLimitUsages_GloballyDisabled() (gas: 48664)
271
+ [PASS] test_getRateLimitUsages_InboundDisabled() (gas: 23941)
272
+ [PASS] test_getRateLimitUsages_OutboundDisabled() (gas: 23974)
273
+ [PASS] test_getRateLimitUsages_WithDecay() (gas: 89409)
274
+ [PASS] test_globalState_IgnoresIdSpecificConfig() (gas: 2859090)
275
+ [PASS] test_globalState_SharesStateAcrossIds() (gas: 2822558)
276
+ [PASS] test_globalState_UsesDefaultIdForState() (gas: 2819822)
277
+ [PASS] test_inflow_DefaultConfig_SpecificState_Inbound_Gross_NotExempt() (gas: 51719)
278
+ [PASS] test_inflow_GloballyDisabled() (gas: 54520)
279
+ [PASS] test_inflow_WithScaleDecimals() (gas: 2816359)
280
+ [PASS] test_initial_state_closed() (gas: 2770122)
281
+ [PASS] test_outflow_DefaultConfig_SpecificState_Outbound_Gross_NotExempt() (gas: 51721)
282
+ [PASS] test_outflow_ExplicitConfig_SpecificState_Both_Gross_Exempt() (gas: 30638)
283
+ [PASS] test_outflow_ExplicitConfig_SpecificState_Outbound_Gross_NotExempt() (gas: 32726)
284
+ [PASS] test_outflow_GloballyDisabled() (gas: 54496)
285
+ [PASS] test_outflow_Revert_RateLimitExceeded() (gas: 78872)
286
+ [PASS] test_outflow_WithScaleDecimals() (gas: 2816351)
287
+ [PASS] test_setRateLimitAddressExemptions() (gas: 62304)
288
+ [PASS] test_setRateLimitAddressExemptions_Revert_AlreadyExempt() (gas: 24241)
289
+ [PASS] test_setRateLimitAddressExemptions_Revert_Unauthorized() (gas: 19937)
290
+ [PASS] test_setRateLimitConfigs_DoesNotAutoCheckpoint() (gas: 97507)
291
+ [PASS] test_setRateLimitConfigs_Multiple() (gas: 110012)
292
+ [PASS] test_setRateLimitConfigs_Revert_Unauthorized() (gas: 21285)
293
+ [PASS] test_setRateLimitConfigs_Single() (gas: 79162)
294
+ [PASS] test_setRateLimitGlobalConfig() (gas: 52231)
295
+ [PASS] test_setRateLimitGlobalConfig_Revert_Unauthorized() (gas: 19463)
296
+ [PASS] test_setRateLimitStates_Revert_FutureTimestamp() (gas: 18907)
297
+ [PASS] test_setRateLimitStates_Revert_Unauthorized() (gas: 20566)
298
+ [PASS] test_setRateLimitStates_Single() (gas: 52512)
299
+ [PASS] test_storageHash() (gas: 3392)
300
+ [PASS] test_upscaleRateLimitAmount() (gas: 2750380)
301
+ Suite result: ok. 40 passed; 0 failed; 0 skipped; finished in 45.67ms (30.69ms CPU time)
302
+
303
+ Ran 6 tests for test/FeeHandlerRBACUpgradeable.t.sol:FeeHandlerRBACUpgradeableTest
304
+ [PASS] test_feeDeposit() (gas: 17638)
305
+ [PASS] test_setFeeDeposit() (gas: 27596)
306
+ [PASS] test_setFeeDeposit_Fuzz(address) (runs: 1000, μ: 24055, ~: 24055)
307
+ [PASS] test_setFeeDeposit_Revert_Unauthorized() (gas: 22370)
308
+ [PASS] test_setFeeDeposit_Revert_ZeroAddress() (gas: 15811)
309
+ [PASS] test_storageHash() (gas: 3315)
310
+ Suite result: ok. 6 passed; 0 failed; 0 skipped; finished in 211.90ms (211.25ms CPU time)
311
+
312
+ Ran 19 tests for test/PauseBaseUpgradeable.t.sol:PauseBaseUpgradeableTest
313
+ [PASS] test_assertNotPaused_Fuzz(bool) (runs: 1000, μ: 26603, ~: 38584)
314
+ [PASS] test_assertNotPaused_Revert_Paused() (gas: 38375)
315
+ [PASS] test_assertNotPaused_Success() (gas: 12516)
316
+ [PASS] test_initialize_Revert_AlreadyInitialized() (gas: 15725)
317
+ [PASS] test_isPaused_InitialState() (gas: 15595)
318
+ [PASS] test_pause() (gas: 39592)
319
+ [PASS] test_setPaused_Fuzz(bool) (runs: 1000, μ: 28962, ~: 39861)
320
+ [PASS] test_setPaused_Idempotent_InitialState_Reverts() (gas: 17914)
321
+ [PASS] test_setPaused_Idempotent_Reverts() (gas: 38543)
322
+ [PASS] test_setPaused_Success_ToggleMultipleTimes() (gas: 74144)
323
+ [PASS] test_storageHash() (gas: 3414)
324
+ [PASS] test_unpause() (gas: 31115)
325
+ [PASS] test_whenNotPaused_Fuzz(bool) (runs: 1000, μ: 40473, ~: 42029)
326
+ [PASS] test_whenNotPaused_Revert_Paused() (gas: 41855)
327
+ [PASS] test_whenNotPaused_Revert_WithReturnValue() (gas: 38375)
328
+ [PASS] test_whenNotPaused_Success() (gas: 38744)
329
+ [PASS] test_whenNotPaused_Success_AfterUnpause() (gas: 48261)
330
+ [PASS] test_whenNotPaused_Success_MultipleCalls() (gas: 56792)
331
+ [PASS] test_whenNotPaused_WithReturnValue() (gas: 15624)
332
+ Suite result: ok. 19 passed; 0 failed; 0 skipped; finished in 375.83ms (425.75ms CPU time)
333
+
334
+ Ran 10 tests for test/RateLimiterUtils.t.sol:RateLimiterUtilsTest
335
+ [PASS] test_decodeConfigBitmapFlags_AllFalse() (gas: 10012)
336
+ [PASS] test_decodeConfigBitmapFlags_AllTrue() (gas: 10034)
337
+ [PASS] test_decodeConfigBitmapFlags_Mixed() (gas: 9990)
338
+ [PASS] test_decodeOverrideDefaultConfig_False() (gas: 8488)
339
+ [PASS] test_decodeOverrideDefaultConfig_Fuzz(uint24) (runs: 1000, μ: 3388, ~: 3393)
340
+ [PASS] test_decodeOverrideDefaultConfig_True() (gas: 8456)
341
+ [PASS] test_encodeConfigBitmap_AllFalse() (gas: 8957)
342
+ [PASS] test_encodeConfigBitmap_AllTrue() (gas: 8999)
343
+ [PASS] test_encodeConfigBitmap_Mixed() (gas: 8977)
344
+ [PASS] test_encodeDecode_Fuzz(bool,bool,bool,bool,bool) (runs: 1000, μ: 5017, ~: 5017)
345
+ Suite result: ok. 10 passed; 0 failed; 0 skipped; finished in 267.38ms (267.21ms CPU time)
346
+
347
+ Ran 33 tests for test/AccessControl2StepUpgradeable.t.sol:AccessControl2StepUpgradeableTest
348
+ [PASS] test_acceptDefaultAdminTransfer_Events() (gas: 97372)
349
+ [PASS] test_acceptDefaultAdminTransfer_Fuzz(address) (runs: 1000, μ: 104263, ~: 104248)
350
+ [PASS] test_acceptDefaultAdminTransfer_Revert_AfterCancel() (gas: 33248)
351
+ [PASS] test_acceptDefaultAdminTransfer_Revert_NoPendingTransfer() (gas: 18543)
352
+ [PASS] test_acceptDefaultAdminTransfer_Revert_NotPendingAdmin() (gas: 45828)
353
+ [PASS] test_acceptDefaultAdminTransfer_Revert_StalePendingAfterOverwrite() (gas: 103114)
354
+ [PASS] test_acceptDefaultAdminTransfer_Success() (gas: 103488)
355
+ [PASS] test_beginDefaultAdminTransfer_Fuzz(address) (runs: 1000, μ: 46847, ~: 46847)
356
+ [PASS] test_beginDefaultAdminTransfer_Revert_Unauthorized() (gas: 23351)
357
+ [PASS] test_beginDefaultAdminTransfer_Success() (gas: 50886)
358
+ [PASS] test_beginDefaultAdminTransfer_Success_CancelsBySettingZero() (gas: 35608)
359
+ [PASS] test_beginDefaultAdminTransfer_Success_OverwritesPending() (gas: 50268)
360
+ [PASS] test_defaultAdmin_ReturnsInitialAdmin() (gas: 17748)
361
+ [PASS] test_grantRole_Revert_DefaultAdminRole() (gas: 22754)
362
+ [PASS] test_grantRole_Success_NonAdminRole() (gas: 116081)
363
+ [PASS] test_initialize_Revert_AlreadyInitialized() (gas: 15933)
364
+ [PASS] test_initialize_Revert_InvalidDefaultAdmin() (gas: 863678)
365
+ [PASS] test_initialize_Success_AdminHasRole() (gas: 32722)
366
+ [PASS] test_integration_TransferAndTransferAgain() (gas: 234392)
367
+ [PASS] test_integration_TransferCancelRetransfer() (gas: 120851)
368
+ [PASS] test_pendingDefaultAdmin_InitiallyZero() (gas: 15672)
369
+ [PASS] test_renounceRole_Revert_DefaultAdminRole() (gas: 18191)
370
+ [PASS] test_renounceRole_Revert_DefaultAdminRoleDuringPendingTransfer() (gas: 47370)
371
+ [PASS] test_renounceRole_Success_NonAdminRole_Admin() (gas: 93290)
372
+ [PASS] test_renounceRole_Success_NonAdminRole_NonAdmin() (gas: 94023)
373
+ [PASS] test_revokeRole_Revert_DefaultAdminRole_Admin() (gas: 22885)
374
+ [PASS] test_revokeRole_Revert_DefaultAdminRole_NonAdmin() (gas: 25784)
375
+ [PASS] test_revokeRole_Revert_NonAdminRole_NonAdmin() (gas: 124079)
376
+ [PASS] test_revokeRole_Success_NonAdminRole_Admin() (gas: 95654)
377
+ [PASS] test_setRoleAdmin_Revert_DefaultAdminRole() (gas: 18062)
378
+ [PASS] test_setRoleAdmin_Success_NonAdminRole_Other() (gas: 42684)
379
+ [PASS] test_setRoleAdmin_Success_NonAdminRole_Self() (gas: 23859)
380
+ [PASS] test_storageHash() (gas: 3380)
381
+ Suite result: ok. 33 passed; 0 failed; 0 skipped; finished in 717.98ms (787.88ms CPU time)
382
+
383
+ Ran 47 tests for test/PauseByIDRBACUpgradeable.t.sol:PauseByIDRBACUpgradeableTest
384
+ [PASS] test_assertNotPaused_Revert_DefaultPaused() (gas: 43478)
385
+ [PASS] test_assertNotPaused_Revert_SpecificPaused() (gas: 46209)
386
+ [PASS] test_assertNotPaused_Success() (gas: 14891)
387
+ [PASS] test_defaultPause_AffectsMultipleIDs() (gas: 55680)
388
+ [PASS] test_defaultPaused_InitialState() (gas: 15572)
389
+ [PASS] test_initialize_Revert_AlreadyInitialized() (gas: 18031)
390
+ [PASS] test_isPaused_Default() (gas: 47316)
391
+ [PASS] test_isPaused_InitialState() (gas: 22172)
392
+ [PASS] test_isPaused_MultipleIDs() (gas: 80142)
393
+ [PASS] test_isPaused_Override() (gas: 75171)
394
+ [PASS] test_isPaused_Specific() (gas: 50105)
395
+ [PASS] test_isPaused_SpecificDisabled() (gas: 55561)
396
+ [PASS] test_pauseConfig() (gas: 51028)
397
+ [PASS] test_roleManagement_grantAndRevoke() (gas: 172245)
398
+ [PASS] test_setDefaultPaused() (gas: 42196)
399
+ [PASS] test_setDefaultPaused_Fuzz(bool) (runs: 1000, μ: 30895, ~: 42446)
400
+ [PASS] test_setDefaultPaused_Idempotent_InitialState_Reverts() (gas: 20523)
401
+ [PASS] test_setDefaultPaused_Idempotent_Reverts() (gas: 41737)
402
+ [PASS] test_setDefaultPaused_Revert_Unauthorized() (gas: 20560)
403
+ [PASS] test_setDefaultPaused_Success() (gas: 40744)
404
+ [PASS] test_setPaused() (gas: 48361)
405
+ [PASS] test_setPaused_DormantData() (gas: 295234)
406
+ [PASS] test_setPaused_EmptyArray() (gas: 15702)
407
+ [PASS] test_setPaused_EmptyArrayWithUnpauserRole() (gas: 100683)
408
+ [PASS] test_setPaused_Fuzz(uint256,bool,bool) (runs: 1000, μ: 43661, ~: 48533)
409
+ [PASS] test_setPaused_Fuzz_EffectiveStateRoleCheck(bool,bool,bool) (runs: 1000, μ: 222984, ~: 216804)
410
+ [PASS] test_setPaused_Revert_EmptyArrayUnauthorized() (gas: 23131)
411
+ [PASS] test_setPaused_Revert_MixedBatchWithDisabledConfigs_NeedsBothRoles() (gas: 132176)
412
+ [PASS] test_setPaused_Revert_PauserCannotCauseEffectiveUnpause() (gas: 107518)
413
+ [PASS] test_setPaused_Revert_Unauthorized() (gas: 24037)
414
+ [PASS] test_setPaused_Revert_UnpauserCannotCauseEffectivePause() (gas: 130805)
415
+ [PASS] test_setPaused_Success() (gas: 45897)
416
+ [PASS] test_setPaused_Success_Batch() (gas: 345312)
417
+ [PASS] test_setPaused_Success_EdgeCase_IDMaxUint256() (gas: 45858)
418
+ [PASS] test_setPaused_Success_EdgeCase_IDZero() (gas: 45875)
419
+ [PASS] test_setPaused_Success_MixedBatchWithDisabledConfigs_BothRoles() (gas: 241273)
420
+ [PASS] test_setPaused_Success_PauserCanSetDisabledWhenDefaultPaused() (gas: 133457)
421
+ [PASS] test_setPaused_Success_Toggle() (gas: 58022)
422
+ [PASS] test_setPaused_Success_UnpauserCanSetDisabledWhenDefaultUnpaused() (gas: 130070)
423
+ [PASS] test_specificOverridesDefault_Fuzz(bool,bool) (runs: 1000, μ: 62924, ~: 73465)
424
+ [PASS] test_storageHash() (gas: 3392)
425
+ [PASS] test_whenNotPaused_Revert_DefaultPaused() (gas: 47171)
426
+ [PASS] test_whenNotPaused_Revert_SpecificPaused() (gas: 49932)
427
+ [PASS] test_whenNotPaused_Success() (gas: 41299)
428
+ [PASS] test_whenNotPaused_Success_SpecificUnpaused() (gas: 94341)
429
+ [PASS] test_whenNotPaused_WithReturnValue() (gas: 17859)
430
+ [PASS] test_whenNotPaused_WithReturnValue_Reverts() (gas: 46165)
431
+ Suite result: ok. 47 passed; 0 failed; 0 skipped; finished in 1.13s (1.34s CPU time)
432
+
433
+ Ran 32 tests for test/AllowlistRBACUpgradeable.t.sol:AllowlistRBACUpgradeableTest
434
+ [PASS] test_SwitchModes_PreservesState() (gas: 195548)
435
+ [PASS] test_constructor_InitialMode() (gas: 15778)
436
+ [PASS] test_constructor_InitializeWhitelist() (gas: 2171134)
437
+ [PASS] test_isAllowlisted_Blacklist_Blacklisted() (gas: 127952)
438
+ [PASS] test_isAllowlisted_Blacklist_NotBlacklisted() (gas: 45551)
439
+ [PASS] test_isAllowlisted_Fuzz_Blacklist_Blacklisted(address) (runs: 1000, μ: 115161, ~: 115161)
440
+ [PASS] test_isAllowlisted_Fuzz_Blacklist_NotBlacklisted(address) (runs: 1000, μ: 43599, ~: 43599)
441
+ [PASS] test_isAllowlisted_Fuzz_Open(address) (runs: 1000, μ: 15886, ~: 15886)
442
+ [PASS] test_isAllowlisted_Fuzz_Whitelist_NotWhitelisted(address) (runs: 1000, μ: 43652, ~: 43652)
443
+ [PASS] test_isAllowlisted_Fuzz_Whitelist_Whitelisted(address) (runs: 1000, μ: 115159, ~: 115159)
444
+ [PASS] test_isAllowlisted_Open_AllAllowed() (gas: 26122)
445
+ [PASS] test_isAllowlisted_Whitelist_NotWhitelisted() (gas: 45582)
446
+ [PASS] test_isAllowlisted_Whitelist_Whitelisted() (gas: 127862)
447
+ [PASS] test_onlyAllowlisted_Blacklist_RevertIfBlacklisted() (gas: 126878)
448
+ [PASS] test_onlyAllowlisted_Open_AllAllowed() (gas: 22694)
449
+ [PASS] test_onlyAllowlisted_Whitelist_RevertIfNotWhitelisted() (gas: 124784)
450
+ [PASS] test_setAllowlistMode_Revert_Unauthorized() (gas: 20371)
451
+ [PASS] test_setBlacklisted_EmptyArray() (gas: 13361)
452
+ [PASS] test_setBlacklisted_MultipleUsers() (gas: 173727)
453
+ [PASS] test_setBlacklisted_RemoveFromBlacklist() (gas: 99570)
454
+ [PASS] test_setBlacklisted_Revert_AlreadyBlacklisted() (gas: 125055)
455
+ [PASS] test_setBlacklisted_Revert_Unauthorized() (gas: 23329)
456
+ [PASS] test_setMode_Blacklist() (gas: 42605)
457
+ [PASS] test_setMode_MultipleChanges() (gas: 43274)
458
+ [PASS] test_setMode_RevertSameMode() (gas: 51355)
459
+ [PASS] test_setMode_Whitelist() (gas: 42714)
460
+ [PASS] test_setWhitelisted_EmptyArray() (gas: 13339)
461
+ [PASS] test_setWhitelisted_MultipleUsers() (gas: 173661)
462
+ [PASS] test_setWhitelisted_RemoveFromWhitelist() (gas: 99588)
463
+ [PASS] test_setWhitelisted_Revert_AlreadyWhitelisted() (gas: 125059)
464
+ [PASS] test_setWhitelisted_Revert_Unauthorized() (gas: 23176)
465
+ [PASS] test_storageHash() (gas: 3480)
466
+ Suite result: ok. 32 passed; 0 failed; 0 skipped; finished in 1.34s (1.34s CPU time)
467
+
468
+ Ran 27 tests for test/PauseRBACUpgradeable.t.sol:PauseRBACUpgradeableTest
469
+ [PASS] test_assertNotPaused_Fuzz(bool) (runs: 1000, μ: 28013, ~: 41090)
470
+ [PASS] test_assertNotPaused_Revert_Paused() (gas: 40859)
471
+ [PASS] test_assertNotPaused_Success() (gas: 12539)
472
+ [PASS] test_initialize_Revert_AlreadyInitialized() (gas: 15965)
473
+ [PASS] test_initialize_Revert_AlreadyInitialized_AdminUnchanged() (gas: 49417)
474
+ [PASS] test_isPaused_InitialState() (gas: 15629)
475
+ [PASS] test_modifierEnforcement_WithRoles() (gas: 218598)
476
+ [PASS] test_multipleRoleGrants() (gas: 394130)
477
+ [PASS] test_pause() (gas: 42109)
478
+ [PASS] test_renounceRole_Success_FunctionsRevert() (gas: 36029)
479
+ [PASS] test_roleTransfer_GrantAndRevoke() (gas: 180125)
480
+ [PASS] test_setPaused_Fuzz(bool) (runs: 1000, μ: 30874, ~: 42378)
481
+ [PASS] test_setPaused_Idempotent_InitialState_Reverts() (gas: 20507)
482
+ [PASS] test_setPaused_Idempotent_Reverts() (gas: 41497)
483
+ [PASS] test_setPaused_Revert_Unauthorized() (gas: 20279)
484
+ [PASS] test_setPaused_Success() (gas: 40691)
485
+ [PASS] test_setPaused_Success_MultipleOperations() (gas: 58020)
486
+ [PASS] test_setPaused_Success_ToggleMultipleTimes() (gas: 79509)
487
+ [PASS] test_storageHash() (gas: 3414)
488
+ [PASS] test_unpause() (gas: 35177)
489
+ [PASS] test_whenNotPaused_Fuzz(bool) (runs: 1000, μ: 41725, ~: 44479)
490
+ [PASS] test_whenNotPaused_Revert_Paused() (gas: 44372)
491
+ [PASS] test_whenNotPaused_Revert_WithReturnValue() (gas: 40903)
492
+ [PASS] test_whenNotPaused_Success() (gas: 38800)
493
+ [PASS] test_whenNotPaused_Success_AfterUnpause() (gas: 52332)
494
+ [PASS] test_whenNotPaused_Success_MultipleCalls() (gas: 61669)
495
+ [PASS] test_whenNotPaused_WithReturnValue() (gas: 15658)
496
+ Suite result: ok. 27 passed; 0 failed; 0 skipped; finished in 4.44s (239.73ms CPU time)
497
+
498
+ Ran 8 tests for test/RateLimiterRBACUpgradeableInvariant.t.sol:RateLimiterRBACUpgradeableInvariantTest
499
+ [PASS] invariant_AvailableConsistent() (runs: 256, calls: 3840, reverts: 0)
500
+
501
+ ╭-----------------------------------+---------------------+-------+---------+----------╮
502
+ | Contract | Selector | Calls | Reverts | Discards |
503
+ +======================================================================================+
504
+ | RateLimiterRBACUpgradeableHandler | inflow | 592 | 0 | 0 |
505
+ |-----------------------------------+---------------------+-------+---------+----------|
506
+ | RateLimiterRBACUpgradeableHandler | outflow | 487 | 0 | 0 |
507
+ |-----------------------------------+---------------------+-------+---------+----------|
508
+ | RateLimiterRBACUpgradeableHandler | setConfig | 582 | 0 | 0 |
509
+ |-----------------------------------+---------------------+-------+---------+----------|
510
+ | RateLimiterRBACUpgradeableHandler | setState | 611 | 0 | 0 |
511
+ |-----------------------------------+---------------------+-------+---------+----------|
512
+ | RateLimiterRBACUpgradeableHandler | toggleExemption | 530 | 0 | 0 |
513
+ |-----------------------------------+---------------------+-------+---------+----------|
514
+ | RateLimiterRBACUpgradeableHandler | toggleGlobalDisable | 498 | 0 | 0 |
515
+ |-----------------------------------+---------------------+-------+---------+----------|
516
+ | RateLimiterRBACUpgradeableHandler | warp | 540 | 0 | 0 |
517
+ ╰-----------------------------------+---------------------+-------+---------+----------╯
518
+
519
+ Logs:
520
+ Bound result 6285
521
+ Bound result 9900000720599650909745
522
+ Bound result 9900000019037486127394
523
+ Bound result 6388
524
+ Bound result 11
525
+ Bound result 3
526
+ Bound result 877
527
+ Bound result 1587
528
+ Bound result 1
529
+ Bound result 13498903784564286285435
530
+ Bound result 37463
531
+ Bound result 1957
532
+ Bound result 0
533
+ Bound result 1
534
+ Bound result 321300683
535
+ Bound result 5902
536
+ Bound result 9900004882799464682452
537
+ Bound result 7302100345466024707996
538
+ Bound result 6297
539
+ Bound result 996
540
+ Bound result 33
541
+
542
+ [PASS] invariant_ConfigBitmapConsistency() (runs: 256, calls: 3840, reverts: 0)
543
+
544
+ ╭-----------------------------------+---------------------+-------+---------+----------╮
545
+ | Contract | Selector | Calls | Reverts | Discards |
546
+ +======================================================================================+
547
+ | RateLimiterRBACUpgradeableHandler | inflow | 550 | 0 | 0 |
548
+ |-----------------------------------+---------------------+-------+---------+----------|
549
+ | RateLimiterRBACUpgradeableHandler | outflow | 569 | 0 | 0 |
550
+ |-----------------------------------+---------------------+-------+---------+----------|
551
+ | RateLimiterRBACUpgradeableHandler | setConfig | 549 | 0 | 0 |
552
+ |-----------------------------------+---------------------+-------+---------+----------|
553
+ | RateLimiterRBACUpgradeableHandler | setState | 533 | 0 | 0 |
554
+ |-----------------------------------+---------------------+-------+---------+----------|
555
+ | RateLimiterRBACUpgradeableHandler | toggleExemption | 562 | 0 | 0 |
556
+ |-----------------------------------+---------------------+-------+---------+----------|
557
+ | RateLimiterRBACUpgradeableHandler | toggleGlobalDisable | 548 | 0 | 0 |
558
+ |-----------------------------------+---------------------+-------+---------+----------|
559
+ | RateLimiterRBACUpgradeableHandler | warp | 529 | 0 | 0 |
560
+ ╰-----------------------------------+---------------------+-------+---------+----------╯
561
+
562
+ Logs:
563
+ Bound result 33608727664276041780
564
+ Bound result 1994382204881099413008
565
+ Bound result 37320
566
+ Bound result 13533
567
+ Bound result 25375885529
568
+ Bound result 1
569
+ Bound result 1
570
+ Bound result 1
571
+ Bound result 538548725861451760691
572
+ Bound result 8754640398170986187508
573
+ Bound result 242
574
+ Bound result 3318
575
+ Bound result 6814
576
+
577
+ [PASS] invariant_ConfigConsistency() (runs: 256, calls: 3840, reverts: 0)
578
+
579
+ ╭-----------------------------------+---------------------+-------+---------+----------╮
580
+ | Contract | Selector | Calls | Reverts | Discards |
581
+ +======================================================================================+
582
+ | RateLimiterRBACUpgradeableHandler | inflow | 552 | 0 | 0 |
583
+ |-----------------------------------+---------------------+-------+---------+----------|
584
+ | RateLimiterRBACUpgradeableHandler | outflow | 560 | 0 | 0 |
585
+ |-----------------------------------+---------------------+-------+---------+----------|
586
+ | RateLimiterRBACUpgradeableHandler | setConfig | 578 | 0 | 0 |
587
+ |-----------------------------------+---------------------+-------+---------+----------|
588
+ | RateLimiterRBACUpgradeableHandler | setState | 536 | 0 | 0 |
589
+ |-----------------------------------+---------------------+-------+---------+----------|
590
+ | RateLimiterRBACUpgradeableHandler | toggleExemption | 527 | 0 | 0 |
591
+ |-----------------------------------+---------------------+-------+---------+----------|
592
+ | RateLimiterRBACUpgradeableHandler | toggleGlobalDisable | 558 | 0 | 0 |
593
+ |-----------------------------------+---------------------+-------+---------+----------|
594
+ | RateLimiterRBACUpgradeableHandler | warp | 529 | 0 | 0 |
595
+ ╰-----------------------------------+---------------------+-------+---------+----------╯
596
+
597
+ Logs:
598
+ Bound result 16903424
599
+ Bound result 9900000000000613063844
600
+ Bound result 9900000000000000009077
601
+ Bound result 2314
602
+ Bound result 8762
603
+ Bound result 1829561007606824
604
+ Bound result 16371
605
+ Bound result 7959897164862022
606
+ Bound result 54
607
+ Bound result 1894431
608
+ Bound result 8483
609
+ Bound result 1113219430
610
+ Bound result 2
611
+ Bound result 547659574635
612
+ Bound result 9900000000000000008026
613
+ Bound result 9900000000000000009488
614
+ Bound result 7113
615
+ Bound result 657
616
+ Bound result 6258
617
+ Bound result 15059
618
+ Bound result 6914264337517608965039
619
+ Bound result 3329
620
+ Bound result 4301
621
+ Bound result 3015439342
622
+ Bound result 4242438485340447
623
+ Bound result 3841
624
+
625
+ [PASS] invariant_ExemptionConsistency() (runs: 256, calls: 3840, reverts: 0)
626
+
627
+ ╭-----------------------------------+---------------------+-------+---------+----------╮
628
+ | Contract | Selector | Calls | Reverts | Discards |
629
+ +======================================================================================+
630
+ | RateLimiterRBACUpgradeableHandler | inflow | 558 | 0 | 0 |
631
+ |-----------------------------------+---------------------+-------+---------+----------|
632
+ | RateLimiterRBACUpgradeableHandler | outflow | 517 | 0 | 0 |
633
+ |-----------------------------------+---------------------+-------+---------+----------|
634
+ | RateLimiterRBACUpgradeableHandler | setConfig | 560 | 0 | 0 |
635
+ |-----------------------------------+---------------------+-------+---------+----------|
636
+ | RateLimiterRBACUpgradeableHandler | setState | 569 | 0 | 0 |
637
+ |-----------------------------------+---------------------+-------+---------+----------|
638
+ | RateLimiterRBACUpgradeableHandler | toggleExemption | 522 | 0 | 0 |
639
+ |-----------------------------------+---------------------+-------+---------+----------|
640
+ | RateLimiterRBACUpgradeableHandler | toggleGlobalDisable | 534 | 0 | 0 |
641
+ |-----------------------------------+---------------------+-------+---------+----------|
642
+ | RateLimiterRBACUpgradeableHandler | warp | 580 | 0 | 0 |
643
+ ╰-----------------------------------+---------------------+-------+---------+----------╯
644
+
645
+ Logs:
646
+ Bound result 22170
647
+ Bound result 58349649087492133910
648
+ Bound result 50
649
+ Bound result 5
650
+ Bound result 9900236984601829499831
651
+ Bound result 8930629262154154363854
652
+ Bound result 4672
653
+ Bound result 74
654
+ Bound result 100000000000000000002
655
+ Bound result 100000000000000000003
656
+ Bound result 4116
657
+ Bound result 6240
658
+ Bound result 9900000000000000000992
659
+ Bound result 9900000000000000001558
660
+ Bound result 4891
661
+ Bound result 639
662
+ Bound result 2344
663
+ Bound result 1255
664
+ Bound result 141339338231289
665
+ Bound result 3964
666
+ Bound result 733
667
+ Bound result 613
668
+
669
+ [PASS] invariant_GhostConsistency() (runs: 256, calls: 3840, reverts: 0)
670
+
671
+ ╭-----------------------------------+---------------------+-------+---------+----------╮
672
+ | Contract | Selector | Calls | Reverts | Discards |
673
+ +======================================================================================+
674
+ | RateLimiterRBACUpgradeableHandler | inflow | 560 | 0 | 0 |
675
+ |-----------------------------------+---------------------+-------+---------+----------|
676
+ | RateLimiterRBACUpgradeableHandler | outflow | 524 | 0 | 0 |
677
+ |-----------------------------------+---------------------+-------+---------+----------|
678
+ | RateLimiterRBACUpgradeableHandler | setConfig | 581 | 0 | 0 |
679
+ |-----------------------------------+---------------------+-------+---------+----------|
680
+ | RateLimiterRBACUpgradeableHandler | setState | 525 | 0 | 0 |
681
+ |-----------------------------------+---------------------+-------+---------+----------|
682
+ | RateLimiterRBACUpgradeableHandler | toggleExemption | 576 | 0 | 0 |
683
+ |-----------------------------------+---------------------+-------+---------+----------|
684
+ | RateLimiterRBACUpgradeableHandler | toggleGlobalDisable | 552 | 0 | 0 |
685
+ |-----------------------------------+---------------------+-------+---------+----------|
686
+ | RateLimiterRBACUpgradeableHandler | warp | 522 | 0 | 0 |
687
+ ╰-----------------------------------+---------------------+-------+---------+----------╯
688
+
689
+ Logs:
690
+ Bound result 284
691
+ Bound result 21187888770
692
+ Bound result 999969235329528
693
+ Bound result 0
694
+ Bound result 2443899313024
695
+ Bound result 514264337593504336254
696
+ Bound result 111309540042374898
697
+ Bound result 0
698
+ Bound result 9900217622783906603763
699
+ Bound result 6914264337593535947491
700
+ Bound result 1369
701
+ Bound result 886
702
+ Bound result 1113111
703
+ Bound result 24097210917120933870
704
+ Bound result 0
705
+ Bound result 3274
706
+ Bound result 1161
707
+ Bound result 0
708
+ Bound result 13633769491721754308201
709
+ Bound result 650855966766945
710
+
711
+ [PASS] invariant_LastUpdatedNotFuture() (runs: 256, calls: 3840, reverts: 0)
712
+
713
+ ╭-----------------------------------+---------------------+-------+---------+----------╮
714
+ | Contract | Selector | Calls | Reverts | Discards |
715
+ +======================================================================================+
716
+ | RateLimiterRBACUpgradeableHandler | inflow | 535 | 0 | 0 |
717
+ |-----------------------------------+---------------------+-------+---------+----------|
718
+ | RateLimiterRBACUpgradeableHandler | outflow | 529 | 0 | 0 |
719
+ |-----------------------------------+---------------------+-------+---------+----------|
720
+ | RateLimiterRBACUpgradeableHandler | setConfig | 556 | 0 | 0 |
721
+ |-----------------------------------+---------------------+-------+---------+----------|
722
+ | RateLimiterRBACUpgradeableHandler | setState | 540 | 0 | 0 |
723
+ |-----------------------------------+---------------------+-------+---------+----------|
724
+ | RateLimiterRBACUpgradeableHandler | toggleExemption | 561 | 0 | 0 |
725
+ |-----------------------------------+---------------------+-------+---------+----------|
726
+ | RateLimiterRBACUpgradeableHandler | toggleGlobalDisable | 583 | 0 | 0 |
727
+ |-----------------------------------+---------------------+-------+---------+----------|
728
+ | RateLimiterRBACUpgradeableHandler | warp | 536 | 0 | 0 |
729
+ ╰-----------------------------------+---------------------+-------+---------+----------╯
730
+
731
+ Logs:
732
+ Bound result 315
733
+ Bound result 9900000000058659386548
734
+ Bound result 9900000000000000254991
735
+ Bound result 8123
736
+ Bound result 5491
737
+ Bound result 14691
738
+ Bound result 1
739
+ Bound result 5123
740
+ Bound result 9900000000058659386548
741
+ Bound result 920
742
+ Bound result 9324
743
+ Bound result 1957
744
+ Bound result 8037
745
+
746
+ [PASS] invariant_PristineIdUntouched() (runs: 256, calls: 3840, reverts: 0)
747
+
748
+ ╭-----------------------------------+---------------------+-------+---------+----------╮
749
+ | Contract | Selector | Calls | Reverts | Discards |
750
+ +======================================================================================+
751
+ | RateLimiterRBACUpgradeableHandler | inflow | 547 | 0 | 0 |
752
+ |-----------------------------------+---------------------+-------+---------+----------|
753
+ | RateLimiterRBACUpgradeableHandler | outflow | 526 | 0 | 0 |
754
+ |-----------------------------------+---------------------+-------+---------+----------|
755
+ | RateLimiterRBACUpgradeableHandler | setConfig | 581 | 0 | 0 |
756
+ |-----------------------------------+---------------------+-------+---------+----------|
757
+ | RateLimiterRBACUpgradeableHandler | setState | 538 | 0 | 0 |
758
+ |-----------------------------------+---------------------+-------+---------+----------|
759
+ | RateLimiterRBACUpgradeableHandler | toggleExemption | 534 | 0 | 0 |
760
+ |-----------------------------------+---------------------+-------+---------+----------|
761
+ | RateLimiterRBACUpgradeableHandler | toggleGlobalDisable | 563 | 0 | 0 |
762
+ |-----------------------------------+---------------------+-------+---------+----------|
763
+ | RateLimiterRBACUpgradeableHandler | warp | 551 | 0 | 0 |
764
+ ╰-----------------------------------+---------------------+-------+---------+----------╯
765
+
766
+ Logs:
767
+ Bound result 9900000000000000009387
768
+ Bound result 9900000000000000000766
769
+ Bound result 5131
770
+ Bound result 1643
771
+ Bound result 1
772
+ Bound result 9900000000000000003135
773
+ Bound result 9900000000000000001180
774
+ Bound result 1957
775
+ Bound result 7182
776
+ Bound result 5351
777
+ Bound result 18446744073709551617
778
+ Bound result 0
779
+ Bound result 54
780
+ Bound result 396256878
781
+ Bound result 91060998345
782
+ Bound result 2
783
+ Bound result 302
784
+ Bound result 12117
785
+ Bound result 14292854090331003987750
786
+ Bound result 32383287330
787
+ Bound result 4478
788
+
789
+ [PASS] invariant_RevertConsistency() (runs: 256, calls: 3840, reverts: 0)
790
+
791
+ ╭-----------------------------------+---------------------+-------+---------+----------╮
792
+ | Contract | Selector | Calls | Reverts | Discards |
793
+ +======================================================================================+
794
+ | RateLimiterRBACUpgradeableHandler | inflow | 556 | 0 | 0 |
795
+ |-----------------------------------+---------------------+-------+---------+----------|
796
+ | RateLimiterRBACUpgradeableHandler | outflow | 581 | 0 | 0 |
797
+ |-----------------------------------+---------------------+-------+---------+----------|
798
+ | RateLimiterRBACUpgradeableHandler | setConfig | 512 | 0 | 0 |
799
+ |-----------------------------------+---------------------+-------+---------+----------|
800
+ | RateLimiterRBACUpgradeableHandler | setState | 558 | 0 | 0 |
801
+ |-----------------------------------+---------------------+-------+---------+----------|
802
+ | RateLimiterRBACUpgradeableHandler | toggleExemption | 521 | 0 | 0 |
803
+ |-----------------------------------+---------------------+-------+---------+----------|
804
+ | RateLimiterRBACUpgradeableHandler | toggleGlobalDisable | 536 | 0 | 0 |
805
+ |-----------------------------------+---------------------+-------+---------+----------|
806
+ | RateLimiterRBACUpgradeableHandler | warp | 576 | 0 | 0 |
807
+ ╰-----------------------------------+---------------------+-------+---------+----------╯
808
+
809
+ Logs:
810
+ Bound result 8876
811
+ Bound result 2185
812
+ Bound result 1
813
+ Bound result 5578
814
+ Bound result 2891
815
+ Bound result 94
816
+ Bound result 6312
817
+ Bound result 0
818
+ Bound result 5122
819
+ Bound result 4266781249
820
+ Bound result 0
821
+ Bound result 1
822
+ Bound result 9900017944187723704829
823
+ Bound result 100000000000000000000
824
+ Bound result 5329
825
+ Bound result 105
826
+ Bound result 3864
827
+ Bound result 10212
828
+ Bound result 0
829
+ Bound result 4184
830
+ Bound result 1713
831
+ Bound result 2982
832
+ Bound result 856
833
+ Bound result 3308859969128441802283
834
+ Bound result 9900000000000513945705
835
+ Bound result 1560
836
+ Bound result 5169
837
+
838
+ Suite result: ok. 8 passed; 0 failed; 0 skipped; finished in 4.78s (24.81s CPU time)
839
+
840
+ Ran 22 tests for test/FeeConfigBaseUpgradeable.t.sol:FeeConfigBaseUpgradeableTest
841
+ [PASS] test_getAmountBeforeFee_BoundaryConditions() (gas: 48074)
842
+ [PASS] test_getAmountBeforeFee_Default() (gas: 45067)
843
+ [PASS] test_getAmountBeforeFee_Fuzz(uint16,uint224) (runs: 1000, μ: 44746, ~: 46317)
844
+ [PASS] test_getAmountBeforeFee_MaxBps() (gas: 44658)
845
+ [PASS] test_getAmountBeforeFee_Rounding() (gas: 45406)
846
+ [PASS] test_getAmountBeforeFee_Specific() (gas: 68448)
847
+ [PASS] test_getAmountBeforeFee_SpecificDisabled() (gas: 64007)
848
+ [PASS] test_getAmountBeforeFee_ZeroAmount() (gas: 40642)
849
+ [PASS] test_getAmountBeforeFee_ZeroBps() (gas: 22306)
850
+ [PASS] test_getFee_BoundaryConditions() (gas: 71791)
851
+ [PASS] test_getFee_Default() (gas: 40577)
852
+ [PASS] test_getFee_Fuzz(uint16,uint32,uint240) (runs: 1000, μ: 43171, ~: 44486)
853
+ [PASS] test_getFee_Rounding() (gas: 42835)
854
+ [PASS] test_getFee_Specific() (gas: 63968)
855
+ [PASS] test_getFee_SpecificDisabled() (gas: 63920)
856
+ [PASS] test_setDefaultFeeBps() (gas: 39576)
857
+ [PASS] test_setDefaultFeeBps_Fuzz(uint16) (runs: 1000, μ: 32455, ~: 39667)
858
+ [PASS] test_setDefaultFeeBps_RevertInvalid() (gas: 13860)
859
+ [PASS] test_setFeeBps() (gas: 73871)
860
+ Logs:
861
+ Bound result 500
862
+
863
+ [PASS] test_setFeeBps_Fuzz(uint16,uint32,uint16,bool) (runs: 1000, μ: 65406, ~: 74224)
864
+ [PASS] test_setFeeBps_RevertInvalid() (gas: 14075)
865
+ [PASS] test_storageHash() (gas: 3426)
866
+ Suite result: ok. 22 passed; 0 failed; 0 skipped; finished in 5.00s (836.61ms CPU time)
867
+
868
+ Ran 8 tests for test/RateLimiterRBACUpgradeableInvariant.t.sol:RateLimiterRBACUpgradeableInvariantGlobalStateTest
869
+ [PASS] invariant_AvailableConsistent() (runs: 256, calls: 3840, reverts: 0)
870
+
871
+ ╭-----------------------------------+---------------------+-------+---------+----------╮
872
+ | Contract | Selector | Calls | Reverts | Discards |
873
+ +======================================================================================+
874
+ | RateLimiterRBACUpgradeableHandler | inflow | 535 | 0 | 0 |
875
+ |-----------------------------------+---------------------+-------+---------+----------|
876
+ | RateLimiterRBACUpgradeableHandler | outflow | 564 | 0 | 0 |
877
+ |-----------------------------------+---------------------+-------+---------+----------|
878
+ | RateLimiterRBACUpgradeableHandler | setConfig | 509 | 0 | 0 |
879
+ |-----------------------------------+---------------------+-------+---------+----------|
880
+ | RateLimiterRBACUpgradeableHandler | setState | 542 | 0 | 0 |
881
+ |-----------------------------------+---------------------+-------+---------+----------|
882
+ | RateLimiterRBACUpgradeableHandler | toggleExemption | 598 | 0 | 0 |
883
+ |-----------------------------------+---------------------+-------+---------+----------|
884
+ | RateLimiterRBACUpgradeableHandler | toggleGlobalDisable | 591 | 0 | 0 |
885
+ |-----------------------------------+---------------------+-------+---------+----------|
886
+ | RateLimiterRBACUpgradeableHandler | warp | 501 | 0 | 0 |
887
+ ╰-----------------------------------+---------------------+-------+---------+----------╯
888
+
889
+ Logs:
890
+ Bound result 683446938206129230797
891
+ Bound result 6613131989
892
+ Bound result 7081
893
+ Bound result 634
894
+ Bound result 3658286192
895
+ Bound result 1019
896
+ Bound result 1295
897
+ Bound result 28003946290508
898
+ Bound result 173
899
+ Bound result 10179499969586290
900
+ Bound result 18
901
+ Bound result 4
902
+ Bound result 1558170778552680178
903
+ Bound result 482
904
+ Bound result 1868
905
+
906
+ [PASS] invariant_ConfigBitmapConsistency() (runs: 256, calls: 3840, reverts: 0)
907
+
908
+ ╭-----------------------------------+---------------------+-------+---------+----------╮
909
+ | Contract | Selector | Calls | Reverts | Discards |
910
+ +======================================================================================+
911
+ | RateLimiterRBACUpgradeableHandler | inflow | 539 | 0 | 0 |
912
+ |-----------------------------------+---------------------+-------+---------+----------|
913
+ | RateLimiterRBACUpgradeableHandler | outflow | 527 | 0 | 0 |
914
+ |-----------------------------------+---------------------+-------+---------+----------|
915
+ | RateLimiterRBACUpgradeableHandler | setConfig | 570 | 0 | 0 |
916
+ |-----------------------------------+---------------------+-------+---------+----------|
917
+ | RateLimiterRBACUpgradeableHandler | setState | 533 | 0 | 0 |
918
+ |-----------------------------------+---------------------+-------+---------+----------|
919
+ | RateLimiterRBACUpgradeableHandler | toggleExemption | 592 | 0 | 0 |
920
+ |-----------------------------------+---------------------+-------+---------+----------|
921
+ | RateLimiterRBACUpgradeableHandler | toggleGlobalDisable | 551 | 0 | 0 |
922
+ |-----------------------------------+---------------------+-------+---------+----------|
923
+ | RateLimiterRBACUpgradeableHandler | warp | 528 | 0 | 0 |
924
+ ╰-----------------------------------+---------------------+-------+---------+----------╯
925
+
926
+ Logs:
927
+ Bound result 3859
928
+ Bound result 2
929
+ Bound result 232
930
+ Bound result 2429
931
+ Bound result 1
932
+ Bound result 336
933
+ Bound result 378585425351100230422
934
+ Bound result 1
935
+ Bound result 277
936
+ Bound result 23
937
+ Bound result 786417
938
+ Bound result 338
939
+ Bound result 6739140940960629139665
940
+ Bound result 100000000000000000003
941
+ Bound result 6241
942
+ Bound result 291
943
+ Bound result 8117488580878472918247
944
+ Bound result 1
945
+ Bound result 732
946
+ Bound result 5213
947
+ Bound result 16
948
+ Bound result 10170
949
+ Bound result 7
950
+ Bound result 5362
951
+ Bound result 6101
952
+
953
+ [PASS] invariant_ConfigConsistency() (runs: 256, calls: 3840, reverts: 0)
954
+
955
+ ╭-----------------------------------+---------------------+-------+---------+----------╮
956
+ | Contract | Selector | Calls | Reverts | Discards |
957
+ +======================================================================================+
958
+ | RateLimiterRBACUpgradeableHandler | inflow | 538 | 0 | 0 |
959
+ |-----------------------------------+---------------------+-------+---------+----------|
960
+ | RateLimiterRBACUpgradeableHandler | outflow | 503 | 0 | 0 |
961
+ |-----------------------------------+---------------------+-------+---------+----------|
962
+ | RateLimiterRBACUpgradeableHandler | setConfig | 572 | 0 | 0 |
963
+ |-----------------------------------+---------------------+-------+---------+----------|
964
+ | RateLimiterRBACUpgradeableHandler | setState | 589 | 0 | 0 |
965
+ |-----------------------------------+---------------------+-------+---------+----------|
966
+ | RateLimiterRBACUpgradeableHandler | toggleExemption | 523 | 0 | 0 |
967
+ |-----------------------------------+---------------------+-------+---------+----------|
968
+ | RateLimiterRBACUpgradeableHandler | toggleGlobalDisable | 559 | 0 | 0 |
969
+ |-----------------------------------+---------------------+-------+---------+----------|
970
+ | RateLimiterRBACUpgradeableHandler | warp | 556 | 0 | 0 |
971
+ ╰-----------------------------------+---------------------+-------+---------+----------╯
972
+
973
+ Logs:
974
+ Bound result 245941473372
975
+ Bound result 1377614282097724962926
976
+ Bound result 9900000000000000000181
977
+ Bound result 6453
978
+ Bound result 9721
979
+ Bound result 1
980
+ Bound result 16043
981
+ Bound result 3178984042653
982
+ Bound result 9901464590545649019247
983
+ Bound result 100000000000000000001
984
+ Bound result 16
985
+ Bound result 9410
986
+ Bound result 17766
987
+ Bound result 1445
988
+ Bound result 1750472768029558
989
+ Bound result 10575
990
+ Bound result 9900000000000000837084
991
+ Bound result 1946347317636702334354
992
+ Bound result 6201
993
+ Bound result 12
994
+
995
+ [PASS] invariant_ExemptionConsistency() (runs: 256, calls: 3840, reverts: 0)
996
+
997
+ ╭-----------------------------------+---------------------+-------+---------+----------╮
998
+ | Contract | Selector | Calls | Reverts | Discards |
999
+ +======================================================================================+
1000
+ | RateLimiterRBACUpgradeableHandler | inflow | 570 | 0 | 0 |
1001
+ |-----------------------------------+---------------------+-------+---------+----------|
1002
+ | RateLimiterRBACUpgradeableHandler | outflow | 497 | 0 | 0 |
1003
+ |-----------------------------------+---------------------+-------+---------+----------|
1004
+ | RateLimiterRBACUpgradeableHandler | setConfig | 586 | 0 | 0 |
1005
+ |-----------------------------------+---------------------+-------+---------+----------|
1006
+ | RateLimiterRBACUpgradeableHandler | setState | 547 | 0 | 0 |
1007
+ |-----------------------------------+---------------------+-------+---------+----------|
1008
+ | RateLimiterRBACUpgradeableHandler | toggleExemption | 565 | 0 | 0 |
1009
+ |-----------------------------------+---------------------+-------+---------+----------|
1010
+ | RateLimiterRBACUpgradeableHandler | toggleGlobalDisable | 527 | 0 | 0 |
1011
+ |-----------------------------------+---------------------+-------+---------+----------|
1012
+ | RateLimiterRBACUpgradeableHandler | warp | 548 | 0 | 0 |
1013
+ ╰-----------------------------------+---------------------+-------+---------+----------╯
1014
+
1015
+ Logs:
1016
+ Bound result 9900000433351468135632
1017
+ Bound result 235733557052269266073
1018
+ Bound result 8472
1019
+ Bound result 9689
1020
+ Bound result 11619212053119913364
1021
+ Bound result 9900000000339156452687
1022
+ Bound result 9900000118331476590252
1023
+ Bound result 6239
1024
+ Bound result 3184
1025
+ Bound result 6531568553507873541
1026
+ Bound result 3576315115912293
1027
+ Bound result 1
1028
+ Bound result 9900000000000000001060
1029
+ Bound result 9900000000000000000434
1030
+ Bound result 3815
1031
+ Bound result 571
1032
+ Bound result 3997
1033
+ Bound result 9900000000000001135215
1034
+ Bound result 9900000000000000123460
1035
+ Bound result 4504
1036
+ Bound result 8555
1037
+ Bound result 10991
1038
+ Bound result 2101
1039
+ Bound result 1
1040
+
1041
+ [PASS] invariant_GhostConsistency() (runs: 256, calls: 3840, reverts: 0)
1042
+
1043
+ ╭-----------------------------------+---------------------+-------+---------+----------╮
1044
+ | Contract | Selector | Calls | Reverts | Discards |
1045
+ +======================================================================================+
1046
+ | RateLimiterRBACUpgradeableHandler | inflow | 498 | 0 | 0 |
1047
+ |-----------------------------------+---------------------+-------+---------+----------|
1048
+ | RateLimiterRBACUpgradeableHandler | outflow | 561 | 0 | 0 |
1049
+ |-----------------------------------+---------------------+-------+---------+----------|
1050
+ | RateLimiterRBACUpgradeableHandler | setConfig | 585 | 0 | 0 |
1051
+ |-----------------------------------+---------------------+-------+---------+----------|
1052
+ | RateLimiterRBACUpgradeableHandler | setState | 547 | 0 | 0 |
1053
+ |-----------------------------------+---------------------+-------+---------+----------|
1054
+ | RateLimiterRBACUpgradeableHandler | toggleExemption | 569 | 0 | 0 |
1055
+ |-----------------------------------+---------------------+-------+---------+----------|
1056
+ | RateLimiterRBACUpgradeableHandler | toggleGlobalDisable | 538 | 0 | 0 |
1057
+ |-----------------------------------+---------------------+-------+---------+----------|
1058
+ | RateLimiterRBACUpgradeableHandler | warp | 542 | 0 | 0 |
1059
+ ╰-----------------------------------+---------------------+-------+---------+----------╯
1060
+
1061
+ Logs:
1062
+ Bound result 9900000000000000301978
1063
+ Bound result 9900000072608146853908
1064
+ Bound result 5729
1065
+ Bound result 6381
1066
+ Bound result 744529665630
1067
+ Bound result 27140768195805479755
1068
+ Bound result 17411059444839
1069
+ Bound result 1
1070
+ Bound result 6885
1071
+ Bound result 6943090836212624178854
1072
+ Bound result 9900000843863858636159
1073
+ Bound result 9022
1074
+ Bound result 4446
1075
+ Bound result 5662467510559214525
1076
+ Bound result 10248190436761191049101
1077
+ Bound result 1511
1078
+ Bound result 11817699421609256226476
1079
+ Bound result 3214091157308377248534
1080
+ Bound result 510
1081
+ Bound result 1408163968098649925975
1082
+ Bound result 15303664012009892466940
1083
+ Bound result 1402
1084
+ Bound result 11421156858503949300184
1085
+ Bound result 6
1086
+ Bound result 2814
1087
+ Bound result 167
1088
+
1089
+ [PASS] invariant_LastUpdatedNotFuture() (runs: 256, calls: 3840, reverts: 0)
1090
+
1091
+ ╭-----------------------------------+---------------------+-------+---------+----------╮
1092
+ | Contract | Selector | Calls | Reverts | Discards |
1093
+ +======================================================================================+
1094
+ | RateLimiterRBACUpgradeableHandler | inflow | 552 | 0 | 0 |
1095
+ |-----------------------------------+---------------------+-------+---------+----------|
1096
+ | RateLimiterRBACUpgradeableHandler | outflow | 570 | 0 | 0 |
1097
+ |-----------------------------------+---------------------+-------+---------+----------|
1098
+ | RateLimiterRBACUpgradeableHandler | setConfig | 500 | 0 | 0 |
1099
+ |-----------------------------------+---------------------+-------+---------+----------|
1100
+ | RateLimiterRBACUpgradeableHandler | setState | 562 | 0 | 0 |
1101
+ |-----------------------------------+---------------------+-------+---------+----------|
1102
+ | RateLimiterRBACUpgradeableHandler | toggleExemption | 558 | 0 | 0 |
1103
+ |-----------------------------------+---------------------+-------+---------+----------|
1104
+ | RateLimiterRBACUpgradeableHandler | toggleGlobalDisable | 547 | 0 | 0 |
1105
+ |-----------------------------------+---------------------+-------+---------+----------|
1106
+ | RateLimiterRBACUpgradeableHandler | warp | 551 | 0 | 0 |
1107
+ ╰-----------------------------------+---------------------+-------+---------+----------╯
1108
+
1109
+ Logs:
1110
+ Bound result 20
1111
+ Bound result 27
1112
+ Bound result 772
1113
+ Bound result 120198225
1114
+ Bound result 2666
1115
+ Bound result 1566
1116
+ Bound result 356
1117
+ Bound result 9900000000000000012596
1118
+ Bound result 8429252504872731903774
1119
+ Bound result 723
1120
+ Bound result 10
1121
+ Bound result 280
1122
+ Bound result 3532
1123
+ Bound result 310
1124
+ Bound result 9900000000000000008870
1125
+ Bound result 9900000000000000004951
1126
+ Bound result 5638
1127
+ Bound result 2030
1128
+ Bound result 9900000000000000002516
1129
+ Bound result 9900000000000000003616
1130
+ Bound result 9995
1131
+ Bound result 1255
1132
+
1133
+ [PASS] invariant_PristineIdUntouched() (runs: 256, calls: 3840, reverts: 0)
1134
+
1135
+ ╭-----------------------------------+---------------------+-------+---------+----------╮
1136
+ | Contract | Selector | Calls | Reverts | Discards |
1137
+ +======================================================================================+
1138
+ | RateLimiterRBACUpgradeableHandler | inflow | 564 | 0 | 0 |
1139
+ |-----------------------------------+---------------------+-------+---------+----------|
1140
+ | RateLimiterRBACUpgradeableHandler | outflow | 544 | 0 | 0 |
1141
+ |-----------------------------------+---------------------+-------+---------+----------|
1142
+ | RateLimiterRBACUpgradeableHandler | setConfig | 538 | 0 | 0 |
1143
+ |-----------------------------------+---------------------+-------+---------+----------|
1144
+ | RateLimiterRBACUpgradeableHandler | setState | 551 | 0 | 0 |
1145
+ |-----------------------------------+---------------------+-------+---------+----------|
1146
+ | RateLimiterRBACUpgradeableHandler | toggleExemption | 563 | 0 | 0 |
1147
+ |-----------------------------------+---------------------+-------+---------+----------|
1148
+ | RateLimiterRBACUpgradeableHandler | toggleGlobalDisable | 575 | 0 | 0 |
1149
+ |-----------------------------------+---------------------+-------+---------+----------|
1150
+ | RateLimiterRBACUpgradeableHandler | warp | 505 | 0 | 0 |
1151
+ ╰-----------------------------------+---------------------+-------+---------+----------╯
1152
+
1153
+ Logs:
1154
+ Bound result 364428125098
1155
+ Bound result 17819495
1156
+ Bound result 947433
1157
+ Bound result 1
1158
+ Bound result 1702
1159
+ Bound result 1810
1160
+ Bound result 9900047974496035985411
1161
+ Bound result 9900000230831447138760
1162
+ Bound result 10
1163
+ Bound result 11
1164
+ Bound result 2661
1165
+ Bound result 15477275130211353660191
1166
+ Bound result 1
1167
+ Bound result 2978
1168
+ Bound result 15
1169
+ Bound result 7010
1170
+
1171
+ [PASS] invariant_RevertConsistency() (runs: 256, calls: 3840, reverts: 0)
1172
+
1173
+ ╭-----------------------------------+---------------------+-------+---------+----------╮
1174
+ | Contract | Selector | Calls | Reverts | Discards |
1175
+ +======================================================================================+
1176
+ | RateLimiterRBACUpgradeableHandler | inflow | 568 | 0 | 0 |
1177
+ |-----------------------------------+---------------------+-------+---------+----------|
1178
+ | RateLimiterRBACUpgradeableHandler | outflow | 566 | 0 | 0 |
1179
+ |-----------------------------------+---------------------+-------+---------+----------|
1180
+ | RateLimiterRBACUpgradeableHandler | setConfig | 506 | 0 | 0 |
1181
+ |-----------------------------------+---------------------+-------+---------+----------|
1182
+ | RateLimiterRBACUpgradeableHandler | setState | 542 | 0 | 0 |
1183
+ |-----------------------------------+---------------------+-------+---------+----------|
1184
+ | RateLimiterRBACUpgradeableHandler | toggleExemption | 522 | 0 | 0 |
1185
+ |-----------------------------------+---------------------+-------+---------+----------|
1186
+ | RateLimiterRBACUpgradeableHandler | toggleGlobalDisable | 583 | 0 | 0 |
1187
+ |-----------------------------------+---------------------+-------+---------+----------|
1188
+ | RateLimiterRBACUpgradeableHandler | warp | 553 | 0 | 0 |
1189
+ ╰-----------------------------------+---------------------+-------+---------+----------╯
1190
+
1191
+ Logs:
1192
+ Bound result 10738
1193
+ Bound result 9900000000000000003126
1194
+ Bound result 9900000000000023763063
1195
+ Bound result 6522
1196
+ Bound result 1435
1197
+ Bound result 4602
1198
+ Bound result 1088
1199
+ Bound result 3038968249621671736711
1200
+ Bound result 942
1201
+ Bound result 82684051525
1202
+ Bound result 8654
1203
+ Bound result 4594638
1204
+ Bound result 9900554292863722104551
1205
+ Bound result 100000000000000000000
1206
+ Bound result 12
1207
+ Bound result 13
1208
+ Bound result 7315
1209
+ Bound result 9334
1210
+ Bound result 6
1211
+ Bound result 9900000000000000002554
1212
+ Bound result 9900000000000000000712
1213
+ Bound result 209
1214
+ Bound result 5306
1215
+ Bound result 17310320808264713803406
1216
+ Bound result 10202
1217
+
1218
+ Suite result: ok. 8 passed; 0 failed; 0 skipped; finished in 4.90s (21.96s CPU time)
1219
+
1220
+ Ran 29 tests for test/AllowlistBaseUpgradeable.t.sol:AllowlistBaseUpgradeableTest
1221
+ [PASS] test_SwitchModes_PreservesState() (gas: 186406)
1222
+ [PASS] test_constructor_InitialMode() (gas: 15578)
1223
+ [PASS] test_constructor_InitializeWhitelist() (gas: 1372960)
1224
+ [PASS] test_isAllowlisted_Blacklist_Blacklisted() (gas: 122675)
1225
+ [PASS] test_isAllowlisted_Blacklist_NotBlacklisted() (gas: 42920)
1226
+ [PASS] test_isAllowlisted_Fuzz_Blacklist_Blacklisted(address) (runs: 1000, μ: 110088, ~: 110088)
1227
+ [PASS] test_isAllowlisted_Fuzz_Blacklist_NotBlacklisted(address) (runs: 1000, μ: 40990, ~: 40990)
1228
+ [PASS] test_isAllowlisted_Fuzz_Open(address) (runs: 1000, μ: 15761, ~: 15761)
1229
+ [PASS] test_isAllowlisted_Fuzz_Whitelist_NotWhitelisted(address) (runs: 1000, μ: 41054, ~: 41054)
1230
+ [PASS] test_isAllowlisted_Fuzz_Whitelist_Whitelisted(address) (runs: 1000, μ: 110030, ~: 110030)
1231
+ [PASS] test_isAllowlisted_Open_AllAllowed() (gas: 25813)
1232
+ [PASS] test_isAllowlisted_Whitelist_NotWhitelisted() (gas: 42962)
1233
+ [PASS] test_isAllowlisted_Whitelist_Whitelisted() (gas: 122528)
1234
+ [PASS] test_onlyAllowlisted_Blacklist_RevertIfBlacklisted() (gas: 121851)
1235
+ [PASS] test_onlyAllowlisted_Open_AllAllowed() (gas: 22626)
1236
+ [PASS] test_onlyAllowlisted_Whitelist_RevertIfNotWhitelisted() (gas: 119712)
1237
+ [PASS] test_setBlacklisted_EmptyArray() (gas: 10967)
1238
+ [PASS] test_setBlacklisted_MultipleUsers() (gas: 168334)
1239
+ [PASS] test_setBlacklisted_RemoveFromBlacklist() (gas: 95066)
1240
+ [PASS] test_setBlacklisted_Revert_AlreadyBlacklisted() (gas: 119566)
1241
+ [PASS] test_setMode_Blacklist() (gas: 40021)
1242
+ [PASS] test_setMode_MultipleChanges() (gas: 39734)
1243
+ [PASS] test_setMode_RevertSameMode() (gas: 45674)
1244
+ [PASS] test_setMode_Whitelist() (gas: 40108)
1245
+ [PASS] test_setWhitelisted_EmptyArray() (gas: 10878)
1246
+ [PASS] test_setWhitelisted_MultipleUsers() (gas: 168133)
1247
+ [PASS] test_setWhitelisted_RemoveFromWhitelist() (gas: 94878)
1248
+ [PASS] test_setWhitelisted_Revert_AlreadyWhitelisted() (gas: 119358)
1249
+ [PASS] test_storageHash() (gas: 3458)
1250
+ Suite result: ok. 29 passed; 0 failed; 0 skipped; finished in 18.56s (717.19ms CPU time)
1251
+
1252
+ Ran 36 tests for test/EnumerableSetPagination.t.sol:EnumerableSetPaginationTest
1253
+ [PASS] test_address_paginate_AfterRemovingElements() (gas: 1136937)
1254
+ [PASS] test_address_paginate_EmptySet() (gas: 277856)
1255
+ [PASS] test_address_paginate_Fuzz(uint256,uint256) (runs: 1000, μ: 718949, ~: 87205)
1256
+ [PASS] test_address_paginate_LargeSet() (gas: 465360224)
1257
+ [PASS] test_address_paginate_LimitExceedsRemaining() (gas: 25775)
1258
+ [PASS] test_address_paginate_LimitExceedsTotal() (gas: 2837493)
1259
+ [PASS] test_address_paginate_LimitOne() (gas: 14973)
1260
+ [PASS] test_address_paginate_LimitZero() (gas: 11561)
1261
+ [PASS] test_address_paginate_MaxUint256Limit() (gas: 2837429)
1262
+ [PASS] test_address_paginate_MiddleOffset() (gas: 45685)
1263
+ [PASS] test_address_paginate_OffsetAtEnd() (gas: 15008)
1264
+ [PASS] test_address_paginate_OffsetBeyondEnd() (gas: 13565)
1265
+ [PASS] test_address_paginate_OffsetZero() (gas: 45775)
1266
+ [PASS] test_address_paginate_SequentialPagesCompleteSet() (gas: 3517742)
1267
+ [PASS] test_address_paginate_SingleElement() (gas: 344858)
1268
+ [PASS] test_address_paginate_VaryingSize_Fuzz(uint8,uint256,uint256) (runs: 1000, μ: 11205156, ~: 10413875)
1269
+ [PASS] test_address_property_ConsecutivePagesNoOverlap() (gas: 297)
1270
+ [PASS] test_address_property_ReturnedLengthNeverExceedsLimit() (gas: 934858)
1271
+ [PASS] test_uint_paginate_AfterRemovingElements() (gas: 1121055)
1272
+ [PASS] test_uint_paginate_EmptySet() (gas: 266762)
1273
+ [PASS] test_uint_paginate_Fuzz(uint256,uint256) (runs: 1000, μ: 769644, ~: 138894)
1274
+ [PASS] test_uint_paginate_LargeSet() (gas: 463783795)
1275
+ [PASS] test_uint_paginate_LimitExceedsRemaining() (gas: 25408)
1276
+ [PASS] test_uint_paginate_LimitExceedsTotal() (gas: 2748514)
1277
+ [PASS] test_uint_paginate_LimitOne() (gas: 14809)
1278
+ [PASS] test_uint_paginate_LimitZero() (gas: 11638)
1279
+ [PASS] test_uint_paginate_MaxUint256Limit() (gas: 2748363)
1280
+ [PASS] test_uint_paginate_MiddleOffset() (gas: 44646)
1281
+ [PASS] test_uint_paginate_OffsetAtEnd() (gas: 14887)
1282
+ [PASS] test_uint_paginate_OffsetBeyondEnd() (gas: 13433)
1283
+ [PASS] test_uint_paginate_OffsetZero() (gas: 44650)
1284
+ [PASS] test_uint_paginate_SequentialPagesCompleteSet() (gas: 3410721)
1285
+ [PASS] test_uint_paginate_SingleElement() (gas: 333617)
1286
+ [PASS] test_uint_paginate_VaryingSize_Fuzz(uint8,uint256,uint256) (runs: 1000, μ: 11068422, ~: 10359841)
1287
+ [PASS] test_uint_property_ConsecutivePagesNoOverlap() (gas: 3063089)
1288
+ [PASS] test_uint_property_ReturnedLengthNeverExceedsLimit() (gas: 896521)
1289
+ Suite result: ok. 36 passed; 0 failed; 0 skipped; finished in 17.95s (44.66s CPU time)
1290
+
1291
+ Ran 31 tests for test/PauseByIDBaseUpgradeable.t.sol:PauseByIDBaseUpgradeableTest
1292
+ [PASS] test_assertNotPaused_Revert_DefaultPaused() (gas: 40927)
1293
+ [PASS] test_assertNotPaused_Revert_SpecificPaused() (gas: 40924)
1294
+ [PASS] test_assertNotPaused_Success() (gas: 14934)
1295
+ [PASS] test_defaultPause_AffectsMultipleIDs() (gas: 52995)
1296
+ [PASS] test_defaultPaused_InitialState() (gas: 15571)
1297
+ [PASS] test_initialize_Revert_AlreadyInitialized() (gas: 15852)
1298
+ [PASS] test_isPaused_Default() (gas: 44698)
1299
+ [PASS] test_isPaused_InitialState() (gas: 22070)
1300
+ [PASS] test_isPaused_MultipleIDs() (gas: 73915)
1301
+ [PASS] test_isPaused_Override() (gas: 69381)
1302
+ [PASS] test_isPaused_Specific() (gas: 46709)
1303
+ [PASS] test_isPaused_SpecificDisabled() (gas: 51615)
1304
+ [PASS] test_pauseConfig() (gas: 45626)
1305
+ [PASS] test_setDefaultPaused() (gas: 39667)
1306
+ [PASS] test_setDefaultPaused_Fuzz(bool) (runs: 1000, μ: 27865, ~: 16332)
1307
+ [PASS] test_setDefaultPaused_Idempotent_InitialState_Reverts() (gas: 17984)
1308
+ [PASS] test_setDefaultPaused_Idempotent_Reverts() (gas: 38782)
1309
+ [PASS] test_setPaused() (gas: 43060)
1310
+ [PASS] test_setPaused_EmptyArray() (gas: 10900)
1311
+ [PASS] test_setPaused_Fuzz(uint256,bool,bool) (runs: 1000, μ: 38437, ~: 43373)
1312
+ [PASS] test_setPaused_Success_EdgeCase_IDMaxUint256() (gas: 40562)
1313
+ [PASS] test_setPaused_Success_EdgeCase_IDZero() (gas: 40524)
1314
+ [PASS] test_setPaused_Success_Toggle() (gas: 51442)
1315
+ [PASS] test_specificOverridesDefault_Fuzz(bool,bool) (runs: 1000, μ: 58253, ~: 46989)
1316
+ [PASS] test_storageHash() (gas: 3480)
1317
+ [PASS] test_whenNotPaused_Revert_DefaultPaused() (gas: 44708)
1318
+ [PASS] test_whenNotPaused_Revert_SpecificPaused() (gas: 44758)
1319
+ [PASS] test_whenNotPaused_Success() (gas: 41297)
1320
+ [PASS] test_whenNotPaused_Success_SpecificUnpaused() (gas: 88596)
1321
+ [PASS] test_whenNotPaused_WithReturnValue() (gas: 17880)
1322
+ [PASS] test_whenNotPaused_WithReturnValue_Reverts() (gas: 40880)
1323
+ Suite result: ok. 31 passed; 0 failed; 0 skipped; finished in 18.40s (945.44ms CPU time)
1324
+
1325
+ Ran 24 tests for test/FeeConfigRBACUpgradeable.t.sol:FeeConfigRBACUpgradeableTest
1326
+ [PASS] test_getAmountBeforeFee_BoundaryConditions() (gas: 51175)
1327
+ [PASS] test_getAmountBeforeFee_Default() (gas: 47637)
1328
+ [PASS] test_getAmountBeforeFee_Fuzz(uint16,uint224) (runs: 1000, μ: 47667, ~: 48966)
1329
+ [PASS] test_getAmountBeforeFee_MaxBps() (gas: 47301)
1330
+ [PASS] test_getAmountBeforeFee_Rounding() (gas: 48148)
1331
+ [PASS] test_getAmountBeforeFee_Specific() (gas: 71482)
1332
+ [PASS] test_getAmountBeforeFee_SpecificDisabled() (gas: 67096)
1333
+ [PASS] test_getAmountBeforeFee_ZeroAmount() (gas: 43173)
1334
+ [PASS] test_getAmountBeforeFee_ZeroBps() (gas: 22479)
1335
+ [PASS] test_getFee_BoundaryConditions() (gas: 75442)
1336
+ [PASS] test_getFee_Default() (gas: 43108)
1337
+ [PASS] test_getFee_Fuzz(uint16,uint32,uint240) (runs: 1000, μ: 45580, ~: 47017)
1338
+ [PASS] test_getFee_Rounding() (gas: 45449)
1339
+ [PASS] test_getFee_Specific() (gas: 66985)
1340
+ [PASS] test_getFee_SpecificDisabled() (gas: 66943)
1341
+ [PASS] test_setDefaultFeeBps() (gas: 42199)
1342
+ [PASS] test_setDefaultFeeBps_Fuzz(uint16) (runs: 1000, μ: 35069, ~: 42268)
1343
+ [PASS] test_setDefaultFeeBps_RevertInvalid() (gas: 16371)
1344
+ [PASS] test_setDefaultFeeBps_Revert_Unauthorized() (gas: 20432)
1345
+ [PASS] test_setFeeBps() (gas: 77237)
1346
+ Logs:
1347
+ Bound result 500
1348
+
1349
+ [PASS] test_setFeeBps_Fuzz(uint16,uint32,uint16,bool) (runs: 1000, μ: 68628, ~: 77570)
1350
+ [PASS] test_setFeeBps_RevertInvalid() (gas: 16575)
1351
+ [PASS] test_setFeeBps_Revert_Unauthorized() (gas: 20531)
1352
+ [PASS] test_storageHash() (gas: 3436)
1353
+ Suite result: ok. 24 passed; 0 failed; 0 skipped; finished in 18.56s (1.02s CPU time)
1354
+
1355
+ Ran 17 test suites in 18.60s (96.81s CPU time): 412 tests passed, 0 failed, 0 skipped (412 total tests)
1356
+ ⏳ forge test: 35.640s