yobot-contracts
yobot-contracts copied to clipboard
Experimental Contracts for Yobot
yobot •

Experimental, heavily-documented contracts for yobot.
Contracts
Goerli YobotERC721LimitOrder: 0x20340e29ba445553f6a5c1b8d30f405b3447664d.
Mainnet YobotERC721LimitOrder: 0x715da5e53526bedac9bd96e8fdb7efb185d1b6ca. Deployed and managed by 0xc9ab63915c6738c8ce5ca245979203bfa3f2499f - an account managed by the yobot team.
NOTE: The deployer has no ability to withdraw funds - it may only collect the yobot fees as defined in YobotERC721LimitOrder.sol. The deployer address is set as the YobotERC721LimitOrder's Coordinator.
Blueprint
src
├─ artblocks
│ ├─ GenArt721Core — "..."
│ └─ YobotArtBlocksBroker — "Permissionless Broker for ArtBlocks Minting using Flashbot Searchers"
├─ external
│ ├─ ERC165 — "A minimal ERC165 Implementation"
│ ├─ ERC721Enumerable — "An extension of ERC721 that supports enumeration"
│ └─ ERC721Metadata — "An Enumerable ERC721 with Metadata"
├─ interfaces
│ ├─ IArtBlocksFactory — "ArtBlocksFactory Contract Interface"
│ ├─ IERC165 — "ERC165 Interface"
│ ├─ IERC721 — "ERC721 Interface"
│ └─ IERC721Enumerable — "An Enumerable ERC721 Interface"
├─ mocks
│ ├─ InfiniteMint — "An ERC721 allowing infinite mints for testnet"
│ └─ StrictMint — "An ERC721 with strict minting"
├─ tests
│ ├─ utils
│ │ └─ DSTestPlus — "Custom, extended DSTest Suite"
│ ├─ Coordinator.t — "Coordinator Tests"
│ ├─ YobotArtBlocksBroker.t — "YobotArtBlocksBroker Tests"
│ └─ YobotERC721LimitOrder.t — "YobotERC721LimitOrder Tests"
├─ utils
│ ├─ Randomizer — "A random generation"
│ └─ YobotDeadline — "Abstracted Deadline Logic"
├─ Coordinator — "Coordinator for Fee Parameters and Reception"
└─ YobotERC721LimitOrder — "Permissionless Broker for Generalized ERC721 Minting using Flashbot Searchers"
Development
First time with Forge/Foundry?
Don't have rust installed? Run
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
Then, install foundry with:
cargo install --git https://github.com/gakonst/foundry --bin forge --locked
Dependencies
yarn setup
Run Tests
yarn test
Deploying
View DEPLOYING.md.
License
Acknowledgements
- foundry
- solmate
- Artbotter for their tremendous initial lift and inspiration!
- Georgios Konstantopoulos for forge-template resource.
Noted Issues
On initial library import, zeppelin-solidity root contract directory will need to be changed from "contracts" to "src". Use the commands:
ln -s contracts lib/zeppelin-solidity/src
echo /src >>.git/modules/lib/zeppelin-solidity/info/exclude
Disclaimer
These smart contracts are being provided as is. No guarantee, representation or warranty is being made, express or implied, as to the safety or correctness of the user interface or the smart contracts. They have not been audited and as such there can be no assurance they will work as intended, and users may experience delays, failures, errors, omissions, loss of transmitted information or loss of funds. Nascent is not liable for any of the foregoing. Users should proceed with caution and use at their own risk.