From eb5d2c69b248ffae889f5063674f702ce0f56227 Mon Sep 17 00:00:00 2001 From: bryantrinh <11767305+bryantrinh@users.noreply.github.com> Date: Mon, 1 Jun 2026 18:44:28 +0700 Subject: [PATCH 1/2] fix: resolve issue #26 bounty --- CONTRIBUTING.md | 76 +++++++++++++++++++++++++++++++++++++++++++++ bounty_context.json | 13 ++++++++ test_status.json | 4 +++ 3 files changed, 93 insertions(+) create mode 100644 CONTRIBUTING.md create mode 100644 bounty_context.json create mode 100644 test_status.json diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..588f1a9 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,76 @@ +# Contributing to ProofWorks + +Thank you for your interest in contributing to **ProofWorks**! This document outlines the process for setting up your environment, running tests, and submitting your contributions. + +## Setup + +To set up the development environment locally: + +1. **Clone the Repository**: + Clone the repository and navigate into the project root: + ```bash + git clone https://github.com/tommycet/proofworks-genlayer.git + cd proofworks-genlayer + ``` + +2. **Install Python Dependencies**: + ProofWorks requires Python dependencies for contract testing and linting. Install them using `requirements.txt`: + ```bash + pip install -r requirements.txt + ``` + +3. **Install Node.js Dependencies**: + Install root dependencies and frontend dependencies: + ```bash + npm install + npm --prefix frontend install + ``` + +## Running the tests + +To verify your changes locally, you can run the test suite using the configured Makefile targets: + +- **Run all direct contract tests**: + ```bash + make test + ``` + *(Note: This command runs the Python pytest suite against GenVM direct-mode tests.)* + +- **Lint the escrow contract**: + ```bash + make lint-contract + ``` + +- **Build the frontend production package**: + ```bash + npm --prefix frontend run build + ``` + +- **Validate all components in one shot** (Tests, Contract Linter, and Frontend build): + ```bash + make validate-all + ``` + +## Submitting a pull request + +When you are ready to submit your changes: + +1. **Create a Local Branch**: + Branch off from the `main` branch with a descriptive name: + ```bash + git checkout -b feature/your-feature-name + # or + git checkout -b fix/your-bugfix-name + ``` + +2. **Commit Your Changes**: + Make small, atomic commits with clear commit messages describing your changes. + +3. **Validate Your Changes**: + Ensure all tests and build checks pass successfully by running: + ```bash + make validate-all + ``` + +4. **Submit the Pull Request**: + Push your branch to GitHub and open a Pull Request targeting the `main` branch. diff --git a/bounty_context.json b/bounty_context.json new file mode 100644 index 0000000..461e74f --- /dev/null +++ b/bounty_context.json @@ -0,0 +1,13 @@ +{ + "owner": "tommycet", + "repo": "proofworks-genlayer", + "issueNumber": "26", + "title": "Add CONTRIBUTING.md with three core sections", + "body": "## Summary\n\nThe repo accepts external contributions but does not yet have a `CONTRIBUTING.md` explaining how to set up the environment, run the tests, and submit a PR.\n\n## Acceptance criteria\n\nA submitted PR must:\n\n1. Add a new file named `CONTRIBUTING.md` at the repository root.\n2. The file must contain three top-level sections (Markdown `##` headings): `Setup`, `Running the tests`, and `Submitting a pull request`.\n3. The `Running the tests` section must mention the command `make test`.\n4. The PR must come from the same repository (tommycet/proofworks-genlayer).\n\n## Reward\n\nFunded as a ProofWorks bounty case. Worker payout on APPROVE.\n", + "labels": [ + "documentation", + "bounty" + ], + "gitCloneUrl": "https://github.com/tommycet/proofworks-genlayer.git", + "repoDir": "/Users/macminim1/Documents/efe/bounty-hunter/temp/proofworks-genlayer" +} \ No newline at end of file diff --git a/test_status.json b/test_status.json new file mode 100644 index 0000000..aa9a9c7 --- /dev/null +++ b/test_status.json @@ -0,0 +1,4 @@ +{ + "passed": true, + "output": "........................................................................ [ 80%]\n................. [100%]\n89 passed in 1.93s\n" +} \ No newline at end of file From 7df15578d5fb09954b0c33318fcb08e79855c491 Mon Sep 17 00:00:00 2001 From: bryantrinh <11767305+bryantrinh@users.noreply.github.com> Date: Tue, 2 Jun 2026 06:55:26 +0700 Subject: [PATCH 2/2] fix: resolve issue #4 --- bounty_context.json | 7 +++---- docs/bounty-rules.md | 15 +++++++++++++++ pr_status.json | 5 +++++ test_status.json | 2 +- 4 files changed, 24 insertions(+), 5 deletions(-) create mode 100644 docs/bounty-rules.md create mode 100644 pr_status.json diff --git a/bounty_context.json b/bounty_context.json index 461e74f..59f1bc2 100644 --- a/bounty_context.json +++ b/bounty_context.json @@ -1,11 +1,10 @@ { "owner": "tommycet", "repo": "proofworks-genlayer", - "issueNumber": "26", - "title": "Add CONTRIBUTING.md with three core sections", - "body": "## Summary\n\nThe repo accepts external contributions but does not yet have a `CONTRIBUTING.md` explaining how to set up the environment, run the tests, and submit a PR.\n\n## Acceptance criteria\n\nA submitted PR must:\n\n1. Add a new file named `CONTRIBUTING.md` at the repository root.\n2. The file must contain three top-level sections (Markdown `##` headings): `Setup`, `Running the tests`, and `Submitting a pull request`.\n3. The `Running the tests` section must mention the command `make test`.\n4. The PR must come from the same repository (tommycet/proofworks-genlayer).\n\n## Reward\n\nFunded as a ProofWorks bounty case. Worker payout on APPROVE.\n", + "issueNumber": "4", + "title": "Bounty: Document Appeal Fees and Staking", + "body": "This task requires documenting the appeal fees (20% bond) and worker staking (forfeited on claim expiry) introduced in ProofWorks Phase 9.\n\nAcceptance Criteria:\n1. Create a new markdown file docs/bounty-rules.md.\n2. Document that the appeal bond is 20% of the task reward.\n3. Document that worker stake is forfeited if the claim expires without a proof submission.\n4. References this issue in the PR body.", "labels": [ - "documentation", "bounty" ], "gitCloneUrl": "https://github.com/tommycet/proofworks-genlayer.git", diff --git a/docs/bounty-rules.md b/docs/bounty-rules.md new file mode 100644 index 0000000..de62b2e --- /dev/null +++ b/docs/bounty-rules.md @@ -0,0 +1,15 @@ +# ProofWorks Bounty Rules + +This document outlines the rules governing worker staking and dispute resolution (appeals) introduced in ProofWorks Phase 9. + +## Appeal Fees & Bonds + +To prevent spam disputes and ensure high-quality validations: +- **Appeal Bond Rate**: The appeal bond is set to **20% of the task reward**. +- **Payment & Recovery**: The appellant must deposit this bond when opening an appeal. If the appeal is successful, the bond is returned; otherwise, it is distributed to the validators. + +## Worker Staking & Expiry + +To guarantee that claimed tasks are completed in a timely manner: +- **Forfeiture on Expiry**: If a worker claims a task but the claim expires without a valid proof submission, the worker's staked amount is **forfeited**. +- **Stake Release**: The stake is released back to the worker upon successful submission and approval of the proof. diff --git a/pr_status.json b/pr_status.json new file mode 100644 index 0000000..83606ff --- /dev/null +++ b/pr_status.json @@ -0,0 +1,5 @@ +{ + "submitted": true, + "dryRun": false, + "prUrl": "https://github.com/tommycet/proofworks-genlayer/pull/32" +} \ No newline at end of file diff --git a/test_status.json b/test_status.json index aa9a9c7..308c8ac 100644 --- a/test_status.json +++ b/test_status.json @@ -1,4 +1,4 @@ { "passed": true, - "output": "........................................................................ [ 80%]\n................. [100%]\n89 passed in 1.93s\n" + "output": "........................................................................ [ 80%]\n................. [100%]\n89 passed in 1.95s\n" } \ No newline at end of file