Experimental, heavily-documented contracts for yobot.
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.
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"
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
yarn setup
yarn test
View DEPLOYING.md.
- foundry
- solmate
- Artbotter for their tremendous initial lift and inspiration!
- Georgios Konstantopoulos for forge-template resource.
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
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.