Skip to content

Commit 2e988b8

Browse files
portuu3adrian-oleskiewiczBobroniumzhiltsov-maxflopez7
authored
Release (#2876)
* [Human App] feat: implement loading state on resign btn for a specific job (#2800) * [Exchange Oracle] Add `iou_threshold` for polygon tasks and enable single shape mode (#2832) * [Exchange Oracle] Add PolygonTaskBuilder * [Exchange Oracle] Enable single shape mode for polygons * [Exchange Oracle] Move iou_threshold to cvat config * [Exchange Oracle] Add CVAT_QUALITY_RETRIEVAL_TIMEOUT to .env.template * Fix the env variable name Co-authored-by: Maxim Zhiltsov <[email protected]> --------- Co-authored-by: Maxim Zhiltsov <[email protected]> * Remove unused fields from job details (#2836) * [Human App] feat: adjust status chip colors on my jobs table (#2734) * chore(deps): bump actions/dependency-review-action from 4.4.0 to 4.5.0 (#2837) Bumps [actions/dependency-review-action](https://github.com/actions/dependency-review-action) from 4.4.0 to 4.5.0. - [Release notes](https://github.com/actions/dependency-review-action/releases) - [Commits](actions/dependency-review-action@v4.4.0...v4.5.0) --- updated-dependencies: - dependency-name: actions/dependency-review-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps-dev): bump xdeployer from 3.0.0 to 3.1.6 (#2838) Bumps [xdeployer](https://github.com/pcaversaccio/xdeployer) from 3.0.0 to 3.1.6. - [Release notes](https://github.com/pcaversaccio/xdeployer/releases) - [Commits](pcaversaccio/xdeployer@v3.0.0...v3.1.6) --- updated-dependencies: - dependency-name: xdeployer dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): bump stripe from 17.3.1 to 17.4.0 (#2839) Bumps [stripe](https://github.com/stripe/stripe-node) from 17.3.1 to 17.4.0. - [Release notes](https://github.com/stripe/stripe-node/releases) - [Changelog](https://github.com/stripe/stripe-node/blob/master/CHANGELOG.md) - [Commits](stripe/stripe-node@v17.3.1...v17.4.0) --- updated-dependencies: - dependency-name: stripe dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): bump react-hook-form from 7.53.1 to 7.53.2 (#2840) Bumps [react-hook-form](https://github.com/react-hook-form/react-hook-form) from 7.53.1 to 7.53.2. - [Release notes](https://github.com/react-hook-form/react-hook-form/releases) - [Changelog](https://github.com/react-hook-form/react-hook-form/blob/master/CHANGELOG.md) - [Commits](react-hook-form/react-hook-form@v7.53.1...v7.53.2) --- updated-dependencies: - dependency-name: react-hook-form dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * [Human App] fix: refresh token race condition (#2824) * [Human App] fix: metamask error from walletconnect (#2794) * [Human App] fix: invalid imports of auth schema (#2842) * [Human App] feat: ui-configuration endpoint (#2841) * feat: add ui configuration module * refactor: get rid of chain ids in oracles response * [Human App] Implemented oracle filter (#2697) * Implemented oracle filter * Reverted changes in rep oracle service * Resolved comments * Improved oracle discrovery service * Updated comment * Convert all chainIds values to type ChainId (#2765) * Updated method name * Fixed lint * Removed console.log * implemented unit test for processOracleDiscovery * Updated function name --------- Co-authored-by: portuu3 <[email protected]> * [Dashboard] Available networks endpoint (#2779) * Updated configs * Implemented available networks feature * Updated env example * Changed DEFAULT_NETWORK_USAGE_FILTER_MONTHS * Lint fixed * Added new constants * Added check to not cache data from subgraph for disabled networks * Migrate to network config service * Removed unused module * [Human App] fix: ui configuration response dto (#2846) * fix start:prod script (#2849) * [Human App] fix: remove token clearing on welcome page render (#2844) * [CVAT] Allow manifest changes in recording oracle (#2850) * Allow manifest changes in recording oracle * Fix linter * Fix test * Remove .env from test dockerfile * Ignore nonexistent .env * [Dashboard] fix: properly filter dashboard stats values (#2847) * Integrate Dashboard Metrics (#2853) * [CVAT] Fix moving projects to validation (#2852) * Fix a possible deadlock in create_escrow_validations * Improve log message * Don't expect projects in validation status in completed escrows * Use limit from config * USe a separate env var * Polish some code * Mark escrow validation completed after RO rejection webhook * Fix potential deadlock on escrow validation inserts * Satisfy linter * Remove backward compatibility for env var * Update tests, skip ro validation webhooks if no active validations * Add db type check * [Job Launcher] Implemented image polygons job type (#2845) * Implemented image polygons job type * Removed console.log * feat: add image_polygons to human-app and repo (#2854) * feat: add image_polygons to human-app * feat: add image_polygons to ro * [Job Launcher] Billing system (#2485) * Abuse system integration in Job Launcher server * Add job launcher server migrations * Create new component to setup card details * Merge branch 'develop' into feat/job-launcher-server/abuse * Create endpoints for the new billing flow: - Remove Old PaymentInfo Table and Store CustomerId in User Table - Update Endpoint to Create Customer and Add Payment Method - Create Endpoint to List Payment Methods - Create Endpoint to Remove a Payment Method - Create Endpoint to Retrieve User Billing Details - Create Endpoint to Edit Billing Details - Create Endpoint to Change Default Payment Method * Billing system implementation: - Modal to add card - Modal to delete card - Set as default button - Modal to select card - Edited fiat forms to use new billing system - Modal for billing details * Billing system in Job launcher client * Added unit tests for new methods * Comment abuse code and solve comments * Restore rate.service.ts change * remove lint error * [CVAT] Refactor and fix honeypot rerolls (#2860) * Refactor and fix honeypot rerolls * Fix and satisfy linter * Add test * Fix and refactor tests * [render preview] Subgraph and contract upgrades (#2576) * [Subgraph] Removed reputation from leader entity (#2450) * Removed reputation from leader entity * Merge branch 'subgraph-upgrades' into feature/sdk/remove-reputation-from-leader-entity --------- Co-authored-by: eugenvoronov <[email protected]> * [Subgraph][SDK] Add registration data to leaders entity (#2451) * Add registration data to leaders entity * Add registration info to getReputationNetworkOperators --------- Co-authored-by: Francisco López <[email protected]> * [SDK] Added reputation networks (#2429) * Added reputation networks * Removed reputation network * Handled null value * Updated unit test --------- Co-authored-by: portuu3 <[email protected]> * [Human App] Add registration info to oracles discovery response (#2452) * Add registration data to leaders entity * Add registration info to getReputationNetworkOperators * Add wether registration is required to oracles discovery response * Implemented reputation networks using SDK (#2458) * [Subgraph] Remove eth_calls (#2397) * Add events for data being read with eth_calls in subgraph * Create new events to allow compatibility with old events * Remove setupEventCount and rename SetupEvent to PendingEvent in Subgraph * feat: add events and cancel method for erc20 token support (#2408) * feat: add events and cancel method for erc20 token support * fix: contract changes * feat: sdk update * feat: update sdk doc * update subgraph * update doc * update doc * revert doc summary delete * remove create_and_setup_escrow function * remove abort function * fix cvat test * fix cvat test * fix cvat e2e * apply optimization * remove Payout event * fix docs sdk files path * regenerate doc * [HUMAN App client] Add registration step (#2518) * Add logic to register users in oracles * Fix failing tests --------- Co-authored-by: portuu3 <[email protected]> * [Subgraph][SDK] Refactor transactions (#2572) * Refactor transactions in subgraph * Update SDK * Add compatibility with new transactions in dashboard server * Add test for withdraw event * Fix job launcher tests * Solve errors on building human app frontend * contract and subgraph deployment for sepolia * replace subgraph deployment id * subgraph transactions refactor * refactor transactions indexing * Update subgraph tests to new transactions * Revert "[HUMAN App client] Add registration step (#2517)" This reverts commit 26ebc9b. * Revert "[Human App] Add registration info to oracles discovery response (#2452)" This reverts commit 712232a. * Revert "[Subgraph][SDK] Add registration data to leaders entity (#2451)" This reverts commit cc79357. * fix tests and lint errors * add missing property to subgraph schema * [Dashboard] Hyperlink role to oracle website (#2676) * Hyperlink role to oracle website * Created website field in Leader data in Subgraph and used it for hiperlink in dashboard * [CORE][SDK] Remove allocation from Staking contract (#2651) * Remove allocation from Staking contract and update SDK * Updated subgraph tests * Added withdrawFees to staking events * enable staking events as main trx * Update SDKs with the new transaction format * Update Makefile * Update docker-compose.yml * Remove event tests for the events that have been removed * Contracts upgrade * Contracts upgrade * Refactor Job Launcher to remove allocation * Improve Staking and Escrow contracts * Fix failing tests in python SDK --------- Co-authored-by: portuu3 <[email protected]> * Update payout.service.ts * fix migration after enums conversion to lower case * deploy contracts and subgraph on sepolia * Update staking contract to UUPS upgradeable * add change staking address and minimum stake to escrow factory * Remove upgradeable from Staking contract and update openzeppelin version to others contracts * Fix failing tests * Improve methods usage in EscrowFactory contract * update deployment scripts and deploy new staking contract * undo breaking change @openzeppelin/contracts-upgradeable upgrade and redeploy sepolia contracts * update contracts deployment cd and deploy new sepolia subgraph * Undo openzeppelin contract-upgradeable package update * trigger preview * add description * add usdc support to sepolia * remove private key and update doc * deploy new contracts to bsc testnet * deploy amoy * fix faucet test * fix lint issues --------- Co-authored-by: eugenvoronov <[email protected]> Co-authored-by: Francisco López <[email protected]> Co-authored-by: eugenvoronov <[email protected]> Co-authored-by: Francisco López <[email protected]> Co-authored-by: Eric Lee <[email protected]> Co-authored-by: Eric Lee <[email protected]> * [Human App] fix: adjust network names and filters (#2856) * [Human App] fix: base url for refreshToken fn (#2864) * [Human App] fix: remove status filter for available jobs on mobile (#2843) * [Human App] fix: type assertion in web3 provider hook (#2865) * [Fortune Exchange Oracle] Implemented rewardToken (#2869) * Implemented rewardToken * Updated create assignment method * Removed token * Removed lower case * [Subgraph] Events indexing issue (#2870) * fix events indexing issue and redeploy contracts and subgraph * fix core tests * [Dashboard] feat: add close button for menu drawer (#2866) * fix: change yarn workspaces pattern (#2858) * chore(deps): bump pg from 8.12.0 to 8.13.1 (#2873) Bumps [pg](https://github.com/brianc/node-postgres/tree/HEAD/packages/pg) from 8.12.0 to 8.13.1. - [Changelog](https://github.com/brianc/node-postgres/blob/master/CHANGELOG.md) - [Commits](https://github.com/brianc/node-postgres/commits/[email protected]/packages/pg) --- updated-dependencies: - dependency-name: pg dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): bump secp256k1 from 4.0.4 to 5.0.1 (#2872) Bumps [secp256k1](https://github.com/cryptocoinjs/secp256k1-node) from 4.0.4 to 5.0.1. - [Release notes](https://github.com/cryptocoinjs/secp256k1-node/releases) - [Commits](cryptocoinjs/secp256k1-node@v4.0.4...v5.0.1) --- updated-dependencies: - dependency-name: secp256k1 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): bump @stripe/react-stripe-js from 2.9.0 to 3.0.0 (#2871) Bumps [@stripe/react-stripe-js](https://github.com/stripe/react-stripe-js) from 2.9.0 to 3.0.0. - [Release notes](https://github.com/stripe/react-stripe-js/releases) - [Changelog](https://github.com/stripe/react-stripe-js/blob/master/CHANGELOG.md) - [Commits](stripe/react-stripe-js@v2.9.0...v3.0.0) --- updated-dependencies: - dependency-name: "@stripe/react-stripe-js" dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps-dev): bump @types/express from 4.17.21 to 5.0.0 (#2809) Bumps [@types/express](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/express) from 4.17.21 to 5.0.0. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/express) --- updated-dependencies: - dependency-name: "@types/express" dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Revert "chore(deps-dev): bump @types/express from 4.17.21 to 5.0.0 (#2809)" (#2878) This reverts commit 28db5f8. * [Dashboard Server] Fixed roles values (#2881) * Fixed roles values * Removed console log * [Dashboard] fix: address search component hover/active state fix (#2868) * [Dashboard] fix: double footer scroll (#2867) * [Dashboard] feat: use BE sort order by default (#2883) * [Dashboard] feat: update link colors for hover/visited states (#2880) * enable whitelist and fix some UI issues for billing system (#2884) * [Reputation Oracle] Refactoring Cron Module (#2834) * [Dashboard] Dashboard fixes after subgraph and contract upgrades (#2879) * add a flag to disable hcaptcha stats in dashboard server * add log * update if * add logs and rename * fix networks config * dashboard fixes * nullable values * filter leaders without stake * dashboard leaderboard fixes * fix if condition * fix PR comments * fix get transactions in sdks * use bigint for stake comparison * resolve PR comments * solve reduce error * Fix slice to get 4 elements Co-authored-by: Dmitry Nechay <[email protected]> --------- Co-authored-by: Dmitry Nechay <[email protected]> * [Dashboard] feat: remove address search from header (#2885) * Show network name in job details (#2897) * Allow direct call to complete after bulkPayOut (#2896) * Allow direct call to complete after bulkPayOut * redeploy contract on testnets --------- Co-authored-by: portuu3 <[email protected]> * chore(deps-dev): bump ts-jest from 29.2.2 to 29.2.5 (#2889) Bumps [ts-jest](https://github.com/kulshekhar/ts-jest) from 29.2.2 to 29.2.5. - [Release notes](https://github.com/kulshekhar/ts-jest/releases) - [Changelog](https://github.com/kulshekhar/ts-jest/blob/main/CHANGELOG.md) - [Commits](kulshekhar/ts-jest@v29.2.2...v29.2.5) --- updated-dependencies: - dependency-name: ts-jest dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps-dev): bump typedoc from 0.26.11 to 0.27.4 (#2890) Bumps [typedoc](https://github.com/TypeStrong/TypeDoc) from 0.26.11 to 0.27.4. - [Release notes](https://github.com/TypeStrong/TypeDoc/releases) - [Changelog](https://github.com/TypeStrong/typedoc/blob/master/CHANGELOG.md) - [Commits](TypeStrong/typedoc@v0.26.11...v0.27.4) --- updated-dependencies: - dependency-name: typedoc dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps-dev): bump eslint-plugin-react-hooks from 4.6.2 to 5.1.0 (#2891) Bumps [eslint-plugin-react-hooks](https://github.com/facebook/react/tree/HEAD/packages/eslint-plugin-react-hooks) from 4.6.2 to 5.1.0. - [Release notes](https://github.com/facebook/react/releases) - [Changelog](https://github.com/facebook/react/blob/main/CHANGELOG.md) - [Commits](https://github.com/facebook/react/commits/HEAD/packages/eslint-plugin-react-hooks) --- updated-dependencies: - dependency-name: eslint-plugin-react-hooks dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps-dev): bump eslint-import-resolver-typescript (#2892) Bumps [eslint-import-resolver-typescript](https://github.com/import-js/eslint-import-resolver-typescript) from 3.6.3 to 3.7.0. - [Release notes](https://github.com/import-js/eslint-import-resolver-typescript/releases) - [Changelog](https://github.com/import-js/eslint-import-resolver-typescript/blob/master/CHANGELOG.md) - [Commits](import-js/eslint-import-resolver-typescript@v3.6.3...v3.7.0) --- updated-dependencies: - dependency-name: eslint-import-resolver-typescript dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps-dev): bump @types/react-test-renderer from 18.3.0 to 19.0.0 (#2893) Bumps [@types/react-test-renderer](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react-test-renderer) from 18.3.0 to 19.0.0. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react-test-renderer) --- updated-dependencies: - dependency-name: "@types/react-test-renderer" dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Add debug.py for ease of local development (#2763) * Add debug.py for ease of local development * [Exchange Oracle] Make `generate_jwt_token` reusable in local development scripts * [Exchange Oracle] Add local development keys to .gitignore * [Exchange Oracle] Fix lenient_validate_oracle_webhook_signature patch * [Exchange Oracle] Patch request signing function in debug.py This simplifies communication between oracles when running locally. * [Exchange Oracle] Add bucket for manifests * [Exchange Oracle] Allow plain json as token for local development * Add start_debug.sh and mention it in readme * Fix linting problems * Use url for storage from the config * [Exchange Oracle] Support host substitution for CVAT storage config * Add logging whenever patches happen for transparency * Update ENV variables names * Add circular progress when loading card data and refactor billing details modal (#2901) * fix: hcaptcha stats request (#2900) * [Human App] feat: filter out oracle jobs as per enabled chain id (#2886) * [Dashboard] feat: wrap white space for network column (#2887) * [Human App] feat: set max width for solve button (#2888) * Upgrade uvicorn dep (#2910) * Fix some old configuration for core scripts (#2911) * [CVAT Recording Oracle] Fix blockchain-node healthcheck (#2914) * Adjust the number of transactions that must take place on the blockchain node to pass the healthcheck * Fix oracle addresses * [CVAT] Fix parallel escrow validations (#2915) * Use simple locks in escrow validations * Improve parameter description * Fix error handling logic * Fix linter error * [Dashboard] Transactions table (#2902) * Update transaction table format to the new transaction schema * Refactor colors * Negative value for outgoing transactions * Added links to addresses and display receiver instead of to when available * change dist filename to snake case (#2917) * chore(deps): bump @mui/icons-material from 6.1.9 to 6.2.0 (#2918) Bumps [@mui/icons-material](https://github.com/mui/material-ui/tree/HEAD/packages/mui-icons-material) from 6.1.9 to 6.2.0. - [Release notes](https://github.com/mui/material-ui/releases) - [Changelog](https://github.com/mui/material-ui/blob/master/CHANGELOG.md) - [Commits](https://github.com/mui/material-ui/commits/v6.2.0/packages/mui-icons-material) --- updated-dependencies: - dependency-name: "@mui/icons-material" dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps-dev): bump typedoc from 0.27.4 to 0.27.5 (#2919) Bumps [typedoc](https://github.com/TypeStrong/TypeDoc) from 0.27.4 to 0.27.5. - [Release notes](https://github.com/TypeStrong/TypeDoc/releases) - [Changelog](https://github.com/TypeStrong/typedoc/blob/master/CHANGELOG.md) - [Commits](TypeStrong/typedoc@v0.27.4...v0.27.5) --- updated-dependencies: - dependency-name: typedoc dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): bump @reduxjs/toolkit from 2.3.0 to 2.5.0 (#2921) Bumps [@reduxjs/toolkit](https://github.com/reduxjs/redux-toolkit) from 2.3.0 to 2.5.0. - [Release notes](https://github.com/reduxjs/redux-toolkit/releases) - [Commits](reduxjs/redux-toolkit@v2.3.0...v2.5.0) --- updated-dependencies: - dependency-name: "@reduxjs/toolkit" dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Use networks avialable TTL in seconds (#2924) * chore(deps): bump @mui/x-data-grid from 7.22.3 to 7.23.2 (#2920) Bumps [@mui/x-data-grid](https://github.com/mui/mui-x/tree/HEAD/packages/x-data-grid) from 7.22.3 to 7.23.2. - [Release notes](https://github.com/mui/mui-x/releases) - [Changelog](https://github.com/mui/mui-x/blob/master/CHANGELOG.md) - [Commits](https://github.com/mui/mui-x/commits/v7.23.2/packages/x-data-grid) --- updated-dependencies: - dependency-name: "@mui/x-data-grid" dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps-dev): bump prettier from 2.8.8 to 3.4.2 (#2922) Bumps [prettier](https://github.com/prettier/prettier) from 2.8.8 to 3.4.2. - [Release notes](https://github.com/prettier/prettier/releases) - [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md) - [Commits](prettier/prettier@2.8.8...3.4.2) --- updated-dependencies: - dependency-name: prettier dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * fix to use CACHE_TTL_JOB_TYPES in seconds (#2929) * [Exchange Oracle] Refactor JwtHttpStrategy (#2930) * Refactor JwtHttpStrategy to query RPC instead of Subgraph to reduce the amount of request sent * Move getFileUrlAndVerifyHash out of the constructor * Bump human sdk to 3.0.8b0 (#2925) * fix: unhandled errors from updateAssigmentsCache (#2932) * [Dashboard] feat: remove tabs implementation from charts page (#2926) * [Job Launcher] fix: get rid of job types mapping in job creation (#2907) * [Dashboard] Implemented Network module with get operating networks logic (#2874) * [Dashboard] feat: added EVM address validation to search (#2908) * Added role to reputation endpoint (#2935) * change balance label from balance of to balance (#2939) * [Reputation Oracle] refactoring: exception handling for `kyc` module (#2937) * refactoring: exception handling for `kyc` module * fix: removed unused value from `KycErrorMessage`; `userId` in `KycError` is not optional now; * [Job Launcher] Disable fortune jobs creation in mainnets (#2942) * Disable fortune on mainnets * Use Web3Env enum * [Job Launcher] Show most recent jobs first (#2943) * Show most recent jobs first * Remove sortable fields in jobs table and specify filter parameter in the request * Disable billing system (#2941) * Disable billing system * Disable whitelist in server * Disable whitelist tests untill it's enabled again * Disable endpoints and reenable transactions page * [Reputation Oracle] refactoring: error handling for `qualification` module (#2944) * refactoring: error handling for `qualification` module; changed API schema for `/assign` and `/unassign` * refactor: `NO_WORKERS_FOUND` now causes 422 HTTP error --------- Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: adrian-oleskiewicz <[email protected]> Co-authored-by: Arseny Boykov <[email protected]> Co-authored-by: Maxim Zhiltsov <[email protected]> Co-authored-by: Francisco López <[email protected]> Co-authored-by: KacperKoza343 <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: mpblocky <[email protected]> Co-authored-by: Dmitry Nechay <[email protected]> Co-authored-by: eugenvoronov <[email protected]> Co-authored-by: eugenvoronov <[email protected]> Co-authored-by: Francisco López <[email protected]> Co-authored-by: Eric Lee <[email protected]> Co-authored-by: Eric Lee <[email protected]> Co-authored-by: Dzeranov <[email protected]>
1 parent 1aa5975 commit 2e988b8

File tree

629 files changed

+31688
-18822
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

629 files changed

+31688
-18822
lines changed

.github/workflows/cd-deploy-contracts.yaml

Lines changed: 2 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,6 @@ on:
99
escrowFactory:
1010
description: 'deploy escrow factory'
1111
required: true
12-
staking:
13-
description: 'deploy staking'
14-
required: true
15-
rewardPool:
16-
description: 'deploy reward pool'
17-
required: true
1812

1913
jobs:
2014
deploy-contracts:
@@ -51,63 +45,43 @@ jobs:
5145
run: |
5246
case ${{ github.event.inputs.network }} in
5347
"sepolia")
54-
echo "escrow_factory=0xD6D347ba6987519B4e42EcED43dF98eFf5465a23" >> $GITHUB_OUTPUT
55-
echo "staking=0x2B9C5EC6220BA8Ad08CB51A60FFdbC6a6235B203" >> $GITHUB_OUTPUT
56-
echo "reward_pool=0xAFf5a986A530ff839d49325A5dF69F96627E8D29" >> $GITHUB_OUTPUT
48+
echo "escrow_factory=0x5987A5558d961ee674efe4A8c8eB7B1b5495D3bf" >> $GITHUB_OUTPUT
5749
echo "private_key=TESTNET_PRIVATE_KEY" >> $GITHUB_OUTPUT
5850
;;
5951
"polygon")
6052
echo "escrow_factory=0xBDBfD2cC708199C5640C6ECdf3B0F4A4C67AdfcB" >> $GITHUB_OUTPUT
61-
echo "staking=0xcbAd56bE3f504E98bd70875823d3CC0242B7bB29" >> $GITHUB_OUTPUT
62-
echo "reward_pool=0x1371057BAec59944B924A7963F2EeCF43ff94CE4" >> $GITHUB_OUTPUT
6353
echo "private_key=MAINNET_PRIVATE_KEY" >> $GITHUB_OUTPUT
6454
;;
6555
"polygonAmoy")
6656
echo "escrow_factory=0xAFf5a986A530ff839d49325A5dF69F96627E8D29" >> $GITHUB_OUTPUT
67-
echo "staking=0xCc0AF0635aa19fE799B6aFDBe28fcFAeA7f00a60" >> $GITHUB_OUTPUT
68-
echo "reward_pool=0xd866bCEFf6D0F77E1c3EAE28230AE6C79b03fDa7" >> $GITHUB_OUTPUT
6957
echo "private_key=TESTNET_PRIVATE_KEY" >> $GITHUB_OUTPUT
7058
;;
7159
"bsc")
7260
echo "escrow_factory=0x92FD968AcBd521c232f5fB8c33b342923cC72714" >> $GITHUB_OUTPUT
73-
echo "staking=0xdFbB79dC35a3A53741be54a2C9b587d6BafAbd1C" >> $GITHUB_OUTPUT
74-
echo "reward_pool=0xf376443BCc6d4d4D63eeC086bc4A9E4a83878e0e" >> $GITHUB_OUTPUT
7561
echo "private_key=MAINNET_PRIVATE_KEY" >> $GITHUB_OUTPUT
7662
;;
7763
"bscTestnet")
7864
echo "escrow_factory=0x2bfA592DBDaF434DDcbb893B1916120d181DAD18" >> $GITHUB_OUTPUT
79-
echo "staking=0x5517fE916Fe9F8dB15B0DDc76ebDf0BdDCd4ed18" >> $GITHUB_OUTPUT
80-
echo "reward_pool=0xB0A0500103eCEc431b73F6BAd923F0a2774E6e29" >> $GITHUB_OUTPUT
8165
echo "private_key=TESTNET_PRIVATE_KEY" >> $GITHUB_OUTPUT
8266
;;
8367
"moonbeam")
8468
echo "escrow_factory=0xD9c75a1Aa4237BB72a41E5E26bd8384f10c1f55a" >> $GITHUB_OUTPUT
85-
echo "staking=0x05398211bA2046E296fBc9a9D3EB49e3F15C3123" >> $GITHUB_OUTPUT
86-
echo "reward_pool=0x4A5963Dd6792692e9147EdC7659936b96251917a" >> $GITHUB_OUTPUT
8769
echo "private_key=MAINNET_PRIVATE_KEY" >> $GITHUB_OUTPUT
8870
;;
8971
"moonbaseAlpha")
9072
echo "escrow_factory=0x5e622FF522D81aa426f082bDD95210BC25fCA7Ed" >> $GITHUB_OUTPUT
91-
echo "staking=0xBFC7009F3371F93F3B54DdC8caCd02914a37495c" >> $GITHUB_OUTPUT
92-
echo "reward_pool=0xf46B45Df3d956369726d8Bd93Ba33963Ab692920" >> $GITHUB_OUTPUT
9373
echo "private_key=TESTNET_PRIVATE_KEY" >> $GITHUB_OUTPUT
9474
;;
9575
"mainnet")
9676
echo "escrow_factory=0xD9c75a1Aa4237BB72a41E5E26bd8384f10c1f55a" >> $GITHUB_OUTPUT
97-
echo "staking=0x05398211bA2046E296fBc9a9D3EB49e3F15C3123" >> $GITHUB_OUTPUT
98-
echo "reward_pool=0x4A5963Dd6792692e9147EdC7659936b96251917a" >> $GITHUB_OUTPUT
9977
echo "private_key=MAINNET_PRIVATE_KEY" >> $GITHUB_OUTPUT
10078
;;
10179
"avalanche")
10280
echo "escrow_factory=0xD9c75a1Aa4237BB72a41E5E26bd8384f10c1f55a" >> $GITHUB_OUTPUT
103-
echo "staking=0x05398211bA2046E296fBc9a9D3EB49e3F15C3123" >> $GITHUB_OUTPUT
104-
echo "reward_pool=0x4A5963Dd6792692e9147EdC7659936b96251917a" >> $GITHUB_OUTPUT
10581
echo "private_key=MAINNET_PRIVATE_KEY" >> $GITHUB_OUTPUT
10682
;;
10783
"avalancheFujiTestnet")
10884
echo "escrow_factory=0x56C2ba540726ED4f46E7a134b6b9Ee9C867FcF92" >> $GITHUB_OUTPUT
109-
echo "staking=0x9890473B0b93E24d6D1a8Dfb739D577C6f25FFd3" >> $GITHUB_OUTPUT
110-
echo "reward_pool=0x5517fE916Fe9F8dB15B0DDc76ebDf0BdDCd4ed18" >> $GITHUB_OUTPUT
11185
echo "private_key=TESTNET_PRIVATE_KEY" >> $GITHUB_OUTPUT
11286
;;
11387
*)
@@ -116,30 +90,18 @@ jobs:
11690
;;
11791
esac
11892
- name: Upgrade Proxies
119-
if: github.event.inputs.escrowFactory == 'true' || github.event.inputs.staking == 'true' || github.event.inputs.rewardPool== 'true'
93+
if: github.event.inputs.escrowFactory == 'true'
12094
run: yarn upgrade:proxy --network ${{ github.event.inputs.network }}
12195
working-directory: ./packages/core
12296
env:
12397
PRIVATE_KEY: ${{ secrets[steps.networks.outputs.private_key] }}
12498
DEPLOY_ESCROW_FACTORY: ${{ github.event.inputs.escrowFactory }}
125-
DEPLOY_STAKING: ${{ github.event.inputs.staking }}
126-
DEPLOY_REWARD_POOL: ${{ github.event.inputs.rewardPool }}
12799
ESCROW_FACTORY_ADDRESS: ${{ steps.networks.outputs.escrow_factory }}
128-
STAKING_ADDRESS: ${{ steps.networks.outputs.staking }}
129-
REWARD_POOL_ADDRESS: ${{ steps.networks.outputs.reward_pool }}
130100

131101
- name: Verify Escrow Factory Proxy
132102
if: always() && github.event.inputs.escrowFactory == 'true'
133103
run: npx hardhat verify --network ${{ github.event.inputs.network }} ${{ steps.networks.outputs.escrow_factory }}
134104
working-directory: ./packages/core
135-
- name: Verify Staking Proxy
136-
if: always() && github.event.inputs.staking == 'true'
137-
run: npx hardhat verify --network ${{ github.event.inputs.network }} ${{ steps.networks.outputs.staking }}
138-
working-directory: ./packages/core
139-
- name: Verify Reward Pool Proxy
140-
if: always() && github.event.inputs.rewardPool== 'true'
141-
run: npx hardhat verify --network ${{ github.event.inputs.network }} ${{ steps.networks.outputs.reward_pool }}
142-
working-directory: ./packages/core
143105
#Commit changes to develop
144106
- name: Check for Changes
145107
if: always()

.github/workflows/ci-dependency-review.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,4 @@ jobs:
1111
- name: "Checkout Repository"
1212
uses: actions/[email protected]
1313
- name: "Dependency Review"
14-
uses: actions/dependency-review-action@v4.4.0
14+
uses: actions/dependency-review-action@v4.5.0

docs/sdk/python/human_protocol_sdk.encryption.encryption.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ Decrypts a message using the private key.
6060
* **message** (`str`) – Armored message to decrypt
6161
* **public_key** (`Optional`[`str`]) – Armored public key used for signature verification. Defaults to None.
6262
* **Return type:**
63-
`str`
63+
`bytes`
6464
* **Returns:**
6565
Decrypted message
6666
* **Example:**
@@ -94,7 +94,7 @@ Decrypts a message using the private key.
9494
Signs a message using the private key.
9595

9696
* **Parameters:**
97-
**message** (`str`) – Message to sign
97+
**message** (`Union`[`str`, `bytes`]) – Message to sign
9898
* **Return type:**
9999
`str`
100100
* **Returns:**
@@ -130,7 +130,7 @@ Signs a message using the private key.
130130
Signs and encrypts a message using the private key and recipient’s public keys.
131131

132132
* **Parameters:**
133-
* **message** (`str`) – Message to sign and encrypt
133+
* **message** (`Union`[`str`, `bytes`]) – Message to sign and encrypt
134134
* **public_keys** (`List`[`str`]) – List of armored public keys of the recipients
135135
* **Return type:**
136136
`str`

docs/sdk/python/human_protocol_sdk.escrow.escrow_client.md

Lines changed: 61 additions & 101 deletions
Original file line numberDiff line numberDiff line change
@@ -73,45 +73,6 @@ Initializes a Escrow instance.
7373
* **Parameters:**
7474
**web3** (`Web3`) – The Web3 object
7575

76-
#### abort(escrow_address, tx_options=None)
77-
78-
Cancels the specified escrow,
79-
sends the balance to the canceler and selfdestructs the escrow contract.
80-
81-
* **Parameters:**
82-
* **escrow_address** (`str`) – Address of the escrow to abort
83-
* **tx_options** (`Optional`[`TxParams`]) – (Optional) Additional transaction parameters
84-
* **Return type:**
85-
`None`
86-
* **Returns:**
87-
None
88-
* **Raises:**
89-
[**EscrowClientError**](#human_protocol_sdk.escrow.escrow_client.EscrowClientError) – If an error occurs while checking the parameters
90-
* **Example:**
91-
```python
92-
from eth_typing import URI
93-
from web3 import Web3
94-
from web3.middleware import construct_sign_and_send_raw_middleware
95-
from web3.providers.auto import load_provider_from_uri
96-
97-
from human_protocol_sdk.escrow import EscrowClient
98-
99-
def get_w3_with_priv_key(priv_key: str):
100-
w3 = Web3(load_provider_from_uri(URI("http://localhost:8545")))
101-
gas_payer = w3.eth.account.from_key(priv_key)
102-
w3.eth.default_account = gas_payer.address
103-
w3.middleware_onion.add(
104-
construct_sign_and_send_raw_middleware(gas_payer),
105-
"construct_sign_and_send_raw_middleware",
106-
)
107-
return (w3, gas_payer)
108-
109-
(w3, gas_payer) = get_w3_with_priv_key('YOUR_PRIVATE_KEY')
110-
escrow_client = EscrowClient(w3)
111-
112-
escrow_client.abort("0x62dD51230A30401C455c8398d06F85e4EaB6309f")
113-
```
114-
11576
#### add_trusted_handlers(escrow_address, handlers, tx_options=None)
11677

11778
Adds an array of addresses to the trusted handlers list.
@@ -158,7 +119,7 @@ Adds an array of addresses to the trusted handlers list.
158119
)
159120
```
160121

161-
#### bulk_payout(escrow_address, recipients, amounts, final_results_url, final_results_hash, txId, tx_options=None)
122+
#### bulk_payout(escrow_address, recipients, amounts, final_results_url, final_results_hash, txId, force_complete=False, tx_options=None)
162123

163124
Pays out the amounts specified to the workers and sets the URL of the final results file.
164125

@@ -169,6 +130,7 @@ Pays out the amounts specified to the workers and sets the URL of the final resu
169130
* **final_results_url** (`str`) – Final results file url
170131
* **final_results_hash** (`str`) – Final results file hash
171132
* **txId** (`Decimal`) – Serial number of the bulks
133+
* **force_complete** (`Optional`[`bool`]) – (Optional) Indicates if remaining balance should be transferred to the escrow creator
172134
* **tx_options** (`Optional`[`TxParams`]) – (Optional) Additional transaction parameters
173135
* **Return type:**
174136
`None`
@@ -301,67 +263,6 @@ Sets the status of an escrow to completed.
301263
escrow_client.complete("0x62dD51230A30401C455c8398d06F85e4EaB6309f")
302264
```
303265

304-
#### create_and_setup_escrow(token_address, trusted_handlers, job_requester_id, escrow_config)
305-
306-
Creates and sets up an escrow.
307-
308-
* **Parameters:**
309-
* **token_address** (`str`) – Token to use for pay outs
310-
* **trusted_handlers** (`List`[`str`]) – Array of addresses that can perform actions on the contract
311-
* **job_requester_id** (`str`) – The id of the job requester
312-
* **escrow_config** ([`EscrowConfig`](#human_protocol_sdk.escrow.escrow_client.EscrowConfig)) – Object containing all the necessary information to setup an escrow
313-
* **Return type:**
314-
`str`
315-
* **Returns:**
316-
The address of the escrow created
317-
* **Raises:**
318-
[**EscrowClientError**](#human_protocol_sdk.escrow.escrow_client.EscrowClientError) – If an error occurs while checking the parameters
319-
* **Example:**
320-
```python
321-
from eth_typing import URI
322-
from web3 import Web3
323-
from web3.middleware import construct_sign_and_send_raw_middleware
324-
from web3.providers.auto import load_provider_from_uri
325-
326-
from human_protocol_sdk.escrow import EscrowClient
327-
328-
def get_w3_with_priv_key(priv_key: str):
329-
w3 = Web3(load_provider_from_uri(URI("http://localhost:8545")))
330-
gas_payer = w3.eth.account.from_key(priv_key)
331-
w3.eth.default_account = gas_payer.address
332-
w3.middleware_onion.add(
333-
construct_sign_and_send_raw_middleware(gas_payer),
334-
"construct_sign_and_send_raw_middleware",
335-
)
336-
return (w3, gas_payer)
337-
338-
(w3, gas_payer) = get_w3_with_priv_key('YOUR_PRIVATE_KEY')
339-
escrow_client = EscrowClient(w3)
340-
341-
token_address = '0x0376D26246Eb35FF4F9924cF13E6C05fd0bD7Fb4'
342-
trusted_handlers = [
343-
'0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266',
344-
'0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266'
345-
]
346-
job_requester_id = 'job-requester'
347-
escrow_config = EscrowConfig(
348-
"0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266",
349-
"0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266",
350-
"0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266",
351-
10,
352-
10,
353-
10,
354-
"htttp://localhost/manifest.json",
355-
"b5dad76bf6772c0f07fd5e048f6e75a5f86ee079",
356-
)
357-
escrow_address = escrow_client.create_and_setup_escrow(
358-
token_address,
359-
trusted_handlers,
360-
job_requester_id,
361-
escrow_config
362-
)
363-
```
364-
365266
#### create_escrow(token_address, trusted_handlers, job_requester_id, tx_options=None)
366267

367268
Creates an escrow contract that uses the token passed to pay oracle fees and reward workers.
@@ -882,6 +783,52 @@ Stores the results url.
882783
)
883784
```
884785

786+
#### withdraw(escrow_address, token_address, tx_options=None)
787+
788+
Withdraws additional tokens in the escrow to the canceler.
789+
790+
* **Parameters:**
791+
* **escrow_address** (`str`) – Address of the escrow to withdraw
792+
* **token_address** (`str`) – Address of the token to withdraw
793+
* **tx_options** (`Optional`[`TxParams`]) – (Optional) Additional transaction parameters
794+
* **Return type:**
795+
[`EscrowWithdraw`](#human_protocol_sdk.escrow.escrow_client.EscrowWithdraw)
796+
* **Returns:**
797+
EscrowWithdraw:
798+
An instance of the EscrowWithdraw class containing details of the withdrawal transaction,
799+
including the transaction hash and the token address and amount withdrawn.
800+
* **Raises:**
801+
* [**EscrowClientError**](#human_protocol_sdk.escrow.escrow_client.EscrowClientError) – If an error occurs while checking the parameters
802+
* [**EscrowClientError**](#human_protocol_sdk.escrow.escrow_client.EscrowClientError) – If the transfer event associated with the withdrawal
803+
is not found in the transaction logs
804+
* **Example:**
805+
```python
806+
from eth_typing import URI
807+
from web3 import Web3
808+
from web3.middleware import construct_sign_and_send_raw_middleware
809+
from web3.providers.auto import load_provider_from_uri
810+
811+
from human_protocol_sdk.escrow import EscrowClient
812+
813+
def get_w3_with_priv_key(priv_key: str):
814+
w3 = Web3(load_provider_from_uri(URI("http://localhost:8545")))
815+
gas_payer = w3.eth.account.from_key(priv_key)
816+
w3.eth.default_account = gas_payer.address
817+
w3.middleware_onion.add(
818+
construct_sign_and_send_raw_middleware(gas_payer),
819+
"construct_sign_and_send_raw_middleware",
820+
)
821+
return (w3, gas_payer)
822+
823+
(w3, gas_payer) = get_w3_with_priv_key('YOUR_PRIVATE_KEY')
824+
escrow_client = EscrowClient(w3)
825+
826+
escrow_cancel_data = escrow_client.withdraw(
827+
"0x62dD51230A30401C455c8398d06F85e4EaB6309f",
828+
"0x0376D26246Eb35FF4F9924cF13E6C05fd0bD7Fb4"
829+
)
830+
```
831+
885832
### *exception* human_protocol_sdk.escrow.escrow_client.EscrowClientError
886833

887834
Bases: `Exception`
@@ -905,3 +852,16 @@ Initializes a Escrow instance.
905852
* **reputation_oracle_fee** (`Decimal`) – Fee percentage of the Reputation Oracle
906853
* **manifest_url** (`str`) – Manifest file url
907854
* **hash** (`str`) – Manifest file hash
855+
856+
### *class* human_protocol_sdk.escrow.escrow_client.EscrowWithdraw(tx_hash, token_address, amount_withdrawn)
857+
858+
Bases: `object`
859+
860+
#### \_\_init_\_(tx_hash, token_address, amount_withdrawn)
861+
862+
Represents the result of an escrow cancellation transaction.
863+
864+
* **Parameters:**
865+
* **tx_hash** (`str`) – The hash of the transaction associated with the escrow withdrawal.
866+
* **token_address** (`str`) – The address of the token used for the withdrawal.
867+
* **amount_withdrawn** (`any`) – The amount withdrawn from the escrow.

docs/sdk/python/human_protocol_sdk.escrow.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,10 @@ obtain information from both the contracts and subgraph.
1212
* [`EscrowCancel.__init__()`](human_protocol_sdk.escrow.escrow_client.md#human_protocol_sdk.escrow.escrow_client.EscrowCancel.__init__)
1313
* [`EscrowClient`](human_protocol_sdk.escrow.escrow_client.md#human_protocol_sdk.escrow.escrow_client.EscrowClient)
1414
* [`EscrowClient.__init__()`](human_protocol_sdk.escrow.escrow_client.md#human_protocol_sdk.escrow.escrow_client.EscrowClient.__init__)
15-
* [`EscrowClient.abort()`](human_protocol_sdk.escrow.escrow_client.md#human_protocol_sdk.escrow.escrow_client.EscrowClient.abort)
1615
* [`EscrowClient.add_trusted_handlers()`](human_protocol_sdk.escrow.escrow_client.md#human_protocol_sdk.escrow.escrow_client.EscrowClient.add_trusted_handlers)
1716
* [`EscrowClient.bulk_payout()`](human_protocol_sdk.escrow.escrow_client.md#human_protocol_sdk.escrow.escrow_client.EscrowClient.bulk_payout)
1817
* [`EscrowClient.cancel()`](human_protocol_sdk.escrow.escrow_client.md#human_protocol_sdk.escrow.escrow_client.EscrowClient.cancel)
1918
* [`EscrowClient.complete()`](human_protocol_sdk.escrow.escrow_client.md#human_protocol_sdk.escrow.escrow_client.EscrowClient.complete)
20-
* [`EscrowClient.create_and_setup_escrow()`](human_protocol_sdk.escrow.escrow_client.md#human_protocol_sdk.escrow.escrow_client.EscrowClient.create_and_setup_escrow)
2119
* [`EscrowClient.create_escrow()`](human_protocol_sdk.escrow.escrow_client.md#human_protocol_sdk.escrow.escrow_client.EscrowClient.create_escrow)
2220
* [`EscrowClient.fund()`](human_protocol_sdk.escrow.escrow_client.md#human_protocol_sdk.escrow.escrow_client.EscrowClient.fund)
2321
* [`EscrowClient.get_balance()`](human_protocol_sdk.escrow.escrow_client.md#human_protocol_sdk.escrow.escrow_client.EscrowClient.get_balance)
@@ -34,9 +32,12 @@ obtain information from both the contracts and subgraph.
3432
* [`EscrowClient.get_token_address()`](human_protocol_sdk.escrow.escrow_client.md#human_protocol_sdk.escrow.escrow_client.EscrowClient.get_token_address)
3533
* [`EscrowClient.setup()`](human_protocol_sdk.escrow.escrow_client.md#human_protocol_sdk.escrow.escrow_client.EscrowClient.setup)
3634
* [`EscrowClient.store_results()`](human_protocol_sdk.escrow.escrow_client.md#human_protocol_sdk.escrow.escrow_client.EscrowClient.store_results)
35+
* [`EscrowClient.withdraw()`](human_protocol_sdk.escrow.escrow_client.md#human_protocol_sdk.escrow.escrow_client.EscrowClient.withdraw)
3736
* [`EscrowClientError`](human_protocol_sdk.escrow.escrow_client.md#human_protocol_sdk.escrow.escrow_client.EscrowClientError)
3837
* [`EscrowConfig`](human_protocol_sdk.escrow.escrow_client.md#human_protocol_sdk.escrow.escrow_client.EscrowConfig)
3938
* [`EscrowConfig.__init__()`](human_protocol_sdk.escrow.escrow_client.md#human_protocol_sdk.escrow.escrow_client.EscrowConfig.__init__)
39+
* [`EscrowWithdraw`](human_protocol_sdk.escrow.escrow_client.md#human_protocol_sdk.escrow.escrow_client.EscrowWithdraw)
40+
* [`EscrowWithdraw.__init__()`](human_protocol_sdk.escrow.escrow_client.md#human_protocol_sdk.escrow.escrow_client.EscrowWithdraw.__init__)
4041
* [human_protocol_sdk.escrow.escrow_utils module](human_protocol_sdk.escrow.escrow_utils.md)
4142
* [Code Example](human_protocol_sdk.escrow.escrow_utils.md#code-example)
4243
* [Module](human_protocol_sdk.escrow.escrow_utils.md#module)

0 commit comments

Comments
 (0)