🎁 Get the FREE AI Skills Starter Guide β€” Subscribe β†’
BytesAgainBytesAgain
πŸ¦€ ClawHub

Fulfill Git Escrow

by @mlegls

Fulfill a git escrow bounty by writing a solution or submitting an existing one. Use when the user wants to solve a test suite challenge, write code to pass...

Versionv1.0.0
Downloads604
TERMINAL
clawhub install fulfill-git-escrow

πŸ“– About This Skill


name: fulfill-git-escrow description: Fulfill a git escrow bounty by writing a solution or submitting an existing one. Use when the user wants to solve a test suite challenge, write code to pass tests, and claim a token reward. Requires the git-escrows CLI (npm i -g git-escrows). compatibility: Requires git-escrows CLI, git, a configured .env with PRIVATE_KEY, and network access to an Ethereum RPC endpoint. allowed-tools: Bash Read Write Edit Glob Grep metadata: author: arkhai-io version: "1.0" openclaw: requires: bins: - git-escrows - git config: - .env primaryEnv: PRIVATE_KEY homepage: https://github.com/arkhai-io/git-commit-trading emoji: "\U0001F3AF"

Fulfill Git Escrow

You are helping the user fulfill a git escrow bounty. This means submitting code that passes a failing test suite to claim the escrowed token reward.

There are two modes:

  • Mode A (Write + Submit): You write the solution code, commit it, and submit. This is the default when no --solution-repo is provided by the user.
  • Mode B (Submit Existing): The user already has a solution repo and commit. You just submit the fulfillment.
  • Determine the mode from the user's input:

  • If they provide --solution-repo, use Mode B.
  • Otherwise, use Mode A.
  • The escrow UID is always required.

    Step 1: Check CLI availability

    Run git-escrows --help to verify the CLI is installed. If it fails, try npx git-escrows --help or bunx git-escrows --help. Use whichever works for all subsequent commands. If none work, tell the user to install with npm i -g git-escrows.

    Step 2: Check .env configuration

    Check if a .env file exists in the current directory. If not, tell the user they need one and suggest running:

    git-escrows new-client --privateKey "0x..." --network "sepolia"
    

    Step 3: Validate the escrow

    Run git-escrows list --verbose --format json and find the escrow matching the provided UID. Confirm:

  • The escrow exists and is open
  • Note the test repo URL, test commit hash, reward amount, and oracle address
  • If no escrow UID was provided, ask the user for one. You can help them browse with git-escrows list --status open.

    Mode A: Write Solution + Submit

    A1: Understand the tests

    Clone or read the test repository to understand what the tests expect: 1. Identify the test repo URL and commit from the escrow details 2. Clone it to a temporary location: git clone /tmp/escrow-tests- && cd /tmp/escrow-tests- && git checkout 3. Read the test files to understand: - What functions/modules/APIs the tests import - What behavior they assert - What test framework is used - The project structure expected

    A2: Write the solution

    In the current working directory (or a subdirectory the user specifies): 1. Create/modify files to implement the code that will make the tests pass 2. Follow the project structure the tests expect (e.g., if tests import from src/math.ts, create that file) 3. Include any necessary config files (package.json, Cargo.toml, etc.) 4. Ensure the test framework's dependencies are accounted for

    A3: Commit and get repo details

    1. Stage and commit the solution: git add -A && git commit -m "solution for escrow " 2. Get the commit hash: git rev-parse HEAD 3. Get the remote URL: git remote get-url origin - If no remote exists, ask the user to push to a public git repo and provide the URL

    A4: Submit the fulfillment

    git-escrows fulfill \
      --escrow-uid "" \
      --solution-repo "" \
      --solution-commit ""
    

    Mode B: Submit Existing Solution

    B1: Gather parameters

    From the user's input, extract:

  • --solution-repo: The git repo URL with the solution
  • --solution-commit: The commit hash of the solution
  • If either is missing, ask the user.

    B2: Submit the fulfillment

    git-escrows fulfill \
      --escrow-uid "" \
      --solution-repo "" \
      --solution-commit ""
    

    Step 4: Report results (both modes)

    After successful execution:

  • Report the Fulfillment UID prominently
  • Explain that the oracle will now automatically test the solution
  • Provide the collect command for after arbitration passes:
  •   git-escrows collect --escrow-uid  --fulfillment-uid 
      
  • Suggest checking status with: git-escrows list --verbose
  • If the command fails, help diagnose the issue (escrow already fulfilled, wrong network, key not registered, etc.). If the user's git key isn't registered, suggest git-escrows register-key.