Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/nascentxyz/yobot-contracts
Experimental Contracts for Yobot
https://github.com/nascentxyz/yobot-contracts
ethereum forge foundry solidity solmate yobot
Last synced: 6 days ago
JSON representation
Experimental Contracts for Yobot
- Host: GitHub
- URL: https://github.com/nascentxyz/yobot-contracts
- Owner: nascentxyz
- License: agpl-3.0
- Created: 2022-01-06T20:46:00.000Z (almost 3 years ago)
- Default Branch: master
- Last Pushed: 2022-02-12T19:48:15.000Z (almost 3 years ago)
- Last Synced: 2023-03-05T09:57:58.338Z (over 1 year ago)
- Topics: ethereum, forge, foundry, solidity, solmate, yobot
- Language: Solidity
- Homepage: https://yobot.com
- Size: 6.97 MB
- Stars: 36
- Watchers: 2
- Forks: 2
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# yobot • [![tests](https://github.com/nascentxyz/yobot-contracts/actions/workflows/tests.yml/badge.svg)](https://github.com/nascentxyz/yobot-contracts/actions/workflows/tests.yml) [![lints](https://github.com/nascentxyz/yobot-contracts/actions/workflows/lints.yml/badge.svg)](https://github.com/nascentxyz/yobot-contracts/actions/workflows/lints.yml) ![GitHub](https://img.shields.io/github/license/nascentxyz/yobot-contracts) ![GitHub package.json version](https://img.shields.io/github/package-json/v/nascentxyz/yobot-contracts)
**Experimental**, **heavily-documented** contracts for [yobot](https://yobot.com).
## Contracts
Goerli YobotERC721LimitOrder: [0x20340e29ba445553f6a5c1b8d30f405b3447664d](https://goerli.etherscan.io/address/0x20340e29ba445553f6a5c1b8d30f405b3447664d).
Mainnet YobotERC721LimitOrder: [0x715da5e53526bedac9bd96e8fdb7efb185d1b6ca](https://etherscan.io/address/0x715da5e53526bedac9bd96e8fdb7efb185d1b6ca). Deployed and managed by [0xc9ab63915c6738c8ce5ca245979203bfa3f2499f](https://etherscan.io/address/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](./src/YobotERC721LimitOrder.sol). The deployer address is set as the YobotERC721LimitOrder's [Coordinator](./src/Coordinator.sol).
## Blueprint
```ml
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](https://www.rust-lang.org/tools/install) installed?
Run
```bash
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
```Then, install [foundry](https://github.com/gakonst/foundry) with:
```bash
cargo install --git https://github.com/gakonst/foundry --bin forge --locked
```### Dependencies
```bash
yarn setup
```### Run Tests
```bash
yarn test
```### Deploying
View [DEPLOYING.md](./DEPLOYING.md).
## License
[AGPL-3.0-only](https://github.com/nascentxyz/yobot/blob/master/LICENSE)
# Acknowledgements
- [foundry](https://github.com/gakonst/foundry)
- [solmate](https://github.com/Rari-Capital/solmate)
- [Artbotter](https://artbotter.io) for their tremendous initial lift and inspiration!
- [Georgios Konstantopoulos](https://github.com/gakonst) for [forge-template](https://github.com/gakonst/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._