<!-- canonical: https://0xsimao.com/findings/orange-brc20-factory-constructor-duplicate -->

# BRC20Factory constructor is missing a duplicate check

Low/Info · Three Sigma · Cross-chain bridge · 15th July, 2024

Finding 3S-OB-L06 of the Orange Bridge security review.

- Protocol: https://www.orangeweb3.com/
- Report: /reports/orange
- Source: https://cdn.sanity.io/files/qoqld077/production/686ad4e1d5035d69002f5f97e281e3c5a8b7ce00.pdf

---

### Description

BRC20Factory constructor does not check for duplicate signers, which would lead to
problems as the index would be overriden.

### Recommendation

Check for duplicate signers using the recommendation from #4.

### Status

Addressed in [#ea46e07](https://github.com/orangecryptohq/orange-bridge-contract/commit/ea46e073a527a7d7e412bc5430d3412edc8e6cc6).

---

Related findings:

- [MapleLoan, proposeNewTerms() could have a check for duplicate selectors.](https://0xsimao.com/findings/maple-finance-iii-propose-terms-duplicate-selectors): Maple Finance
- [Duplicate size to fill check in _staticFillToAmm()](https://0xsimao.com/findings/nftperp-ii-duplicate-size-fill-static): Nftperp Matching Engine
- [Missing `disableInitializers()` call in `StandardIDOPool::constructor()`](https://0xsimao.com/findings/blast-ido-pools-disable-initializers-standard-constructor): Blast IDO Pools
- [Missing disableInitializers() call in the constructor](https://0xsimao.com/findings/ostium-disable-initializers-call-constructor): Ostium
