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