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/3] 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/3] 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 From 918c32763cd787ae816776ac9b74cf5234e630da Mon Sep 17 00:00:00 2001 From: bryantrinh <11767305+bryantrinh@users.noreply.github.com> Date: Wed, 3 Jun 2026 16:49:58 +0700 Subject: [PATCH 3/3] fix: resolve issue #45 --- LICENSE | 21 +++++++++++++++++++++ bounty_context.json | 7 ++++--- pr_status.json | 2 +- test_status.json | 2 +- 4 files changed, 27 insertions(+), 5 deletions(-) create mode 100644 LICENSE diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..94b9f68 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2026 tommycet + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/bounty_context.json b/bounty_context.json index 59f1bc2..3698342 100644 --- a/bounty_context.json +++ b/bounty_context.json @@ -1,10 +1,11 @@ { "owner": "tommycet", "repo": "proofworks-genlayer", - "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.", + "issueNumber": "45", + "title": "Add an MIT LICENSE file at the repository root", + "body": "## Summary\n\nThe repo currently has no top-level license file. The README's License section explicitly says \"Not yet specified. An explicit license will be added before mainnet.\" Time to add it.\n\nMIT is the right call: short, permissive, well-understood by reviewers and contributors, and consistent with the rest of the GenLayer ecosystem.\n\n## Acceptance criteria\n\nA submitted PR must:\n\n1. Add a new file named `LICENSE` at the repository root (no extension, all caps).\n2. The file must be the standard MIT License text.\n3. The copyright line must reference the year `2026` and the holder `tommycet`.\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", diff --git a/pr_status.json b/pr_status.json index 83606ff..cd9aadf 100644 --- a/pr_status.json +++ b/pr_status.json @@ -1,5 +1,5 @@ { "submitted": true, "dryRun": false, - "prUrl": "https://github.com/tommycet/proofworks-genlayer/pull/32" + "prUrl": "https://github.com/tommycet/proofworks-genlayer/pull/40" } \ No newline at end of file diff --git a/test_status.json b/test_status.json index 308c8ac..42c30bf 100644 --- a/test_status.json +++ b/test_status.json @@ -1,4 +1,4 @@ { "passed": true, - "output": "........................................................................ [ 80%]\n................. [100%]\n89 passed in 1.95s\n" + "output": "........................................................................ [ 80%]\n................. [100%]\n89 passed in 1.89s\n" } \ No newline at end of file