This project is part of the more detailed blog post you can find here
It demonstrates a few things:
- Scroll is EVM Equivalent, allowing us to use a bit more "niche" tools at moment of writing this
- Create Multisig contract in Vyper using Supersig
- Create NFT contract in Solidity using OpenZeppelin libraries
- Use Brownie to:
- Deploy above contracts
- Test above contracts
If you aren't too keen on experimenting and would rather try out Scroll in Hardhat and Solidity, checkout the official guide here.
The contracts are deployed on Scroll's Alpha testnet you can read more about here.
TheNFT.sol: 0x2b755B2D78156215Ac9dA3b2E09eB674B1493C92
Supersig.vy: 0x6fD91afc1C7dCB72387da9a4A6B3108C6538CF85
To run the project, you need:
- Python 3.8 local development environment
- Node.js 16 to run Ganache-cli
brownie-eth
1.19 installed. Guide hereganache-cli
6.12 installed. And yes, don't use the newerganache
package since it has incompatibilities with brownie- Scroll network setup in your Brownie
network-config.yaml
file. Here's a short guide here - Good will 🙂
git clone https://github.com/pajicf/scroll-multisig-and-nft
cd scroll-multisig-and-nft
brownie test
- To run the testsbrownie compile
- To compile and build the smart contractsbrownie run ./scripts/deploy.py --network scroll-alpha
- To deploy the contracts
!In the next steps don't forget to replace values with your own!brownie run ./scripts/transfer_ownership.py main [NFT_ADDRESS] [MULTISIG_ADDRESS] --network scroll-alpha
- To transfer NFT ownership to the multisigbrownie run ./scripts/multisig_script.py main [NFT_ADDRESS] [MULTISIG_ADDRESS] --network scroll-alpha
- To mint the NFT through the multisig