Bounty Contracts
Bounty Contracts
The Bounty system consists of two main contracts that work together to manage domain-specific bounties: MultiDomainBounty for core logic and BountyData for storage.
MultiDomainBounties
Contract Details
0xEa6E318Dc2C112dC8C47Ca04066e7c6643F2145e
Contract Details
0xEa6E318Dc2C112dC8C47Ca04066e7c6643F2145e
0x9982eb7e1b2bf95d5b84F85877070B7eBd4E72fa
About Bounty System
The Bounty system enables domains to create and manage bounties with flexible reward structures, supporting both ETH and ERC20 token rewards.
Key Features
Flexible Rewards
Support for both ETH and ERC20 token rewards with additional ADAO token incentives
Submission Management
Track and manage bounty submissions with detailed participant data
Contract Architecture
The Bounty system uses a two-contract architecture to separate concerns:
MultiDomainBounties
Core logic contract handling bounty creation, work submissions, and reward distribution. Manages user interactions and enforces business rules.
- Bounty creation and management
- Work submission handling
- Reward distribution logic
- Admin controls
BountyData
Storage contract maintaining all bounty-related data and participant information. Provides data access and statistics tracking.
- Bounty data storage
- Participant tracking
- Statistics management
- Historical data access
BountyData
Contract Details
0x9982eb7e1b2bf95d5b84F85877070B7eBd4E72fa
BountyData Overview
BountyData serves as the storage layer for the bounty system, managing all data structures and providing comprehensive tracking of bounties, participants, and statistics.
Key Features
- Persistent storage of bounty information
- Participant tracking and statistics
- Domain-specific bounty management
- Historical data access and analytics
Data Structures
struct BountyView {
address creator;
address token;
uint256 amount;
uint256 deadline;
string title;
string description;
BountyStatus status;
uint256 submissionCount;
address winner;
uint256 rewardAmount;
uint256 remainingReward;
bool rewardsClaimed;
}
struct DomainStats {
uint256 totalBounties;
uint256 activeBounties;
uint256 completedBounties;
uint256 totalSubmissions;
uint256 totalRewardsGiven;
uint256 lastActivityTime;
}
struct UserStats {
uint256 bountiesCreated;
uint256 bountiesWon;
uint256 submissionsMade;
uint256 rewardsEarned;
uint256 lastActivityTime;
}