Technical Reference
10.1 Contract Constants
AI_SERVICE_FEE = 0.00001 ether– Fee for AI agent services on issue creation.MIN_CONTRIBUTOR_STAKE_PERCENTAGE = 5– Minimum contributor stake as a percentage of the issue bounty.MAX_CONTRIBUTOR_STAKE_PERCENTAGE = 20– Maximum contributor stake as a percentage of the issue bounty.DEFAULT_EASY_DURATION = 7 days– Default duration for EASY issues.DEFAULT_MEDIUM_DURATION = 30 days– Default duration for MEDIUM issues.DEFAULT_HARD_DURATION = 150 days– Default duration for HARD issues.
10.2 Events
IssueCreated(issueId, creator, githubIssueUrl, bounty, difficulty)– Emitted when a new issue is created.IssueAssigned(issueId, contributor, deadline)– Emitted when a contributor takes an issue.IssueCompleted(issueId, contributor, reward)– Emitted when an issue is marked complete and rewards are sent.BountyIncreased(issueId, newBounty)– Emitted when the issue bounty is increased.DeadlineExpired(issueId, contributor)– Emitted when an issue’s deadline passes and contributor claims expiration payout.AIPaymentSent(from, amount)– Emitted when AI service fee is paid.StakeForfeited(issueId, contributor, amount)– Emitted when contributor stake is forfeited due to insufficient completion.
10.3 View Functions
getIssueInfo(uint256 issueId)– Returns detailed information of a specific issue.getOrganisationIssues()– Returns all issue IDs in the organization.getIssueDurations(uint256 issueId)– Returns easy, medium, and hard durations for a given issue.getCreatorIssues(address creator)– Returns all issue IDs created by a specific creator.getContributorAssignedIssues(address contributor)– Returns all issues assigned to a contributor.getIssuePreviousContributors(uint256 issueId)– Returns a list of contributors who previously attempted the issue.hasContributorAttemptedIssue(uint256 issueId, address contributor)– Returns whether a contributor has attempted an issue.isIssueExpired(uint256 issueId)– Checks if a given issue’s deadline has passed.getContractBalance()– Returns the contract’s current ETH balance.isAddressVerified(address user)– Checks whether a user has stored a nullifier and is verified.
10.4 GitHub Integration
DecentralizedIssueTracker integrates with GitHub URLs provided during issue creation to track:
Issue existence and metadata (URL, description).
Contributor identities via verification (nullifier mapping).
Reconciliation can be implemented off-chain by AI agents to verify:
Issue assignment correctness.
Completion verification based on AI confidence score.
Fractional completion claims.
Unauthorized stake forfeiture handling.
Last updated