neuroswish / party-contracts-c4

Party Protocol Contracts for code4rena contest

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

The PartyBid V1 protocol allowed people to pool funds together to acquire NFTs. V2 (Party Protocol) adds new features to allow parties to use and govern those NFTs together as well. The party never ends!

PLEASE READ THE PROTOCOL DOCS HERE!

Layout

docs/ # Start here
├── overview.md
├── crowdfund.md
└── governance.md
contracts/
│   # Used during the crowdfund phase
├── crowdfund/
│   ├── AuctionCrowdfund.sol
│   ├── BuyCrowdfund.sol
│   ├── CollectionBuyCrowdfund.sol
│   ├── CrowdfundFactory.sol
│   ├── Crowdfund.sol
│   └── CrowdfundNFT.sol
├── gatekeepers/
│   ├── AllowListGateKeeper.sol
│   └── TokenGateKeeper.sol
├── globals/
│   └── Globals.sol
│   # Used during the governance phase
├── party/
│   ├── Party.sol
│   ├── PartyFactory.sol
│   ├── PartyGovernance.sol
│   └── PartyGovernanceNFT.sol
├── proposals/
│   ├── ProposalExecutionEngine.sol
│   ├── ArbitraryCallsProposal.sol
│   ├── FractionalizeProposal.sol
│   ├── ListOnOpenseaProposal.sol
│   └── ListOnZoraProposal.sol
├── distribution/
│   └── TokenDistributor.sol
|   # Used to render crowdfund and governance NFTs
└── renderers/
    ├── CrowdfundNFTRenderer.sol
    └── PartyGovernanceNFTRenderer.sol
sol-tests/ # Foundry tests
tests/ # TS tests

Getting started

First install Foundry.

forge install
yarn -D
yarn build

Testing

Run all tests (except fork tests):

yarn test

Run only TS tests

yarn test:ts

Run only Foundry tests

yarn test:sol
# If you want gas reports:
yarn test:gas

Run forked Foundry tests

forge test -m testFork --fork-url $YOUR_RPC_URL

License

This code is provided under the Beta Software License Agreement.

About

Party Protocol Contracts for code4rena contest

License:Other


Languages

Language:Solidity 94.1%Language:TypeScript 5.9%