Skip to content

Commit 148a0e1

Browse files
authored
chore: add v1.1.0 audits (#308)
* chore: add spearbit v1.1.0 * chore: add spearbit v1.1.0 audit * chore: add openzeppelin v1.1.0 audit * chore: update audit pdfs * update audits and pre-commit
1 parent 7f9af28 commit 148a0e1

File tree

20 files changed

+171
-57
lines changed

20 files changed

+171
-57
lines changed

README.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -44,10 +44,10 @@ Addresses are cannonical across select EVM chains. If it is not already deployed
4444

4545
The code has been audited by Spearbit, OpenZeppelin, and ABDK Consulting. The most recent audits for v1.1.0 are linked below. For a full list of audits, see [Audits](./docs/audits/README.md).
4646

47-
| Version | Date | Report |
48-
| ------- | ---------- | ------ |
49-
| v1.1.0 | 01/20/2026 | |
50-
| v1.1.0 | 01/20/2026 | |
47+
| Version | Date | Report |
48+
| ------- | ---------- | ------------------------------------------------------------------------------------------------------------ |
49+
| v1.1.0 | 01/23/2026 | [OpenZeppelin](./docs/audits/OpenZeppelin_v1.1.0.pdf) |
50+
| v1.1.0 | 01/22/2026 | [Spearbit](./docs/audits/Spearbit_v1.1.0.pdf) and [additional](./docs/audits/Spearbit_v1.1.0_additional.pdf) |
5151

5252
### Bug bounty
5353

148 KB
Binary file not shown.

docs/audits/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ A complete list of audits for Continuous Clearing Auction smart contracts.
44

55
| Version | Date | Report |
66
| ------- | ---------- | ------------------------------------------------------------------- |
7-
| v1.1.0 | 01/20/2026 | |
8-
| v1.1.0 | 01/20/2026 | |
7+
| v1.1.0 | 01/23/2026 | [OpenZeppelin](./OpenZeppelin_v1.1.0.pdf) |
8+
| v1.1.0 | 01/22/2026 | [Spearbit](./Spearbit_v1.1.0.pdf) and [additional](./Spearbit_v1.1.0_additional.pdf) |
99
| v1.0.0 | 11/11/2025 | [Spearbit](./Spearbit_Nov_11_2025.pdf) |
1010
| v1.0.0 | 10/21/2025 | [OpenZeppelin](./OpenZeppelin_v1.0.0.pdf) |
1111
| v1.0.0 | 10/19/2025 | [Spearbit](./Spearbit_v1.0.0.pdf) |

docs/audits/Spearbit_v1.1.0.pdf

503 KB
Binary file not shown.
421 KB
Binary file not shown.

docs/autogen/src/README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ Addresses are cannonical across select EVM chains. If it is not already deployed
3535

3636
| Network | Address | Commit Hash | Version |
3737
| -------- | ------------------------------------------ | ---------------------------------------- | ---------------- |
38-
| v1.1.0 | 0xCCccCcCAE7503Cac057829BF2811De42E16e0bD5 | | v1.1.0 |
38+
| v1.1.0 | 0xCCccCcCAE7503Cac057829BF2811De42E16e0bD5 | 8508f332c3daf330b189290b335fd9da4e95f3f0 | v1.1.0 |
3939
| v1.0.0\* | 0x0000ccaDF55C911a2FbC0BB9d2942Aa77c6FAa1D | 154fd189022858707837112943c09346869c964f | v1.0.0-candidate |
4040

4141
> \*v1.0.0-candidate is the initial version of CCA and is NOT recommended for production use. For more details, see the [Changelog](./CHANGELOG.md).
@@ -46,8 +46,8 @@ The code has been audited by Spearbit, OpenZeppelin, and ABDK Consulting. The mo
4646

4747
| Version | Date | Report |
4848
| ------- | ---------- | ------ |
49-
| v1.1.0 | 01/20/2026 | |
50-
| v1.1.0 | 01/20/2026 | |
49+
| v1.1.0 | 01/23/2026 | [OpenZeppelin](./docs/audits/OpenZeppelin_v1.1.0.pdf) |
50+
| v1.1.0 | 01/22/2026 | [Spearbit](./docs/audits/Spearbit_v1.1.0.pdf) and [additional](./docs/audits/Spearbit_v1.1.0_additional.pdf) |
5151

5252
### Bug bounty
5353

docs/autogen/src/SUMMARY.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,12 +38,16 @@
3838
- [ValidationHookLib](src/libraries/ValidationHookLib.sol/library.ValidationHookLib.md)
3939
- [ValueX7](src/libraries/ValueX7Lib.sol/type.ValueX7.md)
4040
- [ValueX7Lib](src/libraries/ValueX7Lib.sol/library.ValueX7Lib.md)
41-
- [sub](src/libraries/ValueX7Lib.sol/function.sub.md)
41+
- [saturatingSub](src/libraries/ValueX7Lib.sol/function.saturatingSub.md)
4242
- [divUint256](src/libraries/ValueX7Lib.sol/function.divUint256.md)
4343
- [❱ periphery](src/periphery/README.md)
4444
- [❱ validationHooks](src/periphery/validationHooks/README.md)
45+
- [IBaseERC1155ValidationHook](src/periphery/validationHooks/BaseERC1155ValidationHook.sol/interface.IBaseERC1155ValidationHook.md)
4546
- [BaseERC1155ValidationHook](src/periphery/validationHooks/BaseERC1155ValidationHook.sol/contract.BaseERC1155ValidationHook.md)
47+
- [IGatedERC1155ValidationHook](src/periphery/validationHooks/GatedERC1155ValidationHook.sol/interface.IGatedERC1155ValidationHook.md)
4648
- [GatedERC1155ValidationHook](src/periphery/validationHooks/GatedERC1155ValidationHook.sol/contract.GatedERC1155ValidationHook.md)
49+
- [IValidationHookIntrospection](src/periphery/validationHooks/ValidationHookIntrospection.sol/interface.IValidationHookIntrospection.md)
50+
- [ValidationHookIntrospection](src/periphery/validationHooks/ValidationHookIntrospection.sol/abstract.ValidationHookIntrospection.md)
4751
- [BidStorage](src/BidStorage.sol/abstract.BidStorage.md)
4852
- [CheckpointStorage](src/CheckpointStorage.sol/abstract.CheckpointStorage.md)
4953
- [ContinuousClearingAuction](src/ContinuousClearingAuction.sol/contract.ContinuousClearingAuction.md)

docs/autogen/src/src/ContinuousClearingAuction.sol/contract.ContinuousClearingAuction.md

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# ContinuousClearingAuction
2-
[Git Source](https://github.com/Uniswap/twap-auction/blob/c9923b6612650531d4151de2f459778059410469/src/ContinuousClearingAuction.sol)
2+
[Git Source](https://github.com/Uniswap/twap-auction/blob/37817840a05eb60581df70139cc71f280836677f/src/ContinuousClearingAuction.sol)
33

44
**Inherits:**
55
[BidStorage](/src/BidStorage.sol/abstract.BidStorage.md), [CheckpointStorage](/src/CheckpointStorage.sol/abstract.CheckpointStorage.md), [StepStorage](/src/StepStorage.sol/abstract.StepStorage.md), [TickStorage](/src/TickStorage.sol/abstract.TickStorage.md), [TokenCurrencyStorage](/src/TokenCurrencyStorage.sol/abstract.TokenCurrencyStorage.md), BlockNumberish, ReentrancyGuardTransient, [IContinuousClearingAuction](/src/interfaces/IContinuousClearingAuction.sol/interface.IContinuousClearingAuction.md)
@@ -173,7 +173,8 @@ function onTokensReceived() external;
173173

174174
Returns the LBP initialization parameters as determined by the implementing contract
175175

176-
The implementing contract MUST ensure that these values are correct at the time of calling
176+
The calling contract must be aware that the values returned in this function for `currencyRaised` and `tokensSold`
177+
may not be reflective of the actual values if the auction did not graduate.
177178

178179

179180
```solidity
@@ -192,7 +193,7 @@ Implements IERC165.supportsInterface to signal support for the ILBPInitializer i
192193

193194

194195
```solidity
195-
function supportsInterface(bytes4 interfaceId) external view returns (bool);
196+
function supportsInterface(bytes4 interfaceId) external pure returns (bool);
196197
```
197198
**Parameters**
198199

@@ -201,38 +202,38 @@ function supportsInterface(bytes4 interfaceId) external view returns (bool);
201202
|`interfaceId`|`bytes4`|The interface identifier to check|
202203

203204

204-
### isGraduated
205+
### clearingPrice
205206

206-
Whether the auction has graduated as of the given checkpoint
207+
Get the most up to date clearing price
207208

208-
The auction is considered graduated if the currency raised is greater than or equal to the required currency raised
209+
This will be at least as up to date as the latest checkpoint. It can be incremented from calls to `forceIterateOverTicks`
209210

210211

211212
```solidity
212-
function isGraduated() external view returns (bool);
213+
function clearingPrice() external view returns (uint256);
213214
```
214215
**Returns**
215216

216217
|Name|Type|Description|
217218
|----|----|-----------|
218-
|`<none>`|`bool`|bool True if the auction has graduated, false otherwise|
219+
|`<none>`|`uint256`|The current clearing price in Q96 form|
219220

220221

221-
### clearingPrice
222+
### isGraduated
222223

223-
Get the most up to date clearing price
224+
Whether the auction has graduated as of the given checkpoint
224225

225-
This will be at least as up to date as the latest checkpoint. It can be incremented from calls to `forceIterateOverTicks`
226+
The auction is considered graduated if the currency raised is greater than or equal to the required currency raised
226227

227228

228229
```solidity
229-
function clearingPrice() external view returns (uint256);
230+
function isGraduated() external view returns (bool);
230231
```
231232
**Returns**
232233

233234
|Name|Type|Description|
234235
|----|----|-----------|
235-
|`<none>`|`uint256`|The current clearing price in Q96 form|
236+
|`<none>`|`bool`|bool True if the auction has graduated, false otherwise|
236237

237238

238239
### _isGraduated
@@ -376,8 +377,7 @@ function _checkpointAtBlock(uint64 _blockNumber) internal returns (Checkpoint me
376377

377378
Return the final checkpoint of the auction
378379

379-
Only called when the auction is over. Changes the current state of the `step` to the final step in the auction
380-
any future calls to `step.mps` will return the mps of the last step in the auction
380+
Only called when the auction is over
381381

382382

383383
```solidity
@@ -391,7 +391,7 @@ Internal function for bid submission
391391
Validates `maxPrice`, calls the validation hook (if set) and updates global state variables
392392
For gas efficiency, `prevTickPrice` should be the price of the tick immediately before `maxPrice`.
393393

394-
Does not check that the actual value `amount` was received by the contract
394+
Implementing functions must check that the actual value `amount` is received by the contract
395395

396396

397397
```solidity

docs/autogen/src/src/TokenCurrencyStorage.sol/abstract.TokenCurrencyStorage.md

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# TokenCurrencyStorage
2-
[Git Source](https://github.com/Uniswap/twap-auction/blob/c9923b6612650531d4151de2f459778059410469/src/TokenCurrencyStorage.sol)
2+
[Git Source](https://github.com/Uniswap/twap-auction/blob/37817840a05eb60581df70139cc71f280836677f/src/TokenCurrencyStorage.sol)
33

44
**Inherits:**
55
[ITokenCurrencyStorage](/src/interfaces/ITokenCurrencyStorage.sol/interface.ITokenCurrencyStorage.md)
@@ -36,15 +36,6 @@ uint128 internal immutable TOTAL_SUPPLY
3636
```
3737

3838

39-
### TOTAL_SUPPLY_Q96
40-
The total supply of tokens to sell in 160.96 form
41-
42-
43-
```solidity
44-
uint256 internal immutable TOTAL_SUPPLY_Q96
45-
```
46-
47-
4839
### TOKENS_RECIPIENT
4940
The recipient of any unsold tokens at the end of the auction
5041

docs/autogen/src/src/libraries/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,5 +16,5 @@
1616
- [ValidationHookLib](ValidationHookLib.sol/library.ValidationHookLib.md)
1717
- [ValueX7](ValueX7Lib.sol/type.ValueX7.md)
1818
- [ValueX7Lib](ValueX7Lib.sol/library.ValueX7Lib.md)
19-
- [sub](ValueX7Lib.sol/function.sub.md)
19+
- [saturatingSub](ValueX7Lib.sol/function.saturatingSub.md)
2020
- [divUint256](ValueX7Lib.sol/function.divUint256.md)

0 commit comments

Comments
 (0)