Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
ceadaee
Fix Python SDK publish workflow (#3781)
portuu3 Feb 11, 2026
23e50b5
chore(deps-dev): bump nock from 13.5.6 to 14.0.11 (#3789)
dependabot[bot] Feb 16, 2026
960059f
chore(deps-dev): bump prettier from 3.7.4 to 3.8.1 (#3788)
dependabot[bot] Feb 16, 2026
ca7b871
Update gas price handling to use new EIP-1559 (#3787)
flopez7 Feb 16, 2026
8fbe1cf
Add SDK transaction timeout constant and apply it across services (#3…
flopez7 Feb 16, 2026
1098733
chore(deps-dev): bump @eslint/js from 9.39.0 to 10.0.1 (#3790)
dependabot[bot] Feb 16, 2026
f099932
chore(deps): bump react-router-dom from 6.30.1 to 7.13.0 (#3791)
dependabot[bot] Feb 16, 2026
92a99de
chore(deps): bump @mui/icons-material from 7.3.4 to 7.3.8 (#3792)
dependabot[bot] Feb 16, 2026
a31cfc8
[SDK] Handle subgraph errors properly (#3782)
flopez7 Feb 18, 2026
c50fc7e
[SDK][Typescript] Split domain modules (#3793)
flopez7 Feb 18, 2026
69f1bb5
fix: docker workspace build order by excluding app workspace from ear…
flopez7 Feb 18, 2026
3f58bd9
[Fix] docker compose --parallel ignored in Compose v5 (#3797)
flopez7 Feb 23, 2026
3d0faa2
chore(deps): bump actions/dependency-review-action from 4.8.2 to 4.8.…
dependabot[bot] Feb 26, 2026
2785332
chore(deps-dev): bump @nestjs/testing from 11.1.12 to 11.1.14 (#3800)
dependabot[bot] Feb 26, 2026
1d0f402
chore(deps): bump @mui/styled-engine-sc from 7.2.0 to 7.3.8 (#3802)
dependabot[bot] Feb 26, 2026
ee35e10
chore(deps): bump @nestjs/schedule from 6.1.0 to 6.1.1 (#3804)
dependabot[bot] Mar 2, 2026
9f7d3ab
[Job Launcher] remove createHcaptchaJob functionality and related co…
flopez7 Mar 6, 2026
732197c
[Dashboard] Fix transaction amounts/symbols for multi-token support (…
flopez7 Mar 10, 2026
ac50a89
[Job Launcher Server] Enable HMT on testnets add USDC and USDT token …
flopez7 Mar 10, 2026
5495f17
chore(deps): bump @wagmi/core from 2.22.1 to 3.4.0 (#3808)
dependabot[bot] Mar 11, 2026
5e66e65
chore(deps): bump vitest from 3.2.4 to 4.0.18 (#3803)
dependabot[bot] Mar 11, 2026
fe62c35
chore(deps): bump bcrypt and @types/bcrypt (#3809)
dependabot[bot] Mar 11, 2026
1c3883b
chore(deps): bump @google-cloud/storage from 7.17.2 to 7.19.0 (#3817)
dependabot[bot] Mar 11, 2026
d2e86bd
chore(deps): bump actions/dependency-review-action from 4.8.3 to 4.9.…
dependabot[bot] Mar 11, 2026
1fe9478
chore(deps): bump styled-components from 6.1.19 to 6.3.11 (#3810)
dependabot[bot] Mar 11, 2026
a7ab394
Read fee values from kvstore in the escrow contract (#3812)
portuu3 Mar 13, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .changeset/cozy-poets-go.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
"@human-protocol/sdk": major
"@human-protocol/python-sdk": major
---

Updated KV Store utils in sdk to return empty string in case no value in subgraph instead of throwing and error
5 changes: 5 additions & 0 deletions .changeset/crisp-buckets-agree.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@human-protocol/sdk": minor
---

Added typed subgraph errors (SubgraphRequestError, SubgraphBadIndexerError) and wrapped subgraph request failures with these classes
11 changes: 11 additions & 0 deletions .changeset/nine-seas-dream.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
"@human-protocol/core": major
"@human-protocol/sdk": major
"@human-protocol/python-sdk": major
---

Updated escrow contracts and SDKs to fetch oracle fees from `KVStore` instead of passing fee values during escrow setup. `Escrow.setup(...)` and factory setup flows no longer accept fee arguments, escrow deployments now require a `KVStore` address, and fee validation is enforced on-chain from `KVStore` values, including per-oracle and total fee limits. Added upgrade-safe `EscrowFactory` support for storing and updating the `KVStore` address.

Updated TypeScript and Python SDK escrow setup APIs to match the new contract signatures by removing fee arguments from `setup(...)` and create-and-setup helpers. Existing config fee fields remain optional for backward compatibility but are ignored by setup calls.

Updated SDKs to use a dedicated HMT stats subgraph endpoint for HMT statistics methods and removed `totalAmountPaid` and `averageAmountPerWorker` from `IDailyPayment`.
5 changes: 5 additions & 0 deletions .changeset/shaggy-months-post.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@human-protocol/sdk": patch
---

Split combined domain files into module folders with explicit files per responsibility.
2 changes: 1 addition & 1 deletion .github/workflows/cd-packages.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ jobs:
steps:
- uses: actions/checkout@v6
with:
token: ${{ secrets.GH_GITBOOK_TOKEN }}
token: ${{ secrets.RELEASE_GH_TOKEN }}
- name: Setup git identity
run: |
git config --global user.name "github-actions[bot]"
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/cd-python-sdk.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ jobs:
steps:
- uses: actions/checkout@v6
with:
token: ${{ secrets.GH_GITBOOK_TOKEN }}
token: ${{ secrets.RELEASE_GH_TOKEN }}
- name: Setup git identity
run: |
git config --global user.name "github-actions[bot]"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,8 @@
name: Subgraph deployment
name: HMT Subgraph Deployment

permissions:
contents: read

on:
workflow_dispatch:
inputs:
Expand All @@ -11,7 +15,7 @@ on:

jobs:
subgraph:
name: Deploy Subgraph
name: Deploy HMT Subgraph
runs-on: ubuntu-latest
strategy:
matrix:
Expand Down Expand Up @@ -45,17 +49,17 @@ jobs:
fi
done
echo "Match found: $MATCH"
echo "::set-output name=continue::$MATCH"
echo "continue=$MATCH" >> "$GITHUB_OUTPUT"
- name: Install dependencies
if: steps.filter_networks.outputs.continue == 'true'
run: yarn workspaces focus @tools/subgraph
run: yarn workspaces focus @tools/subgraph-hmt
- name: Build packages (scoped)
if: steps.filter_networks.outputs.continue == 'true'
run: yarn workspaces foreach -Rpt --from @tools/subgraph run build
run: yarn workspaces foreach -Rpt --from @tools/subgraph-hmt run build
- name: Generate and build Subgraph
if: steps.filter_networks.outputs.continue == 'true'
run: yarn generate && yarn build
working-directory: ./packages/sdk/typescript/subgraph
working-directory: ./packages/subgraph/hmt
env:
NETWORK: ${{ matrix.network.name }}
- name: Authenticate & Deploy
Expand All @@ -64,9 +68,9 @@ jobs:
API_KEY: ${{ secrets.HP_GRAPH_API_KEY }}
NETWORK: ${{ matrix.network.name }}
LABEL: ${{ github.event.inputs.label }}
working-directory: ./packages/sdk/typescript/subgraph
working-directory: ./packages/subgraph/hmt
run: |
yarn dlx @graphprotocol/graph-cli@0.71.2 \
auth --studio "$API_KEY"
yarn dlx @graphprotocol/graph-cli@0.71.2 \
deploy --studio ${NETWORK} -l ${LABEL}
deploy --studio hmt-${NETWORK} -l ${LABEL}
76 changes: 76 additions & 0 deletions .github/workflows/cd-subgraph-human.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
name: Human Protocol Subgraph Deployment

permissions:
contents: read

on:
workflow_dispatch:
inputs:
label:
description: "New version label"
required: true
networks:
description: "Comma-separated list of networks to deploy"
required: true

jobs:
subgraph:
name: Deploy Human Protocol Subgraph
runs-on: ubuntu-latest
strategy:
matrix:
network:
- name: amoy
- name: bsc-testnet
- name: bsc
- name: ethereum
- name: polygon
- name: sepolia
fail-fast: true
max-parallel: 3
steps:
- uses: actions/checkout@v6
- uses: actions/setup-node@v6
with:
node-version-file: .nvmrc
cache: yarn
- name: Filter Networks
id: filter_networks
run: |
INPUT_NETWORKS="${{ github.event.inputs.networks }}"
IFS=',' read -ra NETWORK_LIST <<< "$INPUT_NETWORKS"
echo "Input networks: $INPUT_NETWORKS"
echo "Current matrix network: ${{ matrix.network.name }}"
MATCH=false
for network in "${NETWORK_LIST[@]}"; do
if [[ "${network}" == "${{ matrix.network.name }}" ]]; then
MATCH=true
break
fi
done
echo "Match found: $MATCH"
echo "continue=$MATCH" >> "$GITHUB_OUTPUT"
- name: Install dependencies
if: steps.filter_networks.outputs.continue == 'true'
run: yarn workspaces focus @tools/subgraph-human-protocol
- name: Build packages (scoped)
if: steps.filter_networks.outputs.continue == 'true'
run: yarn workspaces foreach -Rpt --from @tools/subgraph-human-protocol run build
- name: Generate and build Subgraph
if: steps.filter_networks.outputs.continue == 'true'
run: yarn generate && yarn build
working-directory: ./packages/subgraph/human-protocol
env:
NETWORK: ${{ matrix.network.name }}
- name: Authenticate & Deploy
if: steps.filter_networks.outputs.continue == 'true'
env:
API_KEY: ${{ secrets.HP_GRAPH_API_KEY }}
NETWORK: ${{ matrix.network.name }}
LABEL: ${{ github.event.inputs.label }}
working-directory: ./packages/subgraph/human-protocol
run: |
yarn dlx @graphprotocol/graph-cli@0.71.2 \
auth --studio "$API_KEY"
yarn dlx @graphprotocol/graph-cli@0.71.2 \
deploy --studio human-${NETWORK} -l ${LABEL}
2 changes: 1 addition & 1 deletion .github/workflows/ci-dependency-review.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,6 @@ jobs:
steps:
- uses: actions/checkout@v6
- name: Dependency Review
uses: actions/dependency-review-action@v4.8.2
uses: actions/dependency-review-action@v4.9.0
with:
show-openssf-scorecard: false
Original file line number Diff line number Diff line change
@@ -1,15 +1,18 @@
name: Subgraph check
name: HMT Subgraph check

on:
push:
branches: "**"
paths:
- "packages/core/**"
- "packages/sdk/typescript/subgraph/**"
- "packages/subgraph/hmt/**"

permissions:
contents: read

jobs:
subgraph-test:
name: Subgraph Test
name: HMT Subgraph Test
# TODO: Use ubuntu-latest when graph binary is not failing on ubuntu 24.04
runs-on: ubuntu-22.04
steps:
Expand All @@ -19,10 +22,10 @@ jobs:
node-version-file: .nvmrc
cache: yarn
- name: Install dependencies
run: yarn workspaces focus @tools/subgraph
run: yarn workspaces focus @tools/subgraph-hmt
- name: Build core package
run: yarn workspace @human-protocol/core build
- name: Generate manifest for Polygon for tests
run: NETWORK=polygon yarn workspace @tools/subgraph generate
run: NETWORK=polygon yarn workspace @tools/subgraph-hmt generate
- name: Run subgraph test
run: yarn workspace @tools/subgraph test
run: yarn workspace @tools/subgraph-hmt test
31 changes: 31 additions & 0 deletions .github/workflows/ci-test-subgraph-human.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
name: Human Protocol Subgraph check

on:
push:
branches: "**"
paths:
- "packages/core/**"
- "packages/subgraph/human-protocol/**"

permissions:
contents: read

jobs:
subgraph-test:
name: Human Protocol Subgraph Test
# TODO: Use ubuntu-latest when graph binary is not failing on ubuntu 24.04
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v6
- uses: actions/setup-node@v6
with:
node-version-file: .nvmrc
cache: yarn
- name: Install dependencies
run: yarn workspaces focus @tools/subgraph-human-protocol
- name: Build core package
run: yarn workspace @human-protocol/core build
- name: Generate manifest for Polygon for tests
run: NETWORK=polygon yarn workspace @tools/subgraph-human-protocol generate
- name: Run subgraph test
run: yarn workspace @tools/subgraph-human-protocol test
14 changes: 11 additions & 3 deletions docker-setup/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
build-services services-up services-stop

export COMPOSE_BAKE=false
DOCKER_PARALLEL ?= 4
DOCKER_PARALLEL ?= 2

check-env-file:
@if [ ! -f "./.env.compose.local" ]; then \
Expand All @@ -17,11 +17,19 @@ infra-stop:
@docker compose --env-file .env.compose.local stop postgres redis minio minio-client

build-services: check-env-file
@docker compose --env-file .env.compose.local --parallel $(DOCKER_PARALLEL) up --no-start
@# TODO: Revisit compose-native parallel builds once Docker Compose v5 parallel limits are reliable again.
@docker compose --env-file .env.compose.local config --services | \
xargs -n $(DOCKER_PARALLEL) docker compose --env-file .env.compose.local build
@docker compose --env-file .env.compose.local up --no-start

services-up: check-env-file
@service_names="$(wordlist 2, $(words $(MAKECMDGOALS)), $(MAKECMDGOALS))"; \
docker compose --env-file .env.compose.local --parallel $(DOCKER_PARALLEL) up -d $$service_names
@# TODO: Revisit compose-native parallel builds once Docker Compose v5 parallel limits are reliable again.
if [ -n "$$service_names" ]; then \
printf '%s\n' $$service_names | xargs -n $(DOCKER_PARALLEL) docker compose --env-file .env.compose.local up -d; \
else \
docker compose --env-file .env.compose.local config --services | xargs -n $(DOCKER_PARALLEL) docker compose --env-file .env.compose.local up -d; \
fi

services-stop:
@service_names="$(wordlist 2, $(words $(MAKECMDGOALS)), $(MAKECMDGOALS))"; \
Expand Down
2 changes: 2 additions & 0 deletions packages/apps/dashboard/client/eslint.config.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,8 @@ export default tseslint.config(
},
},
rules: {
'no-useless-assignment': 'off',
'preserve-caught-error': 'off',
'react/prop-types': 'off',
'react/display-name': 'off',
'react/react-in-jsx-scope': 'off',
Expand Down
12 changes: 6 additions & 6 deletions packages/apps/dashboard/client/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,9 @@
"@emotion/react": "^11.11.4",
"@emotion/styled": "^11.11.5",
"@human-protocol/sdk": "workspace:*",
"@mui/icons-material": "^7.2.0",
"@mui/icons-material": "^7.3.8",
"@mui/material": "^7.2.0",
"@mui/styled-engine-sc": "7.2.0",
"@mui/styled-engine-sc": "7.3.8",
"@mui/system": "^7.2.0",
"@mui/x-data-grid": "^8.7.0",
"@mui/x-date-pickers": "^8.26.0",
Expand All @@ -35,18 +35,18 @@
"react": "^18.3.1",
"react-dom": "^18.3.1",
"react-number-format": "^5.4.3",
"react-router-dom": "^6.23.1",
"react-router-dom": "^7.13.0",
"recharts": "^2.13.0-alpha.4",
"simplebar-react": "^3.3.2",
"styled-components": "^6.1.11",
"styled-components": "^6.3.11",
"swiper": "^11.1.3",
"use-debounce": "^10.1.0",
"vite-plugin-node-polyfills": "^0.25.0",
"zod": "^4.0.17",
"zustand": "^5.0.10"
},
"devDependencies": {
"@eslint/js": "^9.27.0",
"@eslint/js": "^10.0.1",
"@types/react": "^18.3.12",
"@types/react-dom": "^18.3.1",
"@typescript-eslint/eslint-plugin": "^7.2.0",
Expand All @@ -59,7 +59,7 @@
"eslint-plugin-react-hooks": "^5.2.0",
"eslint-plugin-react-refresh": "^0.4.11",
"globals": "^16.2.0",
"prettier": "^3.7.4",
"prettier": "^3.8.1",
"sass": "^1.89.2",
"terser": "^5.36.0",
"typescript": "^5.6.3",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ const internalTransactionSchema = z.object({
receiver: z.string().nullable(),
escrow: z.string().nullable(),
token: z.string().nullable(),
tokenSymbol: z.string().nullable().optional(),
});

const transactionDetailsSchema = z.object({
Expand All @@ -18,6 +19,7 @@ const transactionDetailsSchema = z.object({
receiver: z.string().nullable(),
block: z.number(),
value: z.string(),
tokenSymbol: z.string().nullable().optional(),
internalTransactions: z.array(internalTransactionSchema),
});

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -114,6 +114,7 @@ const TransactionsTableBody: FC<Props> = ({ data, isLoading, error }) => {
<TransactionsTableCellValue
value={elem.value}
method={elem.method}
tokenSymbol={elem.tokenSymbol}
/>
</TableCell>
</TableRow>
Expand Down Expand Up @@ -150,6 +151,7 @@ const TransactionsTableBody: FC<Props> = ({ data, isLoading, error }) => {
<TransactionsTableCellValue
value={internalTx.value}
method={internalTx.method}
tokenSymbol={internalTx.tokenSymbol}
/>
</TableCell>
</TableRow>
Expand Down
Loading
Loading