├── .env.example ├── .gitattributes ├── .gitignore ├── .mocharc.js ├── .nvmrc ├── .prettierrc.js ├── .solcover.js ├── .solhint.json ├── .solhintignore ├── .vscode └── settings.json ├── README.md ├── conf └── MockBoringSingleNFT.SingleNFT.conf ├── contracts ├── BoringBatchable.sol ├── BoringCooker.sol ├── BoringFactory.sol ├── BoringGenerativeNFT.sol ├── BoringMultipleNFT.sol ├── BoringOwnable.sol ├── BoringSingleNFT.sol ├── Domain.sol ├── ERC1155.sol ├── ERC20.sol ├── FixedTrait.sol ├── interfaces │ ├── IBoringGenerativeNFT.sol │ ├── IERC1155.sol │ ├── IERC1155TokenReceiver.sol │ ├── IERC165.sol │ ├── IERC20.sol │ ├── IERC721.sol │ ├── IERC721TokenReceiver.sol │ └── IMasterContract.sol ├── libraries │ ├── Base64.sol │ ├── BoringAddress.sol │ ├── BoringERC20.sol │ └── BoringRebase.sol └── mocks │ ├── MockBoringBatchable.sol │ ├── MockBoringERC20.sol │ ├── MockBoringMultipleNFT.sol │ ├── MockBoringRebase.sol │ ├── MockBoringSingleNFT.sol │ ├── MockERC20.sol │ ├── MockERC721Receiver.sol │ ├── MockERC721ReceiverWrong.sol │ └── MockMasterContract.sol ├── docs └── checks.txt ├── hardhat.config.js ├── package.json ├── scripts └── create_interfaces.js ├── test ├── BoringBatchable.js ├── BoringERC20.js ├── BoringFactory.js ├── BoringGenerativeNFT.js ├── BoringMultipleNFT.js ├── BoringOwnable.js ├── BoringRebase.js ├── BoringSingleNFT.js ├── ERC20.js ├── certora │ ├── BoringMath.spec │ ├── ERC20.spec │ └── SingleNFT.spec └── utilities │ ├── BoringOwnable.js │ └── index.js └── yarn.lock /.env.example: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/boringcrypto/BoringSolidity/HEAD/.env.example -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | *.sol linguist-language=Solidity 2 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/boringcrypto/BoringSolidity/HEAD/.gitignore -------------------------------------------------------------------------------- /.mocharc.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/boringcrypto/BoringSolidity/HEAD/.mocharc.js -------------------------------------------------------------------------------- /.nvmrc: -------------------------------------------------------------------------------- 1 | v14.15.1 -------------------------------------------------------------------------------- /.prettierrc.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/boringcrypto/BoringSolidity/HEAD/.prettierrc.js -------------------------------------------------------------------------------- /.solcover.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/boringcrypto/BoringSolidity/HEAD/.solcover.js -------------------------------------------------------------------------------- /.solhint.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/boringcrypto/BoringSolidity/HEAD/.solhint.json -------------------------------------------------------------------------------- /.solhintignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/boringcrypto/BoringSolidity/HEAD/.solhintignore -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/boringcrypto/BoringSolidity/HEAD/.vscode/settings.json -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/boringcrypto/BoringSolidity/HEAD/README.md -------------------------------------------------------------------------------- /conf/MockBoringSingleNFT.SingleNFT.conf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/boringcrypto/BoringSolidity/HEAD/conf/MockBoringSingleNFT.SingleNFT.conf -------------------------------------------------------------------------------- /contracts/BoringBatchable.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/boringcrypto/BoringSolidity/HEAD/contracts/BoringBatchable.sol -------------------------------------------------------------------------------- /contracts/BoringCooker.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/boringcrypto/BoringSolidity/HEAD/contracts/BoringCooker.sol -------------------------------------------------------------------------------- /contracts/BoringFactory.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/boringcrypto/BoringSolidity/HEAD/contracts/BoringFactory.sol -------------------------------------------------------------------------------- /contracts/BoringGenerativeNFT.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/boringcrypto/BoringSolidity/HEAD/contracts/BoringGenerativeNFT.sol -------------------------------------------------------------------------------- /contracts/BoringMultipleNFT.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/boringcrypto/BoringSolidity/HEAD/contracts/BoringMultipleNFT.sol -------------------------------------------------------------------------------- /contracts/BoringOwnable.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/boringcrypto/BoringSolidity/HEAD/contracts/BoringOwnable.sol -------------------------------------------------------------------------------- /contracts/BoringSingleNFT.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/boringcrypto/BoringSolidity/HEAD/contracts/BoringSingleNFT.sol -------------------------------------------------------------------------------- /contracts/Domain.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/boringcrypto/BoringSolidity/HEAD/contracts/Domain.sol -------------------------------------------------------------------------------- /contracts/ERC1155.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/boringcrypto/BoringSolidity/HEAD/contracts/ERC1155.sol -------------------------------------------------------------------------------- /contracts/ERC20.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/boringcrypto/BoringSolidity/HEAD/contracts/ERC20.sol -------------------------------------------------------------------------------- /contracts/FixedTrait.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/boringcrypto/BoringSolidity/HEAD/contracts/FixedTrait.sol -------------------------------------------------------------------------------- /contracts/interfaces/IBoringGenerativeNFT.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/boringcrypto/BoringSolidity/HEAD/contracts/interfaces/IBoringGenerativeNFT.sol -------------------------------------------------------------------------------- /contracts/interfaces/IERC1155.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/boringcrypto/BoringSolidity/HEAD/contracts/interfaces/IERC1155.sol -------------------------------------------------------------------------------- /contracts/interfaces/IERC1155TokenReceiver.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/boringcrypto/BoringSolidity/HEAD/contracts/interfaces/IERC1155TokenReceiver.sol -------------------------------------------------------------------------------- /contracts/interfaces/IERC165.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/boringcrypto/BoringSolidity/HEAD/contracts/interfaces/IERC165.sol -------------------------------------------------------------------------------- /contracts/interfaces/IERC20.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/boringcrypto/BoringSolidity/HEAD/contracts/interfaces/IERC20.sol -------------------------------------------------------------------------------- /contracts/interfaces/IERC721.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/boringcrypto/BoringSolidity/HEAD/contracts/interfaces/IERC721.sol -------------------------------------------------------------------------------- /contracts/interfaces/IERC721TokenReceiver.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/boringcrypto/BoringSolidity/HEAD/contracts/interfaces/IERC721TokenReceiver.sol -------------------------------------------------------------------------------- /contracts/interfaces/IMasterContract.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/boringcrypto/BoringSolidity/HEAD/contracts/interfaces/IMasterContract.sol -------------------------------------------------------------------------------- /contracts/libraries/Base64.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/boringcrypto/BoringSolidity/HEAD/contracts/libraries/Base64.sol -------------------------------------------------------------------------------- /contracts/libraries/BoringAddress.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/boringcrypto/BoringSolidity/HEAD/contracts/libraries/BoringAddress.sol -------------------------------------------------------------------------------- /contracts/libraries/BoringERC20.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/boringcrypto/BoringSolidity/HEAD/contracts/libraries/BoringERC20.sol -------------------------------------------------------------------------------- /contracts/libraries/BoringRebase.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/boringcrypto/BoringSolidity/HEAD/contracts/libraries/BoringRebase.sol -------------------------------------------------------------------------------- /contracts/mocks/MockBoringBatchable.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/boringcrypto/BoringSolidity/HEAD/contracts/mocks/MockBoringBatchable.sol -------------------------------------------------------------------------------- /contracts/mocks/MockBoringERC20.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/boringcrypto/BoringSolidity/HEAD/contracts/mocks/MockBoringERC20.sol -------------------------------------------------------------------------------- /contracts/mocks/MockBoringMultipleNFT.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/boringcrypto/BoringSolidity/HEAD/contracts/mocks/MockBoringMultipleNFT.sol -------------------------------------------------------------------------------- /contracts/mocks/MockBoringRebase.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/boringcrypto/BoringSolidity/HEAD/contracts/mocks/MockBoringRebase.sol -------------------------------------------------------------------------------- /contracts/mocks/MockBoringSingleNFT.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/boringcrypto/BoringSolidity/HEAD/contracts/mocks/MockBoringSingleNFT.sol -------------------------------------------------------------------------------- /contracts/mocks/MockERC20.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/boringcrypto/BoringSolidity/HEAD/contracts/mocks/MockERC20.sol -------------------------------------------------------------------------------- /contracts/mocks/MockERC721Receiver.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/boringcrypto/BoringSolidity/HEAD/contracts/mocks/MockERC721Receiver.sol -------------------------------------------------------------------------------- /contracts/mocks/MockERC721ReceiverWrong.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/boringcrypto/BoringSolidity/HEAD/contracts/mocks/MockERC721ReceiverWrong.sol -------------------------------------------------------------------------------- /contracts/mocks/MockMasterContract.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/boringcrypto/BoringSolidity/HEAD/contracts/mocks/MockMasterContract.sol -------------------------------------------------------------------------------- /docs/checks.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/boringcrypto/BoringSolidity/HEAD/docs/checks.txt -------------------------------------------------------------------------------- /hardhat.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/boringcrypto/BoringSolidity/HEAD/hardhat.config.js -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/boringcrypto/BoringSolidity/HEAD/package.json -------------------------------------------------------------------------------- /scripts/create_interfaces.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/boringcrypto/BoringSolidity/HEAD/scripts/create_interfaces.js -------------------------------------------------------------------------------- /test/BoringBatchable.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/boringcrypto/BoringSolidity/HEAD/test/BoringBatchable.js -------------------------------------------------------------------------------- /test/BoringERC20.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/boringcrypto/BoringSolidity/HEAD/test/BoringERC20.js -------------------------------------------------------------------------------- /test/BoringFactory.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/boringcrypto/BoringSolidity/HEAD/test/BoringFactory.js -------------------------------------------------------------------------------- /test/BoringGenerativeNFT.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/boringcrypto/BoringSolidity/HEAD/test/BoringGenerativeNFT.js -------------------------------------------------------------------------------- /test/BoringMultipleNFT.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/boringcrypto/BoringSolidity/HEAD/test/BoringMultipleNFT.js -------------------------------------------------------------------------------- /test/BoringOwnable.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/boringcrypto/BoringSolidity/HEAD/test/BoringOwnable.js -------------------------------------------------------------------------------- /test/BoringRebase.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/boringcrypto/BoringSolidity/HEAD/test/BoringRebase.js -------------------------------------------------------------------------------- /test/BoringSingleNFT.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/boringcrypto/BoringSolidity/HEAD/test/BoringSingleNFT.js -------------------------------------------------------------------------------- /test/ERC20.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/boringcrypto/BoringSolidity/HEAD/test/ERC20.js -------------------------------------------------------------------------------- /test/certora/BoringMath.spec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/boringcrypto/BoringSolidity/HEAD/test/certora/BoringMath.spec -------------------------------------------------------------------------------- /test/certora/ERC20.spec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/boringcrypto/BoringSolidity/HEAD/test/certora/ERC20.spec -------------------------------------------------------------------------------- /test/certora/SingleNFT.spec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/boringcrypto/BoringSolidity/HEAD/test/certora/SingleNFT.spec -------------------------------------------------------------------------------- /test/utilities/BoringOwnable.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/boringcrypto/BoringSolidity/HEAD/test/utilities/BoringOwnable.js -------------------------------------------------------------------------------- /test/utilities/index.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/boringcrypto/BoringSolidity/HEAD/test/utilities/index.js -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/boringcrypto/BoringSolidity/HEAD/yarn.lock --------------------------------------------------------------------------------