diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
index 9726a8340..fd354c828 100644
--- a/.github/workflows/main.yml
+++ b/.github/workflows/main.yml
@@ -27,9 +27,9 @@ jobs:
- name: Install dependencies
run: npm ci
- name: Check code formatting
- run: npm run check-format
+ run: npm run format:check
- name: Check documentation is up-to-date
- run: npm run check-doc
+ run: npm run doc:check
- name: Build
run: npm run build
- name: Check storage layout
diff --git a/abis/contracts/facets/IexecEscrow.v8.json b/abis/contracts/abstract/IexecEscrow.json
similarity index 100%
rename from abis/contracts/facets/IexecEscrow.v8.json
rename to abis/contracts/abstract/IexecEscrow.json
diff --git a/abis/human-readable-abis/contracts/facets/IexecEscrow.v8.sol/IexecEscrow.json b/abis/human-readable-abis/contracts/abstract/IexecEscrow.sol/IexecEscrow.json
similarity index 100%
rename from abis/human-readable-abis/contracts/facets/IexecEscrow.v8.sol/IexecEscrow.json
rename to abis/human-readable-abis/contracts/abstract/IexecEscrow.sol/IexecEscrow.json
diff --git a/abis/human-readable-abis/contracts/tools/testing/ReceiveApprovalTestHelper.sol/ReceiveApprovalTestHelper.json b/abis/human-readable-abis/contracts/tools/testing/MatchOrdersFacetMock.sol/MatchOrdersFacetMock.json
similarity index 100%
rename from abis/human-readable-abis/contracts/tools/testing/ReceiveApprovalTestHelper.sol/ReceiveApprovalTestHelper.json
rename to abis/human-readable-abis/contracts/tools/testing/MatchOrdersFacetMock.sol/MatchOrdersFacetMock.json
diff --git a/contracts/facets/IexecEscrow.v8.sol b/contracts/abstract/IexecEscrow.sol
similarity index 97%
rename from contracts/facets/IexecEscrow.v8.sol
rename to contracts/abstract/IexecEscrow.sol
index 6850975ec..1654f0d96 100644
--- a/contracts/facets/IexecEscrow.v8.sol
+++ b/contracts/abstract/IexecEscrow.sol
@@ -3,12 +3,12 @@
pragma solidity ^0.8.0;
import {PocoStorageLib} from "../libs/PocoStorageLib.sol";
-import {FacetBase} from "../abstract/FacetBase.sol";
+import {FacetBase} from "./FacetBase.sol";
/**
* @title Manage (lock/unlock/reward/seize) user funds.
*/
-contract IexecEscrow is FacetBase {
+abstract contract IexecEscrow is FacetBase {
event Transfer(address indexed from, address indexed to, uint256 value);
event Lock(address owner, uint256 amount);
event Unlock(address owner, uint256 amount);
diff --git a/contracts/facets/IexecPocoCommon.sol b/contracts/abstract/IexecPocoCommon.sol
similarity index 96%
rename from contracts/facets/IexecPocoCommon.sol
rename to contracts/abstract/IexecPocoCommon.sol
index 1a93cb2a6..5206bc13f 100644
--- a/contracts/facets/IexecPocoCommon.sol
+++ b/contracts/abstract/IexecPocoCommon.sol
@@ -6,9 +6,9 @@ pragma solidity ^0.8.0;
import {Math} from "@openzeppelin/contracts/utils/math/Math.sol";
import {PocoStorageLib} from "../libs/PocoStorageLib.sol";
import {IexecLibOrders_v5} from "../libs/IexecLibOrders_v5.sol";
-import {FacetBase} from "../abstract/FacetBase.sol";
+import {FacetBase} from "./FacetBase.sol";
-contract IexecPocoCommon is FacetBase {
+abstract contract IexecPocoCommon is FacetBase {
using Math for uint256;
using IexecLibOrders_v5 for IexecLibOrders_v5.AppOrder;
using IexecLibOrders_v5 for IexecLibOrders_v5.DatasetOrder;
diff --git a/contracts/facets/SignatureVerifier.sol b/contracts/abstract/SignatureVerifier.sol
similarity index 98%
rename from contracts/facets/SignatureVerifier.sol
rename to contracts/abstract/SignatureVerifier.sol
index 3dbaf2eaa..e42724b61 100644
--- a/contracts/facets/SignatureVerifier.sol
+++ b/contracts/abstract/SignatureVerifier.sol
@@ -6,11 +6,11 @@ pragma solidity ^0.8.0;
import {IERC1271} from "@openzeppelin/contracts/interfaces/IERC1271.sol";
import {ECDSA} from "@openzeppelin/contracts/utils/cryptography/ECDSA.sol";
import {MessageHashUtils} from "@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol";
-import {FacetBase} from "../abstract/FacetBase.sol";
+import {FacetBase} from "./FacetBase.sol";
import {IERC734} from "../external/interfaces/IERC734.sol";
import {PocoStorageLib} from "../libs/PocoStorageLib.sol";
-contract SignatureVerifier is FacetBase {
+abstract contract SignatureVerifier is FacetBase {
using ECDSA for bytes32;
/**
diff --git a/contracts/facets/IexecEscrowTokenFacet.sol b/contracts/facets/IexecEscrowTokenFacet.sol
index be49e28c8..8e2606881 100644
--- a/contracts/facets/IexecEscrowTokenFacet.sol
+++ b/contracts/facets/IexecEscrowTokenFacet.sol
@@ -187,10 +187,11 @@ contract IexecEscrowTokenFacet is IexecEscrowToken, IexecTokenSpender, IexecERC2
IexecLibOrders_v5.RequestOrder
)
);
-
// Validate that sender is the requester
// This ensures the caller is authorized to create this deal
- if (requestorder.requester != sender) revert("caller-must-be-requester");
+ if (requestorder.requester != sender) {
+ revert("caller-must-be-requester");
+ }
}
function _deposit(address from, uint256 amount) internal {
diff --git a/contracts/facets/IexecOrderManagementFacet.sol b/contracts/facets/IexecOrderManagementFacet.sol
index 59bf704e4..7df901e55 100644
--- a/contracts/facets/IexecOrderManagementFacet.sol
+++ b/contracts/facets/IexecOrderManagementFacet.sol
@@ -5,7 +5,7 @@ pragma solidity ^0.8.0;
import {IERC5313} from "@openzeppelin/contracts/interfaces/IERC5313.sol";
import {FacetBase} from "../abstract/FacetBase.sol";
-import {SignatureVerifier} from "./SignatureVerifier.sol";
+import {SignatureVerifier} from "../abstract/SignatureVerifier.sol";
import {IexecOrderManagement} from "../interfaces/IexecOrderManagement.sol";
import {PocoStorageLib} from "../libs/PocoStorageLib.sol";
import {IexecLibOrders_v5} from "../libs/IexecLibOrders_v5.sol";
diff --git a/contracts/facets/IexecPoco1Facet.sol b/contracts/facets/IexecPoco1Facet.sol
index ecea5b181..3116f49b2 100644
--- a/contracts/facets/IexecPoco1Facet.sol
+++ b/contracts/facets/IexecPoco1Facet.sol
@@ -12,9 +12,9 @@ import {FacetBase} from "../abstract/FacetBase.sol";
import {PocoStorageLib} from "../libs/PocoStorageLib.sol";
import {IexecPoco1} from "../interfaces/IexecPoco1.sol";
import {IexecPoco1Errors} from "../interfaces/IexecPoco1Errors.sol";
-import {IexecEscrow} from "./IexecEscrow.v8.sol";
-import {IexecPocoCommon} from "./IexecPocoCommon.sol";
-import {SignatureVerifier} from "./SignatureVerifier.sol";
+import {IexecEscrow} from "../abstract/IexecEscrow.sol";
+import {IexecPocoCommon} from "../abstract/IexecPocoCommon.sol";
+import {SignatureVerifier} from "../abstract/SignatureVerifier.sol";
struct Matching {
bytes32 apporderHash;
diff --git a/contracts/facets/IexecPoco2Facet.sol b/contracts/facets/IexecPoco2Facet.sol
index a9ad34399..79d8987e0 100644
--- a/contracts/facets/IexecPoco2Facet.sol
+++ b/contracts/facets/IexecPoco2Facet.sol
@@ -10,8 +10,8 @@ import {IexecLibCore_v5} from "../libs/IexecLibCore_v5.sol";
import {IexecLibOrders_v5} from "../libs/IexecLibOrders_v5.sol";
import {FacetBase} from "../abstract/FacetBase.sol";
import {IexecPoco2} from "../interfaces/IexecPoco2.sol";
-import {IexecEscrow} from "./IexecEscrow.v8.sol";
-import {SignatureVerifier} from "./SignatureVerifier.sol";
+import {IexecEscrow} from "../abstract/IexecEscrow.sol";
+import {SignatureVerifier} from "../abstract/SignatureVerifier.sol";
contract IexecPoco2Facet is IexecPoco2, FacetBase, IexecEscrow, SignatureVerifier {
modifier onlyScheduler(bytes32 _taskId) {
diff --git a/contracts/facets/IexecPocoAccessorsFacet.sol b/contracts/facets/IexecPocoAccessorsFacet.sol
index a6ea8e09b..faac59fd0 100644
--- a/contracts/facets/IexecPocoAccessorsFacet.sol
+++ b/contracts/facets/IexecPocoAccessorsFacet.sol
@@ -12,8 +12,8 @@ import {IApp} from "../registries/apps/IApp.v8.sol";
import {IWorkerpool} from "../registries/workerpools/IWorkerpool.v8.sol";
import {IexecPocoAccessors} from "../interfaces/IexecPocoAccessors.sol";
import {IRegistry} from "../registries/IRegistry.sol";
-import {IexecPocoCommon} from "./IexecPocoCommon.sol";
-import {SignatureVerifier} from "./SignatureVerifier.sol";
+import {IexecPocoCommon} from "../abstract/IexecPocoCommon.sol";
+import {SignatureVerifier} from "../abstract/SignatureVerifier.sol";
/**
* @title Getters contract for PoCo facets.
diff --git a/contracts/facets/IexecPocoBoostFacet.sol b/contracts/facets/IexecPocoBoostFacet.sol
index babd1758a..86fce216d 100644
--- a/contracts/facets/IexecPocoBoostFacet.sol
+++ b/contracts/facets/IexecPocoBoostFacet.sol
@@ -15,10 +15,10 @@ import {IexecLibOrders_v5} from "../libs/IexecLibOrders_v5.sol";
import {IWorkerpool} from "../registries/workerpools/IWorkerpool.v8.sol";
import {FacetBase} from "../abstract/FacetBase.sol";
import {IexecPocoBoost} from "../interfaces/IexecPocoBoost.sol";
-import {IexecEscrow} from "./IexecEscrow.v8.sol";
-import {IexecPocoCommon} from "./IexecPocoCommon.sol";
+import {IexecEscrow} from "../abstract/IexecEscrow.sol";
+import {IexecPocoCommon} from "../abstract/IexecPocoCommon.sol";
import {PocoStorageLib} from "../libs/PocoStorageLib.sol";
-import {SignatureVerifier} from "./SignatureVerifier.sol";
+import {SignatureVerifier} from "../abstract/SignatureVerifier.sol";
//
// Not deployed yet!
diff --git a/contracts/tools/testing/IexecEscrowTestContract.sol b/contracts/tools/testing/IexecEscrowTestContract.sol
index 13863259d..4d20a5a34 100644
--- a/contracts/tools/testing/IexecEscrowTestContract.sol
+++ b/contracts/tools/testing/IexecEscrowTestContract.sol
@@ -3,12 +3,12 @@
pragma solidity ^0.8.0;
-import {IexecEscrow} from "../../facets/IexecEscrow.v8.sol";
+import {IexecEscrow} from "../../abstract/IexecEscrow.sol";
import {PocoStorageLib} from "../../libs/PocoStorageLib.sol";
/**
* @notice a wrapper contract to make internal functions of
- * IexecEscrow.v8 testable.
+ * IexecEscrow testable.
*/
contract IexecEscrowTestContract is IexecEscrow {
function lock_(address account, uint256 value) external {
diff --git a/contracts/tools/testing/ReceiveApprovalTestHelper.sol b/contracts/tools/testing/MatchOrdersFacetMock.sol
similarity index 61%
rename from contracts/tools/testing/ReceiveApprovalTestHelper.sol
rename to contracts/tools/testing/MatchOrdersFacetMock.sol
index 6f61ba52b..10ca7ac69 100644
--- a/contracts/tools/testing/ReceiveApprovalTestHelper.sol
+++ b/contracts/tools/testing/MatchOrdersFacetMock.sol
@@ -6,16 +6,10 @@ pragma solidity ^0.8.0;
import {IexecLibOrders_v5} from "../../libs/IexecLibOrders_v5.sol";
/**
- * @title ReceiveApprovalTestHelper
* @notice Helper contract to test edge cases in receiveApproval function
- * @dev This contract simulates a facet that fails silently (no error data)
+ * @dev This contract simulates a matchOrders that fails with empty error data.
*/
-contract ReceiveApprovalTestHelper {
- /**
- * @notice Mock matchOrders function that fails without returning error data
- * @dev Uses assembly to revert without data, simulating the edge case where
- * delegatecall fails and result.length == 0
- */
+contract MatchOrdersFacetMock {
function matchOrders(
IexecLibOrders_v5.AppOrder calldata,
IexecLibOrders_v5.DatasetOrder calldata,
@@ -24,8 +18,6 @@ contract ReceiveApprovalTestHelper {
) external pure returns (bytes32) {
// Revert without any error data
// This simulates: delegatecall fails with success=false and result.length=0
- assembly {
- revert(0, 0)
- }
+ revert();
}
}
diff --git a/docs/solidity/index.md b/docs/solidity/index.md
index f0cc2c325..b821cdfc6 100644
--- a/docs/solidity/index.md
+++ b/docs/solidity/index.md
@@ -58,6 +58,38 @@ function increaseAllowance(address spender, uint256 addedValue) external returns
function decreaseAllowance(address spender, uint256 subtractedValue) external returns (bool)
```
+## IexecEscrow
+
+### Transfer
+
+```solidity
+event Transfer(address from, address to, uint256 value)
+```
+
+### Lock
+
+```solidity
+event Lock(address owner, uint256 amount)
+```
+
+### Unlock
+
+```solidity
+event Unlock(address owner, uint256 amount)
+```
+
+### Reward
+
+```solidity
+event Reward(address owner, uint256 amount, bytes32 ref)
+```
+
+### Seize
+
+```solidity
+event Seize(address owner, uint256 amount, bytes32 ref)
+```
+
## IexecCategoryManagerFacet
### createCategory
@@ -114,38 +146,6 @@ function setTeeBroker(address _teebroker) external
function setCallbackGas(uint256 _callbackgas) external
```
-## IexecEscrow
-
-### Transfer
-
-```solidity
-event Transfer(address from, address to, uint256 value)
-```
-
-### Lock
-
-```solidity
-event Lock(address owner, uint256 amount)
-```
-
-### Unlock
-
-```solidity
-event Unlock(address owner, uint256 amount)
-```
-
-### Reward
-
-```solidity
-event Reward(address owner, uint256 amount, bytes32 ref)
-```
-
-### Seize
-
-```solidity
-event Seize(address owner, uint256 amount, bytes32 ref)
-```
-
## IexecEscrowNativeFacet
### receive
diff --git a/docs/uml/class-uml-IexecEscrows.svg b/docs/uml/class-uml-IexecEscrows.svg
index 9a48db4a6..77d052048 100644
--- a/docs/uml/class-uml-IexecEscrows.svg
+++ b/docs/uml/class-uml-IexecEscrows.svg
@@ -4,314 +4,810 @@
-
diff --git a/docs/uml/class-uml-IexecPocoBoostFacet.svg b/docs/uml/class-uml-IexecPocoBoostFacet.svg
index 57c111638..fbebe21ce 100644
--- a/docs/uml/class-uml-IexecPocoBoostFacet.svg
+++ b/docs/uml/class-uml-IexecPocoBoostFacet.svg
@@ -4,857 +4,879 @@
-
+
UmlClassDiagram
-
-
+
+
-77
-
-<<Interface>>
-IOracleConsumer
-contracts/external/interfaces/IOracleConsumer.sol
-
-External:
- receiveResult(taskId: bytes32, resultsCallback: bytes)
-
-
+4
+
+<<Abstract>>
+FacetBase
+contracts/abstract/FacetBase.sol
+
+Internal:
+ CONTRIBUTION_DEADLINE_RATIO: uint256
+ REVEAL_DEADLINE_RATIO: uint256
+ FINAL_DEADLINE_RATIO: uint256
+ WORKERPOOL_STAKE_RATIO: uint256
+ KITTY_RATIO: uint256
+ KITTY_MIN: uint256
+ KITTY_ADDRESS: address
+ GROUPMEMBER_PURPOSE: uint256
+
+Internal:
+ owner(): address
+ _msgSender(): address
+Public:
+ <<modifier>> onlyOwner()
+
+
-5
-
-<<Abstract>>
-FacetBase
-contracts/facets/FacetBase.v8.sol
-
-Internal:
- CONTRIBUTION_DEADLINE_RATIO: uint256
- REVEAL_DEADLINE_RATIO: uint256
- FINAL_DEADLINE_RATIO: uint256
- WORKERPOOL_STAKE_RATIO: uint256
- KITTY_RATIO: uint256
- KITTY_MIN: uint256
- KITTY_ADDRESS: address
- GROUPMEMBER_PURPOSE: uint256
-
-Internal:
- _msgSender(): address
-
-
-
-12
-
-IexecEscrow
-contracts/facets/IexecEscrow.v8.sol
-
-Private:
- _transfer(from: address, to: address, value: uint256)
-Internal:
- lock(account: address, value: uint256)
- unlock(account: address, value: uint256)
- reward(account: address, value: uint256, ref: bytes32)
- seize(account: address, value: uint256, ref: bytes32)
-Public:
- <<event>> Transfer(from: address, to: address, value: uint256)
- <<event>> Lock(owner: address, amount: uint256)
- <<event>> Unlock(owner: address, amount: uint256)
- <<event>> Reward(owner: address, amount: uint256, ref: bytes32)
- <<event>> Seize(owner: address, amount: uint256, ref: bytes32)
-
-
+6
+
+IexecEscrow
+contracts/abstract/IexecEscrow.sol
+
+Private:
+ _transfer(from: address, to: address, value: uint256)
+Internal:
+ lock(account: address, value: uint256)
+ unlock(account: address, value: uint256)
+ reward(account: address, value: uint256, ref: bytes32)
+ seize(account: address, value: uint256, ref: bytes32)
+Public:
+ <<event>> Transfer(from: address, to: address, value: uint256)
+ <<event>> Lock(owner: address, amount: uint256)
+ <<event>> Unlock(owner: address, amount: uint256)
+ <<event>> Reward(owner: address, amount: uint256, ref: bytes32)
+ <<event>> Seize(owner: address, amount: uint256, ref: bytes32)
+
+
-12->5
-
-
+6->4
+
+
-
-
-70
-
-<<Library>>
-PocoStorageLib
-contracts/libs/PocoStorageLib.v8.sol
-
-Private:
- POCO_STORAGE_LOCATION: bytes32
-
-Internal:
- getPocoStorage(): ($: PocoStorage)
-
-
+
+
+66
+
+<<Library>>
+PocoStorageLib
+contracts/libs/PocoStorageLib.sol
+
+Private:
+ POCO_STORAGE_LOCATION: bytes32
+
+Internal:
+ getPocoStorage(): ($: PocoStorage)
+
+
-12->70
-
-
+6->66
+
+
-
-
-71
-
-<<Struct>>
-PocoStorage
-contracts/libs/PocoStorageLib.v8.sol
-
-m_appregistry: IRegistry
-m_datasetregistry: IRegistry
-m_workerpoolregistry: IRegistry
-m_baseToken: IERC20
-m_name: string
-m_symbol: string
-m_decimals: uint8
-m_totalSupply: uint256
-m_balances: mapping(address=>uint256)
-m_frozens: mapping(address=>uint256)
-m_allowances: mapping(address=>mapping(address=>uint256))
-m_eip712DomainSeparator: bytes32
-m_presigned: mapping(bytes32=>address)
-m_consumed: mapping(bytes32=>uint256)
-m_deals: mapping(bytes32=>IexecLibCore_v5.Deal)
-m_tasks: mapping(bytes32=>IexecLibCore_v5.Task)
-m_consensus: mapping(bytes32=>IexecLibCore_v5.Consensus)
-m_contributions: mapping(bytes32=>mapping(address=>IexecLibCore_v5.Contribution))
-m_workerScores: mapping(address=>uint256)
-m_teebroker: address
-m_callbackgas: uint256
-m_categories: IexecLibCore_v5.Category[]
-m_v3_iexecHub: address
-m_v3_scoreImported: mapping(address=>bool)
-m_dealsBoost: mapping(bytes32=>IexecLibCore_v5.DealBoost)
-
-
+
+
+67
+
+<<Struct>>
+PocoStorage
+contracts/libs/PocoStorageLib.sol
+
+m_appregistry: IRegistry
+m_datasetregistry: IRegistry
+m_workerpoolregistry: IRegistry
+m_baseToken: IERC20
+m_name: string
+m_symbol: string
+m_decimals: uint8
+m_totalSupply: uint256
+m_balances: mapping(address=>uint256)
+m_frozens: mapping(address=>uint256)
+m_allowances: mapping(address=>mapping(address=>uint256))
+m_eip712DomainSeparator: bytes32
+m_presigned: mapping(bytes32=>address)
+m_consumed: mapping(bytes32=>uint256)
+m_deals: mapping(bytes32=>IexecLibCore_v5.Deal)
+m_tasks: mapping(bytes32=>IexecLibCore_v5.Task)
+m_consensus: mapping(bytes32=>IexecLibCore_v5.Consensus)
+m_contributions: mapping(bytes32=>mapping(address=>IexecLibCore_v5.Contribution))
+m_workerScores: mapping(address=>uint256)
+m_teebroker: address
+m_callbackgas: uint256
+m_categories: IexecLibCore_v5.Category[]
+m_v3_iexecHub: IexecHubV3Interface
+m_v3_scoreImported: mapping(address=>bool)
+m_dealsBoost: mapping(bytes32=>IexecLibCore_v5.DealBoost)
+
+
-12->71
-
-
+6->67
+
+
-
-
-21
-
-IexecPocoBoostFacet
-contracts/facets/IexecPocoBoostFacet.sol
-
-Private:
- _matchOrdersBoost(appOrder: IexecLibOrders_v5.AppOrder, datasetOrder: IexecLibOrders_v5.DatasetOrder, workerpoolOrder: IexecLibOrders_v5.WorkerpoolOrder, requestOrder: IexecLibOrders_v5.RequestOrder, sponsor: address): bytes32
- requireTaskExistsAndUnset(taskStatus: IexecLibCore_v5.TaskStatusEnum, taskIndex: uint256, botSize: uint16)
-External:
- matchOrdersBoost(appOrder: IexecLibOrders_v5.AppOrder, datasetOrder: IexecLibOrders_v5.DatasetOrder, workerpoolOrder: IexecLibOrders_v5.WorkerpoolOrder, requestOrder: IexecLibOrders_v5.RequestOrder): bytes32
- sponsorMatchOrdersBoost(appOrder: IexecLibOrders_v5.AppOrder, datasetOrder: IexecLibOrders_v5.DatasetOrder, workerpoolOrder: IexecLibOrders_v5.WorkerpoolOrder, requestOrder: IexecLibOrders_v5.RequestOrder): bytes32
- pushResultBoost(dealId: bytes32, index: uint256, results: bytes, resultsCallback: bytes, authorizationSign: bytes, enclaveChallenge: address, enclaveSign: bytes)
- claimBoost(dealId: bytes32, index: uint256)
-
-
-
-21->77
-
-
+
+
+7
+
+<<Abstract>>
+IexecPocoCommon
+contracts/abstract/IexecPocoCommon.sol
+
+Internal:
+ _computeDealVolume(appOrderVolume: uint256, appOrderTypedDataHash: bytes32, hasDataset: bool, datasetOrderVolume: uint256, datasetOrderTypedDataHash: bytes32, workerpoolOrderVolume: uint256, workerpoolOrderTypedDataHash: bytes32, requestOrderVolume: uint256, requestOrderTypedDataHash: bytes32): uint256
+
+
+
+7->4
+
+
-
+
+
+55
+
+<<Library>>
+IexecLibOrders_v5
+contracts/libs/IexecLibOrders_v5.sol
+
+Public:
+ EIP712DOMAIN_TYPEHASH: bytes32
+ APPORDER_TYPEHASH: bytes32
+ DATASETORDER_TYPEHASH: bytes32
+ WORKERPOOLORDER_TYPEHASH: bytes32
+ REQUESTORDER_TYPEHASH: bytes32
+ APPORDEROPERATION_TYPEHASH: bytes32
+ DATASETORDEROPERATION_TYPEHASH: bytes32
+ WORKERPOOLORDEROPERATION_TYPEHASH: bytes32
+ REQUESTORDEROPERATION_TYPEHASH: bytes32
+
+Public:
+ hash(_domain: EIP712Domain): (domainhash: bytes32)
+ hash(_apporder: AppOrder): (apphash: bytes32)
+ hash(_datasetorder: DatasetOrder): (datasethash: bytes32)
+ hash(_workerpoolorder: WorkerpoolOrder): (workerpoolhash: bytes32)
+ hash(_requestorder: RequestOrder): (requesthash: bytes32)
+ hash(_apporderoperation: AppOrderOperation): bytes32
+ hash(_datasetorderoperation: DatasetOrderOperation): bytes32
+ hash(_workerpoolorderoperation: WorkerpoolOrderOperation): bytes32
+ hash(_requestorderoperation: RequestOrderOperation): bytes32
+
+
-21->5
-
-
+7->55
+
+
-
+
-21->12
-
-
+7->66
+
+
-
-
-22
-
-IexecPocoCommon
-contracts/facets/IexecPocoCommon.sol
-
-Internal:
- _computeDealVolume(appOrderVolume: uint256, appOrderTypedDataHash: bytes32, hasDataset: bool, datasetOrderVolume: uint256, datasetOrderTypedDataHash: bytes32, workerpoolOrderVolume: uint256, workerpoolOrderTypedDataHash: bytes32, requestOrderVolume: uint256, requestOrderTypedDataHash: bytes32): uint256
-
-
+
+
+7->67
+
+
+
+
+
+8
+
+<<Abstract>>
+SignatureVerifier
+contracts/abstract/SignatureVerifier.sol
+
+Internal:
+ _toTypedDataHash(structHash: bytes32): bytes32
+ _verifySignatureOfEthSignedMessage(account: address, message: bytes, signature: bytes): bool
+ _verifySignature(account: address, messageHash: bytes32, signature: bytes): bool
+ _verifyPresignature(account: address, messageHash: bytes32): bool
+ _verifySignatureOrPresignature(account: address, messageHash: bytes32, signature: bytes): bool
+ _isAccountAuthorizedByRestriction(restriction: address, account: address): bool
+
+
-21->22
-
-
+8->4
+
+
-
+
+
+8->66
+
+
+
+
+
+8->67
+
+
+
+
+
+72
+
+<<Interface>>
+IOracleConsumer
+contracts/external/interfaces/IOracleConsumer.sol
+
+External:
+ receiveResult(taskId: bytes32, resultsCallback: bytes)
+
+
-24
-
-SignatureVerifier
-contracts/facets/SignatureVerifier.sol
-
-Internal:
- _toTypedDataHash(structHash: bytes32): bytes32
- _verifySignatureOfEthSignedMessage(account: address, message: bytes, signature: bytes): bool
- _verifySignature(account: address, messageHash: bytes32, signature: bytes): bool
- _verifyPresignature(account: address, messageHash: bytes32): bool
- _verifySignatureOrPresignature(account: address, messageHash: bytes32, signature: bytes): bool
- _isAccountAuthorizedByRestriction(restriction: address, account: address): bool
-
-
-
-21->24
-
-
+21
+
+IexecPocoBoostFacet
+contracts/facets/IexecPocoBoostFacet.sol
+
+Private:
+ _matchOrdersBoost(appOrder: IexecLibOrders_v5.AppOrder, datasetOrder: IexecLibOrders_v5.DatasetOrder, workerpoolOrder: IexecLibOrders_v5.WorkerpoolOrder, requestOrder: IexecLibOrders_v5.RequestOrder, sponsor: address): bytes32
+ requireTaskExistsAndUnset(taskStatus: IexecLibCore_v5.TaskStatusEnum, taskIndex: uint256, botSize: uint16)
+External:
+ matchOrdersBoost(appOrder: IexecLibOrders_v5.AppOrder, datasetOrder: IexecLibOrders_v5.DatasetOrder, workerpoolOrder: IexecLibOrders_v5.WorkerpoolOrder, requestOrder: IexecLibOrders_v5.RequestOrder): bytes32
+ sponsorMatchOrdersBoost(appOrder: IexecLibOrders_v5.AppOrder, datasetOrder: IexecLibOrders_v5.DatasetOrder, workerpoolOrder: IexecLibOrders_v5.WorkerpoolOrder, requestOrder: IexecLibOrders_v5.RequestOrder): bytes32
+ pushResultBoost(dealId: bytes32, index: uint256, results: bytes, resultsCallback: bytes, authorizationSign: bytes, enclaveChallenge: address, enclaveSign: bytes)
+ claimBoost(dealId: bytes32, index: uint256)
+
+
+
+21->4
+
+
-
-
-39
-
-<<Interface>>
-IexecPocoBoost
-contracts/interfaces/IexecPocoBoost.sol
-
-External:
- matchOrdersBoost(appOrder: IexecLibOrders_v5.AppOrder, datasetOrder: IexecLibOrders_v5.DatasetOrder, workerpoolOrder: IexecLibOrders_v5.WorkerpoolOrder, requestOrder: IexecLibOrders_v5.RequestOrder): bytes32
- sponsorMatchOrdersBoost(appOrder: IexecLibOrders_v5.AppOrder, datasetOrder: IexecLibOrders_v5.DatasetOrder, workerpoolOrder: IexecLibOrders_v5.WorkerpoolOrder, requestOrder: IexecLibOrders_v5.RequestOrder): bytes32
- pushResultBoost(dealId: bytes32, index: uint256, results: bytes, resultsCallback: bytes, authorizationSign: bytes, enclaveChallenge: address, enclaveSign: bytes)
- claimBoost(dealId: bytes32, index: uint256)
-Public:
- <<event>> SchedulerNoticeBoost(workerpool: address, dealId: bytes32, app: address, dataset: address, category: uint256, tag: bytes32, params: string, beneficiary: address)
- <<event>> OrdersMatched(dealid: bytes32, appHash: bytes32, datasetHash: bytes32, workerpoolHash: bytes32, requestHash: bytes32, volume: uint256)
- <<event>> ResultPushedBoost(dealId: bytes32, index: uint256, results: bytes)
- <<event>> TaskClaimed(taskid: bytes32)
- <<event>> DealSponsoredBoost(dealId: bytes32, sponsor: address)
-
-
-
-21->39
-
-
+
+
+21->6
+
+
-
+
+
+21->7
+
+
+
+
+
+21->8
+
+
+
+
+
+21->72
+
+
+
+
-43
-
-<<Library>>
-IexecLibCore_v5
-contracts/libs/IexecLibCore_v5.sol
+37
+
+<<Interface>>
+IexecPocoBoost
+contracts/interfaces/IexecPocoBoost.sol
+
+External:
+ matchOrdersBoost(appOrder: IexecLibOrders_v5.AppOrder, datasetOrder: IexecLibOrders_v5.DatasetOrder, workerpoolOrder: IexecLibOrders_v5.WorkerpoolOrder, requestOrder: IexecLibOrders_v5.RequestOrder): bytes32
+ sponsorMatchOrdersBoost(appOrder: IexecLibOrders_v5.AppOrder, datasetOrder: IexecLibOrders_v5.DatasetOrder, workerpoolOrder: IexecLibOrders_v5.WorkerpoolOrder, requestOrder: IexecLibOrders_v5.RequestOrder): bytes32
+ pushResultBoost(dealId: bytes32, index: uint256, results: bytes, resultsCallback: bytes, authorizationSign: bytes, enclaveChallenge: address, enclaveSign: bytes)
+ claimBoost(dealId: bytes32, index: uint256)
+Public:
+ <<event>> SchedulerNoticeBoost(workerpool: address, dealId: bytes32, app: address, dataset: address, category: uint256, tag: bytes32, params: string, beneficiary: address)
+ <<event>> OrdersMatched(dealid: bytes32, appHash: bytes32, datasetHash: bytes32, workerpoolHash: bytes32, requestHash: bytes32, volume: uint256)
+ <<event>> ResultPushedBoost(dealId: bytes32, index: uint256, results: bytes)
+ <<event>> TaskClaimed(taskid: bytes32)
+ <<event>> DealSponsoredBoost(dealId: bytes32, sponsor: address)
+
+
+
+21->37
+
+
-
-
-21->43
-
-
+
+
+41
+
+<<Library>>
+IexecLibCore_v5
+contracts/libs/IexecLibCore_v5.sol
+
+
+
+21->41
+
+
+
+
+
+49
+
+<<Struct>>
+DealBoost
+contracts/libs/IexecLibCore_v5.sol
+
+appOwner: address
+appPrice: uint96
+datasetOwner: address
+datasetPrice: uint96
+workerpoolOwner: address
+workerpoolPrice: uint96
+requester: address
+workerReward: uint96
+callback: address
+deadline: uint40
+botFirst: uint16
+botSize: uint16
+shortTag: bytes3
+sponsor: address
+
+
+
+21->49
+
+
+
+
+
+50
+
+<<Enum>>
+TaskStatusEnum
+contracts/libs/IexecLibCore_v5.sol
+
+UNSET: 0
+ACTIVE: 1
+REVEALING: 2
+COMPLETED: 3
+FAILED: 4
+
+
+
+21->50
+
+
-
+
51
-
-<<Struct>>
-DealBoost
-contracts/libs/IexecLibCore_v5.sol
-
-appOwner: address
-appPrice: uint96
-datasetOwner: address
-datasetPrice: uint96
-workerpoolOwner: address
-workerpoolPrice: uint96
-requester: address
-workerReward: uint96
-callback: address
-deadline: uint40
-botFirst: uint16
-botSize: uint16
-shortTag: bytes3
-sponsor: address
+
+<<Struct>>
+Task
+contracts/libs/IexecLibCore_v5.sol
+
+status: TaskStatusEnum
+dealid: bytes32
+idx: uint256
+timeref: uint256
+contributionDeadline: uint256
+revealDeadline: uint256
+finalDeadline: uint256
+consensusValue: bytes32
+revealCounter: uint256
+winnerCounter: uint256
+contributors: address[]
+resultDigest: bytes32
+results: bytes
+resultsTimestamp: uint256
+resultsCallback: bytes
-
+
21->51
-
-
+
+
-
-
-52
-
-<<Enum>>
-TaskStatusEnum
-contracts/libs/IexecLibCore_v5.sol
-
-UNSET: 0
-ACTIVE: 1
-REVEALING: 2
-COMPLETED: 3
-FAILED: 4
-
-
-
-21->52
-
-
+
+
+21->55
+
+
-
-
-53
-
-<<Struct>>
-Task
-contracts/libs/IexecLibCore_v5.sol
-
-status: TaskStatusEnum
-dealid: bytes32
-idx: uint256
-timeref: uint256
-contributionDeadline: uint256
-revealDeadline: uint256
-finalDeadline: uint256
-consensusValue: bytes32
-revealCounter: uint256
-winnerCounter: uint256
-contributors: address[]
-resultDigest: bytes32
-results: bytes
-resultsTimestamp: uint256
-resultsCallback: bytes
-
-
-
-21->53
-
-
+
+
+58
+
+<<Struct>>
+AppOrder
+contracts/libs/IexecLibOrders_v5.sol
+
+app: address
+appprice: uint256
+volume: uint256
+tag: bytes32
+datasetrestrict: address
+workerpoolrestrict: address
+requesterrestrict: address
+salt: bytes32
+sign: bytes
+
+
+
+21->58
+
+
-
-
-57
-
-<<Library>>
-IexecLibOrders_v5
-contracts/libs/IexecLibOrders_v5.sol
-
-Public:
- EIP712DOMAIN_TYPEHASH: bytes32
- APPORDER_TYPEHASH: bytes32
- DATASETORDER_TYPEHASH: bytes32
- WORKERPOOLORDER_TYPEHASH: bytes32
- REQUESTORDER_TYPEHASH: bytes32
- APPORDEROPERATION_TYPEHASH: bytes32
- DATASETORDEROPERATION_TYPEHASH: bytes32
- WORKERPOOLORDEROPERATION_TYPEHASH: bytes32
- REQUESTORDEROPERATION_TYPEHASH: bytes32
-
-Public:
- hash(_domain: EIP712Domain): (domainhash: bytes32)
- hash(_apporder: AppOrder): (apphash: bytes32)
- hash(_datasetorder: DatasetOrder): (datasethash: bytes32)
- hash(_workerpoolorder: WorkerpoolOrder): (workerpoolhash: bytes32)
- hash(_requestorder: RequestOrder): (requesthash: bytes32)
- hash(_apporderoperation: AppOrderOperation): bytes32
- hash(_datasetorderoperation: DatasetOrderOperation): bytes32
- hash(_workerpoolorderoperation: WorkerpoolOrderOperation): bytes32
- hash(_requestorderoperation: RequestOrderOperation): bytes32
-
-
-
-21->57
-
-
+
+
+59
+
+<<Struct>>
+DatasetOrder
+contracts/libs/IexecLibOrders_v5.sol
+
+dataset: address
+datasetprice: uint256
+volume: uint256
+tag: bytes32
+apprestrict: address
+workerpoolrestrict: address
+requesterrestrict: address
+salt: bytes32
+sign: bytes
+
+
+
+21->59
+
+
-
+
60
-
-<<Struct>>
-AppOrder
-contracts/libs/IexecLibOrders_v5.sol
-
-app: address
-appprice: uint256
-volume: uint256
-tag: bytes32
-datasetrestrict: address
-workerpoolrestrict: address
-requesterrestrict: address
-salt: bytes32
-sign: bytes
+
+<<Struct>>
+WorkerpoolOrder
+contracts/libs/IexecLibOrders_v5.sol
+
+workerpool: address
+workerpoolprice: uint256
+volume: uint256
+tag: bytes32
+category: uint256
+trust: uint256
+apprestrict: address
+datasetrestrict: address
+requesterrestrict: address
+salt: bytes32
+sign: bytes
-
+
21->60
-
-
+
+
-
+
61
-
-<<Struct>>
-DatasetOrder
-contracts/libs/IexecLibOrders_v5.sol
-
-dataset: address
-datasetprice: uint256
-volume: uint256
-tag: bytes32
-apprestrict: address
-workerpoolrestrict: address
-requesterrestrict: address
-salt: bytes32
-sign: bytes
+
+<<Struct>>
+RequestOrder
+contracts/libs/IexecLibOrders_v5.sol
+
+app: address
+appmaxprice: uint256
+dataset: address
+datasetmaxprice: uint256
+workerpool: address
+workerpoolmaxprice: uint256
+requester: address
+volume: uint256
+tag: bytes32
+category: uint256
+trust: uint256
+beneficiary: address
+callback: address
+params: string
+salt: bytes32
+sign: bytes
-
+
21->61
-
-
-
-
-
-62
-
-<<Struct>>
-WorkerpoolOrder
-contracts/libs/IexecLibOrders_v5.sol
-
-workerpool: address
-workerpoolprice: uint256
-volume: uint256
-tag: bytes32
-category: uint256
-trust: uint256
-apprestrict: address
-datasetrestrict: address
-requesterrestrict: address
-salt: bytes32
-sign: bytes
-
-
-
-21->62
-
-
-
-
-
-63
-
-<<Struct>>
-RequestOrder
-contracts/libs/IexecLibOrders_v5.sol
-
-app: address
-appmaxprice: uint256
-dataset: address
-datasetmaxprice: uint256
-workerpool: address
-workerpoolmaxprice: uint256
-requester: address
-volume: uint256
-tag: bytes32
-category: uint256
-trust: uint256
-beneficiary: address
-callback: address
-params: string
-salt: bytes32
-sign: bytes
-
-
-
-21->63
-
-
-
-
-
-21->70
-
-
-
-
-
-21->71
-
-
+
+
-
-
-84
-
-<<Interface>>
-IWorkerpool
-contracts/registries/workerpools/IWorkerpool.v8.sol
-
-External:
- owner(): address
- m_workerpoolDescription(): string
- m_schedulerRewardRatioPolicy(): uint256
- m_workerStakeRatioPolicy(): uint256
-
-
-
-21->84
-
-
+
+
+21->66
+
+
-
+
-22->5
-
-
-
-
-
-22->57
-
-
-
-
-
-22->70
-
-
-
-
+21->67
+
+
+
+
+
+83
+
+<<Interface>>
+IWorkerpool
+contracts/registries/workerpools/IWorkerpool.v8.sol
+
+External:
+ owner(): address
+ m_workerpoolDescription(): string
+ m_schedulerRewardRatioPolicy(): uint256
+ m_workerStakeRatioPolicy(): uint256
+
+
-22->71
-
-
-
-
-
-24->5
-
-
-
-
-
-24->70
-
-
-
-
-
-24->71
-
-
+21->83
+
+
-
+
+
+31
+
+<<Interface>>
+IexecHubV3Interface
+contracts/interfaces/IexecHubV3Interface.sol
+
+External:
+ viewScore(worker: address): uint256
+
+
-39->57
-
-
+37->55
+
+
-
+
-39->60
-
-
+37->58
+
+
-
+
-39->61
-
-
+37->59
+
+
-
+
-39->62
-
-
+37->60
+
+
-
+
-39->63
-
-
+37->61
+
+
-
+
-51->43
-
-
+49->41
+
+
-
+
-52->43
-
-
+50->41
+
+
-
+
-53->43
-
-
+51->41
+
+
-
+
-53->52
-
-
+51->50
+
+
-
-
-59
-
-<<Struct>>
-EIP712Domain
-contracts/libs/IexecLibOrders_v5.sol
-
-name: string
-version: string
-chainId: uint256
-verifyingContract: address
-
-
+
+
+57
+
+<<Struct>>
+EIP712Domain
+contracts/libs/IexecLibOrders_v5.sol
+
+name: string
+version: string
+chainId: uint256
+verifyingContract: address
+
+
-57->59
-
-
+55->57
+
+
-
+
-57->60
-
-
+55->58
+
+
-
+
-57->61
-
-
+55->59
+
+
-
+
-57->62
-
-
+55->60
+
+
-
+
-57->63
-
-
+55->61
+
+
-
-
-64
-
-<<Struct>>
-AppOrderOperation
-contracts/libs/IexecLibOrders_v5.sol
-
-order: AppOrder
-operation: OrderOperationEnum
-sign: bytes
-
-
+
+
+62
+
+<<Struct>>
+AppOrderOperation
+contracts/libs/IexecLibOrders_v5.sol
+
+order: AppOrder
+operation: OrderOperationEnum
+sign: bytes
+
+
-57->64
-
-
+55->62
+
+
-
-
-65
-
-<<Struct>>
-DatasetOrderOperation
-contracts/libs/IexecLibOrders_v5.sol
-
-order: DatasetOrder
-operation: OrderOperationEnum
-sign: bytes
-
-
+
+
+63
+
+<<Struct>>
+DatasetOrderOperation
+contracts/libs/IexecLibOrders_v5.sol
+
+order: DatasetOrder
+operation: OrderOperationEnum
+sign: bytes
+
+
-57->65
-
-
+55->63
+
+
-
-
-66
-
-<<Struct>>
-WorkerpoolOrderOperation
-contracts/libs/IexecLibOrders_v5.sol
-
-order: WorkerpoolOrder
-operation: OrderOperationEnum
-sign: bytes
-
-
+
+
+64
+
+<<Struct>>
+WorkerpoolOrderOperation
+contracts/libs/IexecLibOrders_v5.sol
+
+order: WorkerpoolOrder
+operation: OrderOperationEnum
+sign: bytes
+
+
-57->66
-
-
+55->64
+
+
-
-
-67
-
-<<Struct>>
-RequestOrderOperation
-contracts/libs/IexecLibOrders_v5.sol
-
-order: RequestOrder
-operation: OrderOperationEnum
-sign: bytes
-
-
+
+
+65
+
+<<Struct>>
+RequestOrderOperation
+contracts/libs/IexecLibOrders_v5.sol
+
+order: RequestOrder
+operation: OrderOperationEnum
+sign: bytes
+
+
-57->67
-
-
+55->65
+
+
-
-
-58
-
-<<Enum>>
-OrderOperationEnum
-contracts/libs/IexecLibOrders_v5.sol
-
-SIGN: 0
-CLOSE: 1
-
-
+
+
+56
+
+<<Enum>>
+OrderOperationEnum
+contracts/libs/IexecLibOrders_v5.sol
+
+SIGN: 0
+CLOSE: 1
+
+
-58->57
-
-
+56->55
+
+
-
+
-59->57
-
-
+57->55
+
+
-
+
-60->57
-
-
+58->55
+
+
-
+
-61->57
-
-
+59->55
+
+
-
+
-62->57
-
-
+60->55
+
+
-
+
-63->57
-
-
+61->55
+
+
-
+
-64->57
-
-
+62->55
+
+
-
+
-64->58
-
-
+62->56
+
+
-
+
-64->60
-
-
+62->58
+
+
-
+
-65->57
-
-
+63->55
+
+
-
+
-65->58
-
-
+63->56
+
+
-
+
-65->61
-
-
+63->59
+
+
-
+
-66->57
-
-
+64->55
+
+
-
+
-66->58
-
-
+64->56
+
+
-
+
-66->62
-
-
+64->60
+
+
-
+
-67->57
-
-
+65->55
+
+
-
+
-67->58
-
-
+65->56
+
+
-
+
-67->63
-
-
+65->61
+
+
-
+
-70->71
-
-
+66->67
+
+
+
+
+
+67->31
+
+
-
+
-71->43
-
-
+67->41
+
+
-
+
-71->70
-
-
+67->66
+
+
-
-
-72
-
-<<Interface>>
-IRegistry
-contracts/libs/PocoStorageLib.v8.sol
-
-External:
- isRegistered(_entry: address): bool
-
-
+
+
+68
+
+<<Interface>>
+IRegistry
+contracts/registries/IRegistry.sol
+
+External:
+ isRegistered(_entry: address): bool
+
+
-71->72
-
-
+67->68
+
+
diff --git a/docs/uml/class-uml-IexecPocoFacets.svg b/docs/uml/class-uml-IexecPocoFacets.svg
index 1bf0a710c..f01e3263f 100644
--- a/docs/uml/class-uml-IexecPocoFacets.svg
+++ b/docs/uml/class-uml-IexecPocoFacets.svg
@@ -4,1078 +4,1100 @@
-
+
UmlClassDiagram
-
-
+
+
-5
-
-<<Abstract>>
-FacetBase
-contracts/facets/FacetBase.v8.sol
-
-Internal:
- CONTRIBUTION_DEADLINE_RATIO: uint256
- REVEAL_DEADLINE_RATIO: uint256
- FINAL_DEADLINE_RATIO: uint256
- WORKERPOOL_STAKE_RATIO: uint256
- KITTY_RATIO: uint256
- KITTY_MIN: uint256
- KITTY_ADDRESS: address
- GROUPMEMBER_PURPOSE: uint256
-
-Internal:
- _msgSender(): address
-
-
+4
+
+<<Abstract>>
+FacetBase
+contracts/abstract/FacetBase.sol
+
+Internal:
+ CONTRIBUTION_DEADLINE_RATIO: uint256
+ REVEAL_DEADLINE_RATIO: uint256
+ FINAL_DEADLINE_RATIO: uint256
+ WORKERPOOL_STAKE_RATIO: uint256
+ KITTY_RATIO: uint256
+ KITTY_MIN: uint256
+ KITTY_ADDRESS: address
+ GROUPMEMBER_PURPOSE: uint256
+
+Internal:
+ owner(): address
+ _msgSender(): address
+Public:
+ <<modifier>> onlyOwner()
+
+
-12
-
-IexecEscrow
-contracts/facets/IexecEscrow.v8.sol
-
-Private:
- _transfer(from: address, to: address, value: uint256)
-Internal:
- lock(account: address, value: uint256)
- unlock(account: address, value: uint256)
- reward(account: address, value: uint256, ref: bytes32)
- seize(account: address, value: uint256, ref: bytes32)
-Public:
- <<event>> Transfer(from: address, to: address, value: uint256)
- <<event>> Lock(owner: address, amount: uint256)
- <<event>> Unlock(owner: address, amount: uint256)
- <<event>> Reward(owner: address, amount: uint256, ref: bytes32)
- <<event>> Seize(owner: address, amount: uint256, ref: bytes32)
-
-
+6
+
+IexecEscrow
+contracts/abstract/IexecEscrow.sol
+
+Private:
+ _transfer(from: address, to: address, value: uint256)
+Internal:
+ lock(account: address, value: uint256)
+ unlock(account: address, value: uint256)
+ reward(account: address, value: uint256, ref: bytes32)
+ seize(account: address, value: uint256, ref: bytes32)
+Public:
+ <<event>> Transfer(from: address, to: address, value: uint256)
+ <<event>> Lock(owner: address, amount: uint256)
+ <<event>> Unlock(owner: address, amount: uint256)
+ <<event>> Reward(owner: address, amount: uint256, ref: bytes32)
+ <<event>> Seize(owner: address, amount: uint256, ref: bytes32)
+
+
-12->5
-
-
+6->4
+
+
-
-
-70
-
-<<Library>>
-PocoStorageLib
-contracts/libs/PocoStorageLib.v8.sol
-
-Private:
- POCO_STORAGE_LOCATION: bytes32
-
-Internal:
- getPocoStorage(): ($: PocoStorage)
-
-
+
+
+66
+
+<<Library>>
+PocoStorageLib
+contracts/libs/PocoStorageLib.sol
+
+Private:
+ POCO_STORAGE_LOCATION: bytes32
+
+Internal:
+ getPocoStorage(): ($: PocoStorage)
+
+
-12->70
-
-
+6->66
+
+
-
-
-71
-
-<<Struct>>
-PocoStorage
-contracts/libs/PocoStorageLib.v8.sol
-
-m_appregistry: IRegistry
-m_datasetregistry: IRegistry
-m_workerpoolregistry: IRegistry
-m_baseToken: IERC20
-m_name: string
-m_symbol: string
-m_decimals: uint8
-m_totalSupply: uint256
-m_balances: mapping(address=>uint256)
-m_frozens: mapping(address=>uint256)
-m_allowances: mapping(address=>mapping(address=>uint256))
-m_eip712DomainSeparator: bytes32
-m_presigned: mapping(bytes32=>address)
-m_consumed: mapping(bytes32=>uint256)
-m_deals: mapping(bytes32=>IexecLibCore_v5.Deal)
-m_tasks: mapping(bytes32=>IexecLibCore_v5.Task)
-m_consensus: mapping(bytes32=>IexecLibCore_v5.Consensus)
-m_contributions: mapping(bytes32=>mapping(address=>IexecLibCore_v5.Contribution))
-m_workerScores: mapping(address=>uint256)
-m_teebroker: address
-m_callbackgas: uint256
-m_categories: IexecLibCore_v5.Category[]
-m_v3_iexecHub: address
-m_v3_scoreImported: mapping(address=>bool)
-m_dealsBoost: mapping(bytes32=>IexecLibCore_v5.DealBoost)
-
-
+
+
+67
+
+<<Struct>>
+PocoStorage
+contracts/libs/PocoStorageLib.sol
+
+m_appregistry: IRegistry
+m_datasetregistry: IRegistry
+m_workerpoolregistry: IRegistry
+m_baseToken: IERC20
+m_name: string
+m_symbol: string
+m_decimals: uint8
+m_totalSupply: uint256
+m_balances: mapping(address=>uint256)
+m_frozens: mapping(address=>uint256)
+m_allowances: mapping(address=>mapping(address=>uint256))
+m_eip712DomainSeparator: bytes32
+m_presigned: mapping(bytes32=>address)
+m_consumed: mapping(bytes32=>uint256)
+m_deals: mapping(bytes32=>IexecLibCore_v5.Deal)
+m_tasks: mapping(bytes32=>IexecLibCore_v5.Task)
+m_consensus: mapping(bytes32=>IexecLibCore_v5.Consensus)
+m_contributions: mapping(bytes32=>mapping(address=>IexecLibCore_v5.Contribution))
+m_workerScores: mapping(address=>uint256)
+m_teebroker: address
+m_callbackgas: uint256
+m_categories: IexecLibCore_v5.Category[]
+m_v3_iexecHub: IexecHubV3Interface
+m_v3_scoreImported: mapping(address=>bool)
+m_dealsBoost: mapping(bytes32=>IexecLibCore_v5.DealBoost)
+
+
-12->71
-
-
+6->67
+
+
-
+
+7
+
+<<Abstract>>
+IexecPocoCommon
+contracts/abstract/IexecPocoCommon.sol
+
+Internal:
+ _computeDealVolume(appOrderVolume: uint256, appOrderTypedDataHash: bytes32, hasDataset: bool, datasetOrderVolume: uint256, datasetOrderTypedDataHash: bytes32, workerpoolOrderVolume: uint256, workerpoolOrderTypedDataHash: bytes32, requestOrderVolume: uint256, requestOrderTypedDataHash: bytes32): uint256
+
+
+
+7->4
+
+
+
+
+
+55
+
+<<Library>>
+IexecLibOrders_v5
+contracts/libs/IexecLibOrders_v5.sol
+
+Public:
+ EIP712DOMAIN_TYPEHASH: bytes32
+ APPORDER_TYPEHASH: bytes32
+ DATASETORDER_TYPEHASH: bytes32
+ WORKERPOOLORDER_TYPEHASH: bytes32
+ REQUESTORDER_TYPEHASH: bytes32
+ APPORDEROPERATION_TYPEHASH: bytes32
+ DATASETORDEROPERATION_TYPEHASH: bytes32
+ WORKERPOOLORDEROPERATION_TYPEHASH: bytes32
+ REQUESTORDEROPERATION_TYPEHASH: bytes32
+
+Public:
+ hash(_domain: EIP712Domain): (domainhash: bytes32)
+ hash(_apporder: AppOrder): (apphash: bytes32)
+ hash(_datasetorder: DatasetOrder): (datasethash: bytes32)
+ hash(_workerpoolorder: WorkerpoolOrder): (workerpoolhash: bytes32)
+ hash(_requestorder: RequestOrder): (requesthash: bytes32)
+ hash(_apporderoperation: AppOrderOperation): bytes32
+ hash(_datasetorderoperation: DatasetOrderOperation): bytes32
+ hash(_workerpoolorderoperation: WorkerpoolOrderOperation): bytes32
+ hash(_requestorderoperation: RequestOrderOperation): bytes32
+
+
+
+7->55
+
+
+
+
+
+7->66
+
+
+
+
+
+7->67
+
+
+
+
+
+8
+
+<<Abstract>>
+SignatureVerifier
+contracts/abstract/SignatureVerifier.sol
+
+Internal:
+ _toTypedDataHash(structHash: bytes32): bytes32
+ _verifySignatureOfEthSignedMessage(account: address, message: bytes, signature: bytes): bool
+ _verifySignature(account: address, messageHash: bytes32, signature: bytes): bool
+ _verifyPresignature(account: address, messageHash: bytes32): bool
+ _verifySignatureOrPresignature(account: address, messageHash: bytes32, signature: bytes): bool
+ _isAccountAuthorizedByRestriction(restriction: address, account: address): bool
+
+
+
+8->4
+
+
+
+
+
+8->66
+
+
+
+
+
+8->67
+
+
+
+
+
16
-
-<<Struct>>
-Matching
-contracts/facets/IexecPoco1Facet.sol
-
-apporderHash: bytes32
-appOwner: address
-datasetorderHash: bytes32
-datasetOwner: address
-workerpoolorderHash: bytes32
-workerpoolOwner: address
-requestorderHash: bytes32
-hasDataset: bool
+
+<<Struct>>
+Matching
+contracts/facets/IexecPoco1Facet.sol
+
+apporderHash: bytes32
+appOwner: address
+datasetorderHash: bytes32
+datasetOwner: address
+workerpoolorderHash: bytes32
+workerpoolOwner: address
+requestorderHash: bytes32
+hasDataset: bool
-
+
17
-
-IexecPoco1Facet
-contracts/facets/IexecPoco1Facet.sol
-
-Private:
- _matchOrders(_apporder: IexecLibOrders_v5.AppOrder, _datasetorder: IexecLibOrders_v5.DatasetOrder, _workerpoolorder: IexecLibOrders_v5.WorkerpoolOrder, _requestorder: IexecLibOrders_v5.RequestOrder, _sponsor: address): bytes32
-External:
- verifySignature(_identity: address, _hash: bytes32, _signature: bytes): bool
- verifyPresignature(_identity: address, _hash: bytes32): bool
- verifyPresignatureOrSignature(_identity: address, _hash: bytes32, _signature: bytes): bool
- assertDatasetDealCompatibility(datasetOrder: IexecLibOrders_v5.DatasetOrder, dealId: bytes32)
- matchOrders(_apporder: IexecLibOrders_v5.AppOrder, _datasetorder: IexecLibOrders_v5.DatasetOrder, _workerpoolorder: IexecLibOrders_v5.WorkerpoolOrder, _requestorder: IexecLibOrders_v5.RequestOrder): bytes32
- sponsorMatchOrders(_apporder: IexecLibOrders_v5.AppOrder, _datasetorder: IexecLibOrders_v5.DatasetOrder, _workerpoolorder: IexecLibOrders_v5.WorkerpoolOrder, _requestorder: IexecLibOrders_v5.RequestOrder): bytes32
-
-
-
-17->5
-
-
+
+IexecPoco1Facet
+contracts/facets/IexecPoco1Facet.sol
+
+Private:
+ _matchOrders(_apporder: IexecLibOrders_v5.AppOrder, _datasetorder: IexecLibOrders_v5.DatasetOrder, _workerpoolorder: IexecLibOrders_v5.WorkerpoolOrder, _requestorder: IexecLibOrders_v5.RequestOrder, _sponsor: address): bytes32
+External:
+ verifySignature(_identity: address, _hash: bytes32, _signature: bytes): bool
+ verifyPresignature(_identity: address, _hash: bytes32): bool
+ verifyPresignatureOrSignature(_identity: address, _hash: bytes32, _signature: bytes): bool
+ assertDatasetDealCompatibility(datasetOrder: IexecLibOrders_v5.DatasetOrder, dealId: bytes32)
+ matchOrders(_apporder: IexecLibOrders_v5.AppOrder, _datasetorder: IexecLibOrders_v5.DatasetOrder, _workerpoolorder: IexecLibOrders_v5.WorkerpoolOrder, _requestorder: IexecLibOrders_v5.RequestOrder): bytes32
+ sponsorMatchOrders(_apporder: IexecLibOrders_v5.AppOrder, _datasetorder: IexecLibOrders_v5.DatasetOrder, _workerpoolorder: IexecLibOrders_v5.WorkerpoolOrder, _requestorder: IexecLibOrders_v5.RequestOrder): bytes32
+
+
+
+17->4
+
+
-
-
-17->12
-
-
+
+
+17->6
+
+
+
+
+
+17->7
+
+
+
+
+
+17->8
+
+
-
+
17->16
-
-
+
+
-
-
-22
-
-IexecPocoCommon
-contracts/facets/IexecPocoCommon.sol
-
-Internal:
- _computeDealVolume(appOrderVolume: uint256, appOrderTypedDataHash: bytes32, hasDataset: bool, datasetOrderVolume: uint256, datasetOrderTypedDataHash: bytes32, workerpoolOrderVolume: uint256, workerpoolOrderTypedDataHash: bytes32, requestOrderVolume: uint256, requestOrderTypedDataHash: bytes32): uint256
-
-
-
-17->22
-
-
+
+
+33
+
+<<Interface>>
+IexecPoco1
+contracts/interfaces/IexecPoco1.sol
+
+External:
+ verifySignature(address, bytes32, bytes): bool
+ verifyPresignature(address, bytes32): bool
+ verifyPresignatureOrSignature(address, bytes32, bytes): bool
+ assertDatasetDealCompatibility(datasetOrder: IexecLibOrders_v5.DatasetOrder, dealId: bytes32)
+ matchOrders(IexecLibOrders_v5.AppOrder, IexecLibOrders_v5.DatasetOrder, IexecLibOrders_v5.WorkerpoolOrder, IexecLibOrders_v5.RequestOrder): bytes32
+ sponsorMatchOrders(IexecLibOrders_v5.AppOrder, IexecLibOrders_v5.DatasetOrder, IexecLibOrders_v5.WorkerpoolOrder, IexecLibOrders_v5.RequestOrder): bytes32
+Public:
+ <<event>> SchedulerNotice(workerpool: address, dealid: bytes32)
+ <<event>> OrdersMatched(dealid: bytes32, appHash: bytes32, datasetHash: bytes32, workerpoolHash: bytes32, requestHash: bytes32, volume: uint256)
+ <<event>> DealSponsored(dealId: bytes32, sponsor: address)
+
+
+
+17->33
+
+
-
-
-24
-
-SignatureVerifier
-contracts/facets/SignatureVerifier.sol
-
-Internal:
- _toTypedDataHash(structHash: bytes32): bytes32
- _verifySignatureOfEthSignedMessage(account: address, message: bytes, signature: bytes): bool
- _verifySignature(account: address, messageHash: bytes32, signature: bytes): bool
- _verifyPresignature(account: address, messageHash: bytes32): bool
- _verifySignatureOrPresignature(account: address, messageHash: bytes32, signature: bytes): bool
- _isAccountAuthorizedByRestriction(restriction: address, account: address): bool
-
-
-
-17->24
-
-
+
+
+34
+
+<<Interface>>
+IexecPoco1Errors
+contracts/interfaces/IexecPoco1Errors.sol
-
-
-35
-
-<<Interface>>
-IexecPoco1
-contracts/interfaces/IexecPoco1.sol
-
-External:
- verifySignature(address, bytes32, bytes): bool
- verifyPresignature(address, bytes32): bool
- verifyPresignatureOrSignature(address, bytes32, bytes): bool
- assertDatasetDealCompatibility(datasetOrder: IexecLibOrders_v5.DatasetOrder, dealId: bytes32)
- matchOrders(IexecLibOrders_v5.AppOrder, IexecLibOrders_v5.DatasetOrder, IexecLibOrders_v5.WorkerpoolOrder, IexecLibOrders_v5.RequestOrder): bytes32
- sponsorMatchOrders(IexecLibOrders_v5.AppOrder, IexecLibOrders_v5.DatasetOrder, IexecLibOrders_v5.WorkerpoolOrder, IexecLibOrders_v5.RequestOrder): bytes32
-Public:
- <<event>> SchedulerNotice(workerpool: address, dealid: bytes32)
- <<event>> OrdersMatched(dealid: bytes32, appHash: bytes32, datasetHash: bytes32, workerpoolHash: bytes32, requestHash: bytes32, volume: uint256)
- <<event>> DealSponsored(dealId: bytes32, sponsor: address)
-
-
-
-17->35
-
-
+
+
+17->34
+
+
-
-
-36
-
-<<Interface>>
-IexecPoco1Errors
-contracts/interfaces/IexecPoco1Errors.sol
+
+
+41
+
+<<Library>>
+IexecLibCore_v5
+contracts/libs/IexecLibCore_v5.sol
-
-
-17->36
-
-
+
+
+17->41
+
+
-
-
-43
-
-<<Library>>
-IexecLibCore_v5
-contracts/libs/IexecLibCore_v5.sol
+
+
+48
+
+<<Struct>>
+Deal
+contracts/libs/IexecLibCore_v5.sol
+
+app: Resource
+dataset: Resource
+workerpool: Resource
+trust: uint256
+category: uint256
+tag: bytes32
+requester: address
+beneficiary: address
+callback: address
+params: string
+startTime: uint256
+botFirst: uint256
+botSize: uint256
+workerStake: uint256
+schedulerRewardRatio: uint256
+sponsor: address
+
+
+
+17->48
+
+
-
-
-17->43
-
-
+
+
+17->55
+
+
-
-
-50
-
-<<Struct>>
-Deal
-contracts/libs/IexecLibCore_v5.sol
-
-app: Resource
-dataset: Resource
-workerpool: Resource
-trust: uint256
-category: uint256
-tag: bytes32
-requester: address
-beneficiary: address
-callback: address
-params: string
-startTime: uint256
-botFirst: uint256
-botSize: uint256
-workerStake: uint256
-schedulerRewardRatio: uint256
-sponsor: address
-
-
-
-17->50
-
-
+
+
+58
+
+<<Struct>>
+AppOrder
+contracts/libs/IexecLibOrders_v5.sol
+
+app: address
+appprice: uint256
+volume: uint256
+tag: bytes32
+datasetrestrict: address
+workerpoolrestrict: address
+requesterrestrict: address
+salt: bytes32
+sign: bytes
+
+
+
+17->58
+
+
-
-
-57
-
-<<Library>>
-IexecLibOrders_v5
-contracts/libs/IexecLibOrders_v5.sol
-
-Public:
- EIP712DOMAIN_TYPEHASH: bytes32
- APPORDER_TYPEHASH: bytes32
- DATASETORDER_TYPEHASH: bytes32
- WORKERPOOLORDER_TYPEHASH: bytes32
- REQUESTORDER_TYPEHASH: bytes32
- APPORDEROPERATION_TYPEHASH: bytes32
- DATASETORDEROPERATION_TYPEHASH: bytes32
- WORKERPOOLORDEROPERATION_TYPEHASH: bytes32
- REQUESTORDEROPERATION_TYPEHASH: bytes32
-
-Public:
- hash(_domain: EIP712Domain): (domainhash: bytes32)
- hash(_apporder: AppOrder): (apphash: bytes32)
- hash(_datasetorder: DatasetOrder): (datasethash: bytes32)
- hash(_workerpoolorder: WorkerpoolOrder): (workerpoolhash: bytes32)
- hash(_requestorder: RequestOrder): (requesthash: bytes32)
- hash(_apporderoperation: AppOrderOperation): bytes32
- hash(_datasetorderoperation: DatasetOrderOperation): bytes32
- hash(_workerpoolorderoperation: WorkerpoolOrderOperation): bytes32
- hash(_requestorderoperation: RequestOrderOperation): bytes32
-
-
-
-17->57
-
-
+
+
+59
+
+<<Struct>>
+DatasetOrder
+contracts/libs/IexecLibOrders_v5.sol
+
+dataset: address
+datasetprice: uint256
+volume: uint256
+tag: bytes32
+apprestrict: address
+workerpoolrestrict: address
+requesterrestrict: address
+salt: bytes32
+sign: bytes
+
+
+
+17->59
+
+
-
+
60
-
-<<Struct>>
-AppOrder
-contracts/libs/IexecLibOrders_v5.sol
-
-app: address
-appprice: uint256
-volume: uint256
-tag: bytes32
-datasetrestrict: address
-workerpoolrestrict: address
-requesterrestrict: address
-salt: bytes32
-sign: bytes
+
+<<Struct>>
+WorkerpoolOrder
+contracts/libs/IexecLibOrders_v5.sol
+
+workerpool: address
+workerpoolprice: uint256
+volume: uint256
+tag: bytes32
+category: uint256
+trust: uint256
+apprestrict: address
+datasetrestrict: address
+requesterrestrict: address
+salt: bytes32
+sign: bytes
-
+
17->60
-
-
+
+
-
+
61
-
-<<Struct>>
-DatasetOrder
-contracts/libs/IexecLibOrders_v5.sol
-
-dataset: address
-datasetprice: uint256
-volume: uint256
-tag: bytes32
-apprestrict: address
-workerpoolrestrict: address
-requesterrestrict: address
-salt: bytes32
-sign: bytes
+
+<<Struct>>
+RequestOrder
+contracts/libs/IexecLibOrders_v5.sol
+
+app: address
+appmaxprice: uint256
+dataset: address
+datasetmaxprice: uint256
+workerpool: address
+workerpoolmaxprice: uint256
+requester: address
+volume: uint256
+tag: bytes32
+category: uint256
+trust: uint256
+beneficiary: address
+callback: address
+params: string
+salt: bytes32
+sign: bytes
-
+
17->61
-
-
-
-
-
-62
-
-<<Struct>>
-WorkerpoolOrder
-contracts/libs/IexecLibOrders_v5.sol
-
-workerpool: address
-workerpoolprice: uint256
-volume: uint256
-tag: bytes32
-category: uint256
-trust: uint256
-apprestrict: address
-datasetrestrict: address
-requesterrestrict: address
-salt: bytes32
-sign: bytes
-
-
-
-17->62
-
-
-
-
-
-63
-
-<<Struct>>
-RequestOrder
-contracts/libs/IexecLibOrders_v5.sol
-
-app: address
-appmaxprice: uint256
-dataset: address
-datasetmaxprice: uint256
-workerpool: address
-workerpoolmaxprice: uint256
-requester: address
-volume: uint256
-tag: bytes32
-category: uint256
-trust: uint256
-beneficiary: address
-callback: address
-params: string
-salt: bytes32
-sign: bytes
-
-
-
-17->63
-
-
-
-
-
-17->70
-
-
+
+
-
-
-17->71
-
-
+
+
+17->66
+
+
-
-
-84
-
-<<Interface>>
-IWorkerpool
-contracts/registries/workerpools/IWorkerpool.v8.sol
-
-External:
- owner(): address
- m_workerpoolDescription(): string
- m_schedulerRewardRatioPolicy(): uint256
- m_workerStakeRatioPolicy(): uint256
-
-
+
-17->84
-
-
+17->67
+
+
+
+
+
+83
+
+<<Interface>>
+IWorkerpool
+contracts/registries/workerpools/IWorkerpool.v8.sol
+
+External:
+ owner(): address
+ m_workerpoolDescription(): string
+ m_schedulerRewardRatioPolicy(): uint256
+ m_workerStakeRatioPolicy(): uint256
+
+
+
+17->83
+
+
-
+
18
-
-IexecPoco2Facet
-contracts/facets/IexecPoco2Facet.sol
-
-Internal:
- successWork(_dealid: bytes32, _taskid: bytes32)
- failedWork(_dealid: bytes32, _taskid: bytes32)
- checkConsensus(_taskid: bytes32, _consensus: bytes32)
- distributeRewards(_taskid: bytes32)
- distributeRewardsFast(_taskid: bytes32)
- executeCallback(_taskid: bytes32, _resultsCallback: bytes)
-External:
- contribute(_taskid: bytes32, _resultHash: bytes32, _resultSeal: bytes32, _enclaveChallenge: address, _enclaveSign: bytes, _authorizationSign: bytes)
- contributeAndFinalize(_taskid: bytes32, _resultDigest: bytes32, _results: bytes, _resultsCallback: bytes, _enclaveChallenge: address, _enclaveSign: bytes, _authorizationSign: bytes)
- reveal(_taskid: bytes32, _resultDigest: bytes32)
- reopen(_taskid: bytes32) <<onlyScheduler>>
- finalize(_taskid: bytes32, _results: bytes, _resultsCallback: bytes) <<onlyScheduler>>
- initializeArray(_dealid: bytes32[], _idx: uint256[]): bool
- claimArray(_taskid: bytes32[]): bool
- initializeAndClaimArray(_dealid: bytes32[], _idx: uint256[]): bool
-Public:
- <<modifier>> onlyScheduler(_taskId: bytes32)
- initialize(_dealid: bytes32, idx: uint256): bytes32
- claim(_taskid: bytes32)
-
-
-
-18->5
-
-
+
+IexecPoco2Facet
+contracts/facets/IexecPoco2Facet.sol
+
+Internal:
+ successWork(_dealid: bytes32, _taskid: bytes32)
+ failedWork(_dealid: bytes32, _taskid: bytes32)
+ checkConsensus(_taskid: bytes32, _consensus: bytes32)
+ distributeRewards(_taskid: bytes32)
+ distributeRewardsFast(_taskid: bytes32)
+ executeCallback(_taskid: bytes32, _resultsCallback: bytes)
+External:
+ contribute(_taskid: bytes32, _resultHash: bytes32, _resultSeal: bytes32, _enclaveChallenge: address, _enclaveSign: bytes, _authorizationSign: bytes)
+ contributeAndFinalize(_taskid: bytes32, _resultDigest: bytes32, _results: bytes, _resultsCallback: bytes, _enclaveChallenge: address, _enclaveSign: bytes, _authorizationSign: bytes)
+ reveal(_taskid: bytes32, _resultDigest: bytes32)
+ reopen(_taskid: bytes32) <<onlyScheduler>>
+ finalize(_taskid: bytes32, _results: bytes, _resultsCallback: bytes) <<onlyScheduler>>
+ initializeArray(_dealid: bytes32[], _idx: uint256[]): bool
+ claimArray(_taskid: bytes32[]): bool
+ initializeAndClaimArray(_dealid: bytes32[], _idx: uint256[]): bool
+Public:
+ <<modifier>> onlyScheduler(_taskId: bytes32)
+ initialize(_dealid: bytes32, idx: uint256): bytes32
+ claim(_taskid: bytes32)
+
+
+
+18->4
+
+
-
-
-18->12
-
-
+
+
+18->6
+
+
-
-
-18->24
-
-
+
+
+18->8
+
+
-
-
-37
-
-<<Interface>>
-IexecPoco2
-contracts/interfaces/IexecPoco2.sol
-
-External:
- initialize(dealId: bytes32, index: uint256): bytes32
- claim(taskId: bytes32)
- contribute(taskId: bytes32, resultHash: bytes32, resultSeal: bytes32, enclaveChallenge: address, enclaveSign: bytes, authorizationSign: bytes)
- contributeAndFinalize(taskId: bytes32, resultDigest: bytes32, results: bytes, resultsCallback: bytes, enclaveChallenge: address, enclaveSign: bytes, authorizationSign: bytes)
- reveal(taskId: bytes32, resultDigest: bytes32)
- reopen(taskId: bytes32)
- finalize(taskId: bytes32, results: bytes, resultsCallback: bytes)
- initializeArray(dealIds: bytes32[], indexes: uint256[]): bool
- claimArray(taskIds: bytes32[]): bool
- initializeAndClaimArray(dealIds: bytes32[], indexes: uint256[]): bool
-Public:
- <<event>> AccurateContribution(worker: address, taskid: bytes32)
- <<event>> FaultyContribution(worker: address, taskid: bytes32)
- <<event>> TaskInitialize(taskid: bytes32, workerpool: address)
- <<event>> TaskContribute(taskid: bytes32, worker: address, hash: bytes32)
- <<event>> TaskConsensus(taskid: bytes32, consensus: bytes32)
- <<event>> TaskReveal(taskid: bytes32, worker: address, digest: bytes32)
- <<event>> TaskReopen(taskid: bytes32)
- <<event>> TaskFinalize(taskid: bytes32, results: bytes)
- <<event>> TaskClaimed(taskid: bytes32)
-
-
-
-18->37
-
-
+
+
+35
+
+<<Interface>>
+IexecPoco2
+contracts/interfaces/IexecPoco2.sol
+
+External:
+ initialize(dealId: bytes32, index: uint256): bytes32
+ claim(taskId: bytes32)
+ contribute(taskId: bytes32, resultHash: bytes32, resultSeal: bytes32, enclaveChallenge: address, enclaveSign: bytes, authorizationSign: bytes)
+ contributeAndFinalize(taskId: bytes32, resultDigest: bytes32, results: bytes, resultsCallback: bytes, enclaveChallenge: address, enclaveSign: bytes, authorizationSign: bytes)
+ reveal(taskId: bytes32, resultDigest: bytes32)
+ reopen(taskId: bytes32)
+ finalize(taskId: bytes32, results: bytes, resultsCallback: bytes)
+ initializeArray(dealIds: bytes32[], indexes: uint256[]): bool
+ claimArray(taskIds: bytes32[]): bool
+ initializeAndClaimArray(dealIds: bytes32[], indexes: uint256[]): bool
+Public:
+ <<event>> AccurateContribution(worker: address, taskid: bytes32)
+ <<event>> FaultyContribution(worker: address, taskid: bytes32)
+ <<event>> TaskInitialize(taskid: bytes32, workerpool: address)
+ <<event>> TaskContribute(taskid: bytes32, worker: address, hash: bytes32)
+ <<event>> TaskConsensus(taskid: bytes32, consensus: bytes32)
+ <<event>> TaskReveal(taskid: bytes32, worker: address, digest: bytes32)
+ <<event>> TaskReopen(taskid: bytes32)
+ <<event>> TaskFinalize(taskid: bytes32, results: bytes)
+ <<event>> TaskClaimed(taskid: bytes32)
+
+
+
+18->35
+
+
-
-
-18->43
-
-
+
+
+18->41
+
+
-
-
-18->50
-
-
+
+
+18->48
+
+
-
-
-53
-
-<<Struct>>
-Task
-contracts/libs/IexecLibCore_v5.sol
-
-status: TaskStatusEnum
-dealid: bytes32
-idx: uint256
-timeref: uint256
-contributionDeadline: uint256
-revealDeadline: uint256
-finalDeadline: uint256
-consensusValue: bytes32
-revealCounter: uint256
-winnerCounter: uint256
-contributors: address[]
-resultDigest: bytes32
-results: bytes
-resultsTimestamp: uint256
-resultsCallback: bytes
-
-
-
-18->53
-
-
+
+
+51
+
+<<Struct>>
+Task
+contracts/libs/IexecLibCore_v5.sol
+
+status: TaskStatusEnum
+dealid: bytes32
+idx: uint256
+timeref: uint256
+contributionDeadline: uint256
+revealDeadline: uint256
+finalDeadline: uint256
+consensusValue: bytes32
+revealCounter: uint256
+winnerCounter: uint256
+contributors: address[]
+resultDigest: bytes32
+results: bytes
+resultsTimestamp: uint256
+resultsCallback: bytes
+
+
+
+18->51
+
+
+
+
+
+52
+
+<<Struct>>
+Consensus
+contracts/libs/IexecLibCore_v5.sol
+
+group: mapping(bytes32=>uint256)
+total: uint256
+
+
+
+18->52
+
+
-
+
54
-
-<<Struct>>
-Consensus
-contracts/libs/IexecLibCore_v5.sol
-
-group: mapping(bytes32=>uint256)
-total: uint256
+
+<<Struct>>
+Contribution
+contracts/libs/IexecLibCore_v5.sol
+
+status: ContributionStatusEnum
+resultHash: bytes32
+resultSeal: bytes32
+enclaveChallenge: address
+weight: uint256
-
+
18->54
-
-
+
+
-
-
-56
-
-<<Struct>>
-Contribution
-contracts/libs/IexecLibCore_v5.sol
-
-status: ContributionStatusEnum
-resultHash: bytes32
-resultSeal: bytes32
-enclaveChallenge: address
-weight: uint256
-
-
-
-18->56
-
-
-
-
-
-18->70
-
-
-
-
-
-18->71
-
-
-
-
+
-22->5
-
-
+18->66
+
+
-
+
-22->57
-
-
-
-
-
-22->70
-
-
+18->67
+
+
-
-
-22->71
-
-
-
-
-
-24->5
-
-
-
-
-
-24->70
-
-
-
-
-
-24->71
-
-
-
-
+
+
+31
+
+<<Interface>>
+IexecHubV3Interface
+contracts/interfaces/IexecHubV3Interface.sol
+
+External:
+ viewScore(worker: address): uint256
+
+
-35->57
-
-
+33->55
+
+
-
+
-35->60
-
-
+33->58
+
+
-
+
-35->61
-
-
+33->59
+
+
-
+
-35->62
-
-
+33->60
+
+
-
+
-35->63
-
-
+33->61
+
+
-
-
-49
-
-<<Struct>>
-Resource
-contracts/libs/IexecLibCore_v5.sol
-
-pointer: address
-owner: address
-price: uint256
-
-
+
+
+47
+
+<<Struct>>
+Resource
+contracts/libs/IexecLibCore_v5.sol
+
+pointer: address
+owner: address
+price: uint256
+
+
-49->43
-
-
+47->41
+
+
-
+
-50->43
-
-
+48->41
+
+
-
+
-50->49
-
-
+48->47
+
+
-
-
-52
-
-<<Enum>>
-TaskStatusEnum
-contracts/libs/IexecLibCore_v5.sol
-
-UNSET: 0
-ACTIVE: 1
-REVEALING: 2
-COMPLETED: 3
-FAILED: 4
-
-
+
+
+50
+
+<<Enum>>
+TaskStatusEnum
+contracts/libs/IexecLibCore_v5.sol
+
+UNSET: 0
+ACTIVE: 1
+REVEALING: 2
+COMPLETED: 3
+FAILED: 4
+
+
-52->43
-
-
+50->41
+
+
-
+
-53->43
-
-
+51->41
+
+
-
+
-53->52
-
-
+51->50
+
+
-
+
-54->43
-
-
+52->41
+
+
-
-
-55
-
-<<Enum>>
-ContributionStatusEnum
-contracts/libs/IexecLibCore_v5.sol
-
-UNSET: 0
-CONTRIBUTED: 1
-PROVED: 2
-REJECTED: 3
-
-
+
+
+53
+
+<<Enum>>
+ContributionStatusEnum
+contracts/libs/IexecLibCore_v5.sol
+
+UNSET: 0
+CONTRIBUTED: 1
+PROVED: 2
+REJECTED: 3
+
+
-55->43
-
-
+53->41
+
+
-
+
-56->43
-
-
+54->41
+
+
-
+
-56->55
-
-
+54->53
+
+
-
-
-59
-
-<<Struct>>
-EIP712Domain
-contracts/libs/IexecLibOrders_v5.sol
-
-name: string
-version: string
-chainId: uint256
-verifyingContract: address
-
-
+
+
+57
+
+<<Struct>>
+EIP712Domain
+contracts/libs/IexecLibOrders_v5.sol
+
+name: string
+version: string
+chainId: uint256
+verifyingContract: address
+
+
-57->59
-
-
+55->57
+
+
-
+
-57->60
-
-
+55->58
+
+
-
+
-57->61
-
-
+55->59
+
+
-
+
-57->62
-
-
+55->60
+
+
-
+
-57->63
-
-
+55->61
+
+
-
-
-64
-
-<<Struct>>
-AppOrderOperation
-contracts/libs/IexecLibOrders_v5.sol
-
-order: AppOrder
-operation: OrderOperationEnum
-sign: bytes
-
-
+
+
+62
+
+<<Struct>>
+AppOrderOperation
+contracts/libs/IexecLibOrders_v5.sol
+
+order: AppOrder
+operation: OrderOperationEnum
+sign: bytes
+
+
-57->64
-
-
+55->62
+
+
-
-
-65
-
-<<Struct>>
-DatasetOrderOperation
-contracts/libs/IexecLibOrders_v5.sol
-
-order: DatasetOrder
-operation: OrderOperationEnum
-sign: bytes
-
-
+
+
+63
+
+<<Struct>>
+DatasetOrderOperation
+contracts/libs/IexecLibOrders_v5.sol
+
+order: DatasetOrder
+operation: OrderOperationEnum
+sign: bytes
+
+
-57->65
-
-
+55->63
+
+
-
-
-66
-
-<<Struct>>
-WorkerpoolOrderOperation
-contracts/libs/IexecLibOrders_v5.sol
-
-order: WorkerpoolOrder
-operation: OrderOperationEnum
-sign: bytes
-
-
+
+
+64
+
+<<Struct>>
+WorkerpoolOrderOperation
+contracts/libs/IexecLibOrders_v5.sol
+
+order: WorkerpoolOrder
+operation: OrderOperationEnum
+sign: bytes
+
+
-57->66
-
-
+55->64
+
+
-
-
-67
-
-<<Struct>>
-RequestOrderOperation
-contracts/libs/IexecLibOrders_v5.sol
-
-order: RequestOrder
-operation: OrderOperationEnum
-sign: bytes
-
-
+
+
+65
+
+<<Struct>>
+RequestOrderOperation
+contracts/libs/IexecLibOrders_v5.sol
+
+order: RequestOrder
+operation: OrderOperationEnum
+sign: bytes
+
+
-57->67
-
-
+55->65
+
+
-
-
-58
-
-<<Enum>>
-OrderOperationEnum
-contracts/libs/IexecLibOrders_v5.sol
-
-SIGN: 0
-CLOSE: 1
-
-
+
+
+56
+
+<<Enum>>
+OrderOperationEnum
+contracts/libs/IexecLibOrders_v5.sol
+
+SIGN: 0
+CLOSE: 1
+
+
-58->57
-
-
+56->55
+
+
-
+
-59->57
-
-
+57->55
+
+
-
+
-60->57
-
-
+58->55
+
+
-
+
-61->57
-
-
+59->55
+
+
-
+
-62->57
-
-
+60->55
+
+
-
+
-63->57
-
-
+61->55
+
+
-
+
-64->57
-
-
+62->55
+
+
-
+
-64->58
-
-
+62->56
+
+
-
+
-64->60
-
-
+62->58
+
+
-
+
-65->57
-
-
+63->55
+
+
-
+
-65->58
-
-
+63->56
+
+
-
+
-65->61
-
-
+63->59
+
+
-
+
-66->57
-
-
+64->55
+
+
-
+
-66->58
-
-
+64->56
+
+
-
+
-66->62
-
-
+64->60
+
+
-
+
-67->57
-
-
+65->55
+
+
-
+
-67->58
-
-
+65->56
+
+
-
+
-67->63
-
-
+65->61
+
+
-
+
-70->71
-
-
+66->67
+
+
-
+
+
+67->31
+
+
+
+
-71->43
-
-
+67->41
+
+
-
+
-71->70
-
-
+67->66
+
+
-
-
-72
-
-<<Interface>>
-IRegistry
-contracts/libs/PocoStorageLib.v8.sol
-
-External:
- isRegistered(_entry: address): bool
-
-
+
+
+68
+
+<<Interface>>
+IRegistry
+contracts/registries/IRegistry.sol
+
+External:
+ isRegistered(_entry: address): bool
+
+
-71->72
-
-
+67->68
+
+
diff --git a/docs/uml/class-uml-dir-facets.svg b/docs/uml/class-uml-dir-facets.svg
index 9bb07e18d..6cd63f477 100644
--- a/docs/uml/class-uml-dir-facets.svg
+++ b/docs/uml/class-uml-dir-facets.svg
@@ -4,588 +4,275 @@
-
-
+
+
UmlClassDiagram
-
+
0
-
-<<Abstract>>
-FacetBase
-contracts/facets/FacetBase.sol
-
-Internal:
- CONTRIBUTION_DEADLINE_RATIO: uint256
- REVEAL_DEADLINE_RATIO: uint256
- FINAL_DEADLINE_RATIO: uint256
- WORKERPOOL_STAKE_RATIO: uint256
- KITTY_RATIO: uint256
- KITTY_MIN: uint256
- KITTY_ADDRESS: address
- GROUPMEMBER_PURPOSE: uint256
-
-Internal:
- owner(): address
- _msgSender(): address
-Public:
- <<modifier>> onlyOwner()
+
+IexecAccessorsABILegacyFacet
+contracts/facets/IexecAccessorsABILegacyFacet.sol
+
+External:
+ viewDealABILegacy_pt1(_id: bytes32): (address, address, uint256, address, address, uint256, address, address, uint256)
+ viewDealABILegacy_pt2(_id: bytes32): (uint256, bytes32, address, address, address, string)
+ viewConfigABILegacy(_id: bytes32): (uint256, uint256, uint256, uint256, uint256, uint256)
+ viewAccountABILegacy(account: address): (uint256, uint256)
+ viewTaskABILegacy(_taskid: bytes32): (IexecLibCore_v5.TaskStatusEnum, bytes32, uint256, uint256, uint256, uint256, uint256, bytes32, uint256, uint256, address[], bytes)
+ viewContributionABILegacy(_taskid: bytes32, _worker: address): (IexecLibCore_v5.ContributionStatusEnum, bytes32, bytes32, address)
+ viewCategoryABILegacy(_catid: uint256): (string, string, uint256)
1
-
-<<Abstract>>
-FacetBase
-contracts/facets/FacetBase.v8.sol
-
-Internal:
- CONTRIBUTION_DEADLINE_RATIO: uint256
- REVEAL_DEADLINE_RATIO: uint256
- FINAL_DEADLINE_RATIO: uint256
- WORKERPOOL_STAKE_RATIO: uint256
- KITTY_RATIO: uint256
- KITTY_MIN: uint256
- KITTY_ADDRESS: address
- GROUPMEMBER_PURPOSE: uint256
-
-Internal:
- _msgSender(): address
+
+IexecCategoryManagerFacet
+contracts/facets/IexecCategoryManagerFacet.sol
+
+External:
+ createCategory(name: string, description: string, workClockTimeRef: uint256): uint256 <<onlyOwner>>
2
-
-IexecAccessorsABILegacyFacet
-contracts/facets/IexecAccessorsABILegacyFacet.sol
-
-External:
- viewDealABILegacy_pt1(_id: bytes32): (address, address, uint256, address, address, uint256, address, address, uint256)
- viewDealABILegacy_pt2(_id: bytes32): (uint256, bytes32, address, address, address, string)
- viewConfigABILegacy(_id: bytes32): (uint256, uint256, uint256, uint256, uint256, uint256)
- viewAccountABILegacy(account: address): (uint256, uint256)
- viewTaskABILegacy(_taskid: bytes32): (IexecLibCore_v5.TaskStatusEnum, bytes32, uint256, uint256, uint256, uint256, uint256, bytes32, uint256, uint256, address[], bytes)
- viewContributionABILegacy(_taskid: bytes32, _worker: address): (IexecLibCore_v5.ContributionStatusEnum, bytes32, bytes32, address)
- viewCategoryABILegacy(_catid: uint256): (string, string, uint256)
-
-
-
-2->0
-
-
+
+IexecConfigurationExtraFacet
+contracts/facets/IexecConfigurationExtraFacet.sol
+
+External:
+ changeRegistries(_appregistryAddress: address, _datasetregistryAddress: address, _workerpoolregistryAddress: address) <<onlyOwner>>
3
-
-IexecCategoryManagerFacet
-contracts/facets/IexecCategoryManagerFacet.sol
-
-External:
- createCategory(name: string, description: string, workClockTimeRef: uint256): uint256 <<onlyOwner>>
-
-
-
-3->0
-
-
+
+IexecConfigurationFacet
+contracts/facets/IexecConfigurationFacet.sol
+
+Internal:
+ _chainId(): (id: uint256)
+ _domain(): IexecLibOrders_v5.EIP712Domain
+External:
+ configure(_token: address, _name: string, _symbol: string, _decimal: uint8, _appregistryAddress: address, _datasetregistryAddress: address, _workerpoolregistryAddress: address, _v3_iexecHubAddress: address) <<onlyOwner>>
+ domain(): IexecLibOrders_v5.EIP712Domain
+ updateDomainSeparator()
+ importScore(_worker: address)
+ setTeeBroker(_teebroker: address) <<onlyOwner>>
+ setCallbackGas(_callbackgas: uint256) <<onlyOwner>>
4
-
-IexecConfigurationExtraFacet
-contracts/facets/IexecConfigurationExtraFacet.sol
-
-External:
- changeRegistries(_appregistryAddress: address, _datasetregistryAddress: address, _workerpoolregistryAddress: address) <<onlyOwner>>
-
-
-
-4->0
-
-
+
+IexecEscrowNativeFacet
+contracts/facets/IexecEscrowNativeFacet.sol
+
+Internal:
+ nRLCtoWei: uint256
+
+Internal:
+ _deposit(target: address)
+ _withdraw(to: address, value: uint256)
+External:
+ <<payable>> null()
+ <<payable>> null()
+ <<payable>> deposit(): bool
+ <<payable>> depositFor(target: address): bool
+ <<payable>> depositForArray(amounts: uint256[], targets: address[]): bool
+ withdraw(amount: uint256): bool
+ withdrawTo(amount: uint256, target: address): bool
+ recover(): uint256 <<onlyOwner>>
5
-
-IexecConfigurationFacet
-contracts/facets/IexecConfigurationFacet.sol
-
-Internal:
- _chainId(): (id: uint256)
- _domain(): IexecLibOrders_v5.EIP712Domain
-External:
- configure(_token: address, _name: string, _symbol: string, _decimal: uint8, _appregistryAddress: address, _datasetregistryAddress: address, _workerpoolregistryAddress: address, _v3_iexecHubAddress: address) <<onlyOwner>>
- domain(): IexecLibOrders_v5.EIP712Domain
- updateDomainSeparator()
- importScore(_worker: address)
- setTeeBroker(_teebroker: address) <<onlyOwner>>
- setCallbackGas(_callbackgas: uint256) <<onlyOwner>>
-
-
-
-5->0
-
-
+
+IexecEscrowTokenFacet
+contracts/facets/IexecEscrowTokenFacet.sol
+
+Internal:
+ _executeOperation(sender: address, data: bytes)
+ _validateMatchOrders(sender: address, data: bytes)
+ _deposit(from: address, amount: uint256)
+ _withdraw(to: address, amount: uint256)
+External:
+ <<payable>> null()
+ <<payable>> null()
+ deposit(amount: uint256): bool
+ depositFor(amount: uint256, target: address): bool
+ depositForArray(amounts: uint256[], targets: address[]): bool
+ withdraw(amount: uint256): bool
+ withdrawTo(amount: uint256, target: address): bool
+ recover(): uint256 <<onlyOwner>>
+ receiveApproval(sender: address, amount: uint256, token: address, data: bytes): bool
6
-
-IexecERC20Core
-contracts/facets/IexecERC20Core.sol
-
-Internal:
- _transferUnchecked(sender: address, recipient: address, amount: uint256)
- _transfer(sender: address, recipient: address, amount: uint256)
- _mint(account: address, amount: uint256)
- _burn(account: address, amount: uint256)
- _approve(owner: address, spender: address, amount: uint256)
-Public:
- <<event>> Transfer(from: address, to: address, value: uint256)
- <<event>> Approval(owner: address, spender: address, value: uint256)
-
-
-
-6->0
-
-
+
+IexecOrderManagementFacet
+contracts/facets/IexecOrderManagementFacet.sol
+
+External:
+ manageAppOrder(_apporderoperation: IexecLibOrders_v5.AppOrderOperation)
+ manageDatasetOrder(_datasetorderoperation: IexecLibOrders_v5.DatasetOrderOperation)
+ manageWorkerpoolOrder(_workerpoolorderoperation: IexecLibOrders_v5.WorkerpoolOrderOperation)
+ manageRequestOrder(_requestorderoperation: IexecLibOrders_v5.RequestOrderOperation)
7
-
-IexecERC20Facet
-contracts/facets/IexecERC20Facet.sol
-
-External:
- transfer(recipient: address, amount: uint256): bool
- approve(spender: address, value: uint256): bool
- approveAndCall(spender: address, value: uint256, extraData: bytes): bool
- transferFrom(sender: address, recipient: address, amount: uint256): bool
- increaseAllowance(spender: address, addedValue: uint256): bool
- decreaseAllowance(spender: address, subtractedValue: uint256): bool
-
-
-
-7->0
-
-
-
-
-
-7->6
-
-
+
+<<Struct>>
+Matching
+contracts/facets/IexecPoco1Facet.sol
+
+apporderHash: bytes32
+appOwner: address
+datasetorderHash: bytes32
+datasetOwner: address
+workerpoolorderHash: bytes32
+workerpoolOwner: address
+requestorderHash: bytes32
+hasDataset: bool
8
-
-IexecEscrow
-contracts/facets/IexecEscrow.v8.sol
-
-Private:
- _transfer(from: address, to: address, value: uint256)
-Internal:
- lock(account: address, value: uint256)
- unlock(account: address, value: uint256)
- reward(account: address, value: uint256, ref: bytes32)
- seize(account: address, value: uint256, ref: bytes32)
-Public:
- <<event>> Transfer(from: address, to: address, value: uint256)
- <<event>> Lock(owner: address, amount: uint256)
- <<event>> Unlock(owner: address, amount: uint256)
- <<event>> Reward(owner: address, amount: uint256, ref: bytes32)
- <<event>> Seize(owner: address, amount: uint256, ref: bytes32)
-
-
-
-8->1
-
-
+
+IexecPoco1Facet
+contracts/facets/IexecPoco1Facet.sol
+
+Private:
+ _matchOrders(_apporder: IexecLibOrders_v5.AppOrder, _datasetorder: IexecLibOrders_v5.DatasetOrder, _workerpoolorder: IexecLibOrders_v5.WorkerpoolOrder, _requestorder: IexecLibOrders_v5.RequestOrder, _sponsor: address): bytes32
+External:
+ verifySignature(_identity: address, _hash: bytes32, _signature: bytes): bool
+ verifyPresignature(_identity: address, _hash: bytes32): bool
+ verifyPresignatureOrSignature(_identity: address, _hash: bytes32, _signature: bytes): bool
+ assertDatasetDealCompatibility(datasetOrder: IexecLibOrders_v5.DatasetOrder, dealId: bytes32)
+ matchOrders(_apporder: IexecLibOrders_v5.AppOrder, _datasetorder: IexecLibOrders_v5.DatasetOrder, _workerpoolorder: IexecLibOrders_v5.WorkerpoolOrder, _requestorder: IexecLibOrders_v5.RequestOrder): bytes32
+ sponsorMatchOrders(_apporder: IexecLibOrders_v5.AppOrder, _datasetorder: IexecLibOrders_v5.DatasetOrder, _workerpoolorder: IexecLibOrders_v5.WorkerpoolOrder, _requestorder: IexecLibOrders_v5.RequestOrder): bytes32
+
+
+
+8->7
+
+
9
-
-IexecEscrowNativeFacet
-contracts/facets/IexecEscrowNativeFacet.sol
-
-Internal:
- nRLCtoWei: uint256
-
-Internal:
- _deposit(target: address)
- _withdraw(to: address, value: uint256)
-External:
- <<payable>> null()
- <<payable>> null()
- <<payable>> deposit(): bool
- <<payable>> depositFor(target: address): bool
- <<payable>> depositForArray(amounts: uint256[], targets: address[]): bool
- withdraw(amount: uint256): bool
- withdrawTo(amount: uint256, target: address): bool
- recover(): uint256 <<onlyOwner>>
-
-
-
-9->0
-
-
-
-
-
-9->6
-
-
+
+IexecPoco2Facet
+contracts/facets/IexecPoco2Facet.sol
+
+Internal:
+ successWork(_dealid: bytes32, _taskid: bytes32)
+ failedWork(_dealid: bytes32, _taskid: bytes32)
+ checkConsensus(_taskid: bytes32, _consensus: bytes32)
+ distributeRewards(_taskid: bytes32)
+ distributeRewardsFast(_taskid: bytes32)
+ executeCallback(_taskid: bytes32, _resultsCallback: bytes)
+External:
+ contribute(_taskid: bytes32, _resultHash: bytes32, _resultSeal: bytes32, _enclaveChallenge: address, _enclaveSign: bytes, _authorizationSign: bytes)
+ contributeAndFinalize(_taskid: bytes32, _resultDigest: bytes32, _results: bytes, _resultsCallback: bytes, _enclaveChallenge: address, _enclaveSign: bytes, _authorizationSign: bytes)
+ reveal(_taskid: bytes32, _resultDigest: bytes32)
+ reopen(_taskid: bytes32) <<onlyScheduler>>
+ finalize(_taskid: bytes32, _results: bytes, _resultsCallback: bytes) <<onlyScheduler>>
+ initializeArray(_dealid: bytes32[], _idx: uint256[]): bool
+ claimArray(_taskid: bytes32[]): bool
+ initializeAndClaimArray(_dealid: bytes32[], _idx: uint256[]): bool
+Public:
+ <<modifier>> onlyScheduler(_taskId: bytes32)
+ initialize(_dealid: bytes32, idx: uint256): bytes32
+ claim(_taskid: bytes32)
10
-
-IexecEscrowTokenFacet
-contracts/facets/IexecEscrowTokenFacet.sol
-
-Internal:
- _deposit(from: address, amount: uint256)
- _withdraw(to: address, amount: uint256)
-External:
- <<payable>> null()
- <<payable>> null()
- deposit(amount: uint256): bool
- depositFor(amount: uint256, target: address): bool
- depositForArray(amounts: uint256[], targets: address[]): bool
- withdraw(amount: uint256): bool
- withdrawTo(amount: uint256, target: address): bool
- recover(): uint256 <<onlyOwner>>
- receiveApproval(sender: address, amount: uint256, token: address, bytes): bool
-
-
-
-10->0
-
-
-
-
-
-10->6
-
-
+
+IexecPocoAccessorsFacet
+contracts/facets/IexecPocoAccessorsFacet.sol
+
+External:
+ viewDeal(id: bytes32): (deal: IexecLibCore_v5.Deal)
+ viewTask(id: bytes32): IexecLibCore_v5.Task
+ computeDealVolume(appOrder: IexecLibOrders_v5.AppOrder, datasetOrder: IexecLibOrders_v5.DatasetOrder, workerpoolOrder: IexecLibOrders_v5.WorkerpoolOrder, requestOrder: IexecLibOrders_v5.RequestOrder): uint256
+ viewConsumed(_id: bytes32): (consumed: uint256)
+ viewPresigned(_id: bytes32): (signer: address)
+ viewContribution(_taskid: bytes32, _worker: address): IexecLibCore_v5.Contribution
+ viewScore(_worker: address): uint256
+ resultFor(id: bytes32): bytes
+ name(): string
+ symbol(): string
+ decimals(): uint8
+ totalSupply(): uint256
+ balanceOf(account: address): uint256
+ frozenOf(account: address): uint256
+ allowance(account: address, spender: address): uint256
+ viewAccount(account: address): IexecLibCore_v5.Account
+ token(): address
+ viewCategory(_catid: uint256): (category: IexecLibCore_v5.Category)
+ countCategory(): (count: uint256)
+ appregistry(): IRegistry
+ datasetregistry(): IRegistry
+ workerpoolregistry(): IRegistry
+ teebroker(): address
+ callbackgas(): uint256
+ viewDataset(dataset: address): IexecLibCore_v5.DatasetInfo
+ viewApp(app: address): IexecLibCore_v5.AppInfo
+ viewWorkerpool(workerpool: address): IexecLibCore_v5.WorkerpoolInfo
+ contribution_deadline_ratio(): uint256
+ reveal_deadline_ratio(): uint256
+ final_deadline_ratio(): uint256
+ workerpool_stake_ratio(): uint256
+ kitty_ratio(): uint256
+ kitty_min(): uint256
+ kitty_address(): address
+ groupmember_purpose(): uint256
+ eip712domain_separator(): bytes32
11
-
-IexecOrderManagementFacet
-contracts/facets/IexecOrderManagementFacet.sol
-
-External:
- manageAppOrder(_apporderoperation: IexecLibOrders_v5.AppOrderOperation)
- manageDatasetOrder(_datasetorderoperation: IexecLibOrders_v5.DatasetOrderOperation)
- manageWorkerpoolOrder(_workerpoolorderoperation: IexecLibOrders_v5.WorkerpoolOrderOperation)
- manageRequestOrder(_requestorderoperation: IexecLibOrders_v5.RequestOrderOperation)
-
-
-
-11->1
-
-
-
-
-
-20
-
-SignatureVerifier
-contracts/facets/SignatureVerifier.sol
-
-Internal:
- _toTypedDataHash(structHash: bytes32): bytes32
- _verifySignatureOfEthSignedMessage(account: address, message: bytes, signature: bytes): bool
- _verifySignature(account: address, messageHash: bytes32, signature: bytes): bool
- _verifyPresignature(account: address, messageHash: bytes32): bool
- _verifySignatureOrPresignature(account: address, messageHash: bytes32, signature: bytes): bool
- _isAccountAuthorizedByRestriction(restriction: address, account: address): bool
-
-
-
-11->20
-
-
+
+IexecPocoBoostAccessorsFacet
+contracts/facets/IexecPocoBoostAccessorsFacet.sol
+
+External:
+ viewDealBoost(id: bytes32): (deal: IexecLibCore_v5.DealBoost)
12
-
-<<Struct>>
-Matching
-contracts/facets/IexecPoco1Facet.sol
-
-apporderHash: bytes32
-appOwner: address
-datasetorderHash: bytes32
-datasetOwner: address
-workerpoolorderHash: bytes32
-workerpoolOwner: address
-requestorderHash: bytes32
-hasDataset: bool
+
+IexecPocoBoostFacet
+contracts/facets/IexecPocoBoostFacet.sol
+
+Private:
+ _matchOrdersBoost(appOrder: IexecLibOrders_v5.AppOrder, datasetOrder: IexecLibOrders_v5.DatasetOrder, workerpoolOrder: IexecLibOrders_v5.WorkerpoolOrder, requestOrder: IexecLibOrders_v5.RequestOrder, sponsor: address): bytes32
+ requireTaskExistsAndUnset(taskStatus: IexecLibCore_v5.TaskStatusEnum, taskIndex: uint256, botSize: uint16)
+External:
+ matchOrdersBoost(appOrder: IexecLibOrders_v5.AppOrder, datasetOrder: IexecLibOrders_v5.DatasetOrder, workerpoolOrder: IexecLibOrders_v5.WorkerpoolOrder, requestOrder: IexecLibOrders_v5.RequestOrder): bytes32
+ sponsorMatchOrdersBoost(appOrder: IexecLibOrders_v5.AppOrder, datasetOrder: IexecLibOrders_v5.DatasetOrder, workerpoolOrder: IexecLibOrders_v5.WorkerpoolOrder, requestOrder: IexecLibOrders_v5.RequestOrder): bytes32
+ pushResultBoost(dealId: bytes32, index: uint256, results: bytes, resultsCallback: bytes, authorizationSign: bytes, enclaveChallenge: address, enclaveSign: bytes)
+ claimBoost(dealId: bytes32, index: uint256)
13
-
-IexecPoco1Facet
-contracts/facets/IexecPoco1Facet.sol
-
-Private:
- _matchOrders(_apporder: IexecLibOrders_v5.AppOrder, _datasetorder: IexecLibOrders_v5.DatasetOrder, _workerpoolorder: IexecLibOrders_v5.WorkerpoolOrder, _requestorder: IexecLibOrders_v5.RequestOrder, _sponsor: address): bytes32
-External:
- verifySignature(_identity: address, _hash: bytes32, _signature: bytes): bool
- verifyPresignature(_identity: address, _hash: bytes32): bool
- verifyPresignatureOrSignature(_identity: address, _hash: bytes32, _signature: bytes): bool
- assertDatasetDealCompatibility(datasetOrder: IexecLibOrders_v5.DatasetOrder, dealId: bytes32)
- matchOrders(_apporder: IexecLibOrders_v5.AppOrder, _datasetorder: IexecLibOrders_v5.DatasetOrder, _workerpoolorder: IexecLibOrders_v5.WorkerpoolOrder, _requestorder: IexecLibOrders_v5.RequestOrder): bytes32
- sponsorMatchOrders(_apporder: IexecLibOrders_v5.AppOrder, _datasetorder: IexecLibOrders_v5.DatasetOrder, _workerpoolorder: IexecLibOrders_v5.WorkerpoolOrder, _requestorder: IexecLibOrders_v5.RequestOrder): bytes32
-
-
-
-13->1
-
-
-
-
-
-13->8
-
-
-
-
-
-13->12
-
-
-
-
-
-18
-
-IexecPocoCommon
-contracts/facets/IexecPocoCommon.sol
-
-Internal:
- _computeDealVolume(appOrderVolume: uint256, appOrderTypedDataHash: bytes32, hasDataset: bool, datasetOrderVolume: uint256, datasetOrderTypedDataHash: bytes32, workerpoolOrderVolume: uint256, workerpoolOrderTypedDataHash: bytes32, requestOrderVolume: uint256, requestOrderTypedDataHash: bytes32): uint256
-
-
-
-13->18
-
-
-
-
-
-13->20
-
-
-
-
-
-14
-
-IexecPoco2Facet
-contracts/facets/IexecPoco2Facet.sol
-
-Internal:
- successWork(_dealid: bytes32, _taskid: bytes32)
- failedWork(_dealid: bytes32, _taskid: bytes32)
- checkConsensus(_taskid: bytes32, _consensus: bytes32)
- distributeRewards(_taskid: bytes32)
- distributeRewardsFast(_taskid: bytes32)
- executeCallback(_taskid: bytes32, _resultsCallback: bytes)
-External:
- contribute(_taskid: bytes32, _resultHash: bytes32, _resultSeal: bytes32, _enclaveChallenge: address, _enclaveSign: bytes, _authorizationSign: bytes)
- contributeAndFinalize(_taskid: bytes32, _resultDigest: bytes32, _results: bytes, _resultsCallback: bytes, _enclaveChallenge: address, _enclaveSign: bytes, _authorizationSign: bytes)
- reveal(_taskid: bytes32, _resultDigest: bytes32)
- reopen(_taskid: bytes32) <<onlyScheduler>>
- finalize(_taskid: bytes32, _results: bytes, _resultsCallback: bytes) <<onlyScheduler>>
- initializeArray(_dealid: bytes32[], _idx: uint256[]): bool
- claimArray(_taskid: bytes32[]): bool
- initializeAndClaimArray(_dealid: bytes32[], _idx: uint256[]): bool
-Public:
- <<modifier>> onlyScheduler(_taskId: bytes32)
- initialize(_dealid: bytes32, idx: uint256): bytes32
- claim(_taskid: bytes32)
-
-
-
-14->1
-
-
-
-
-
-14->8
-
-
-
-
-
-14->20
-
-
-
-
-
-15
-
-IexecPocoAccessorsFacet
-contracts/facets/IexecPocoAccessorsFacet.sol
-
-External:
- viewDeal(id: bytes32): (deal: IexecLibCore_v5.Deal)
- viewTask(id: bytes32): IexecLibCore_v5.Task
- computeDealVolume(appOrder: IexecLibOrders_v5.AppOrder, datasetOrder: IexecLibOrders_v5.DatasetOrder, workerpoolOrder: IexecLibOrders_v5.WorkerpoolOrder, requestOrder: IexecLibOrders_v5.RequestOrder): uint256
- viewConsumed(_id: bytes32): (consumed: uint256)
- viewPresigned(_id: bytes32): (signer: address)
- viewContribution(_taskid: bytes32, _worker: address): IexecLibCore_v5.Contribution
- viewScore(_worker: address): uint256
- resultFor(id: bytes32): bytes
- name(): string
- symbol(): string
- decimals(): uint8
- totalSupply(): uint256
- balanceOf(account: address): uint256
- frozenOf(account: address): uint256
- allowance(account: address, spender: address): uint256
- viewAccount(account: address): IexecLibCore_v5.Account
- token(): address
- viewCategory(_catid: uint256): (category: IexecLibCore_v5.Category)
- countCategory(): (count: uint256)
- appregistry(): IRegistry
- datasetregistry(): IRegistry
- workerpoolregistry(): IRegistry
- teebroker(): address
- callbackgas(): uint256
- viewDataset(dataset: address): IexecLibCore_v5.DatasetInfo
- viewApp(app: address): IexecLibCore_v5.AppInfo
- viewWorkerpool(workerpool: address): IexecLibCore_v5.WorkerpoolInfo
- contribution_deadline_ratio(): uint256
- reveal_deadline_ratio(): uint256
- final_deadline_ratio(): uint256
- workerpool_stake_ratio(): uint256
- kitty_ratio(): uint256
- kitty_min(): uint256
- kitty_address(): address
- groupmember_purpose(): uint256
- eip712domain_separator(): bytes32
-
-
-
-15->1
-
-
-
-
-
-15->18
-
-
-
-
-
-15->20
-
-
-
-
-
-16
-
-IexecPocoBoostAccessorsFacet
-contracts/facets/IexecPocoBoostAccessorsFacet.sol
-
-External:
- viewDealBoost(id: bytes32): (deal: IexecLibCore_v5.DealBoost)
-
-
-
-16->1
-
-
-
-
-
-17
-
-IexecPocoBoostFacet
-contracts/facets/IexecPocoBoostFacet.sol
-
-Private:
- _matchOrdersBoost(appOrder: IexecLibOrders_v5.AppOrder, datasetOrder: IexecLibOrders_v5.DatasetOrder, workerpoolOrder: IexecLibOrders_v5.WorkerpoolOrder, requestOrder: IexecLibOrders_v5.RequestOrder, sponsor: address): bytes32
- requireTaskExistsAndUnset(taskStatus: IexecLibCore_v5.TaskStatusEnum, taskIndex: uint256, botSize: uint16)
-External:
- matchOrdersBoost(appOrder: IexecLibOrders_v5.AppOrder, datasetOrder: IexecLibOrders_v5.DatasetOrder, workerpoolOrder: IexecLibOrders_v5.WorkerpoolOrder, requestOrder: IexecLibOrders_v5.RequestOrder): bytes32
- sponsorMatchOrdersBoost(appOrder: IexecLibOrders_v5.AppOrder, datasetOrder: IexecLibOrders_v5.DatasetOrder, workerpoolOrder: IexecLibOrders_v5.WorkerpoolOrder, requestOrder: IexecLibOrders_v5.RequestOrder): bytes32
- pushResultBoost(dealId: bytes32, index: uint256, results: bytes, resultsCallback: bytes, authorizationSign: bytes, enclaveChallenge: address, enclaveSign: bytes)
- claimBoost(dealId: bytes32, index: uint256)
-
-
-
-17->1
-
-
-
-
-
-17->8
-
-
-
-
-
-17->18
-
-
-
-
-
-17->20
-
-
-
-
-
-18->1
-
-
-
-
-
-19
-
-IexecRelayFacet
-contracts/facets/IexecRelayFacet.sol
-
-External:
- broadcastAppOrder(_apporder: IexecLibOrders_v5.AppOrder)
- broadcastDatasetOrder(_datasetorder: IexecLibOrders_v5.DatasetOrder)
- broadcastWorkerpoolOrder(_workerpoolorder: IexecLibOrders_v5.WorkerpoolOrder)
- broadcastRequestOrder(_requestorder: IexecLibOrders_v5.RequestOrder)
-
-
-
-19->0
-
-
-
-
-
-20->1
-
-
+
+IexecRelayFacet
+contracts/facets/IexecRelayFacet.sol
+
+External:
+ broadcastAppOrder(_apporder: IexecLibOrders_v5.AppOrder)
+ broadcastDatasetOrder(_datasetorder: IexecLibOrders_v5.DatasetOrder)
+ broadcastWorkerpoolOrder(_workerpoolorder: IexecLibOrders_v5.WorkerpoolOrder)
+ broadcastRequestOrder(_requestorder: IexecLibOrders_v5.RequestOrder)
diff --git a/docs/uml/class-uml-dir-libs.svg b/docs/uml/class-uml-dir-libs.svg
index bcf61e1ee..0875f7d38 100644
--- a/docs/uml/class-uml-dir-libs.svg
+++ b/docs/uml/class-uml-dir-libs.svg
@@ -4,807 +4,725 @@
-
+
UmlClassDiagram
-
+
0
-
-<<Library>>
-IexecLibCore_v5
-contracts/libs/IexecLibCore_v5.sol
+
+<<Library>>
+IexecLibCore_v5
+contracts/libs/IexecLibCore_v5.sol
1
-
-<<Struct>>
-Account
-contracts/libs/IexecLibCore_v5.sol
-
-stake: uint256
-locked: uint256
+
+<<Struct>>
+Account
+contracts/libs/IexecLibCore_v5.sol
+
+stake: uint256
+locked: uint256
1->0
-
-
+
+
2
-
-<<Struct>>
-Category
-contracts/libs/IexecLibCore_v5.sol
-
-name: string
-description: string
-workClockTimeRef: uint256
+
+<<Struct>>
+Category
+contracts/libs/IexecLibCore_v5.sol
+
+name: string
+description: string
+workClockTimeRef: uint256
2->0
-
-
+
+
3
-
-<<Struct>>
-DatasetInfo
-contracts/libs/IexecLibCore_v5.sol
-
-owner: address
-m_datasetName: string
-m_datasetMultiaddr: bytes
-m_datasetChecksum: bytes32
+
+<<Struct>>
+DatasetInfo
+contracts/libs/IexecLibCore_v5.sol
+
+owner: address
+m_datasetName: string
+m_datasetMultiaddr: bytes
+m_datasetChecksum: bytes32
3->0
-
-
+
+
4
-
-<<Struct>>
-AppInfo
-contracts/libs/IexecLibCore_v5.sol
-
-owner: address
-m_appName: string
-m_appType: string
-m_appMultiaddr: bytes
-m_appChecksum: bytes32
-m_appMREnclave: bytes
+
+<<Struct>>
+AppInfo
+contracts/libs/IexecLibCore_v5.sol
+
+owner: address
+m_appName: string
+m_appType: string
+m_appMultiaddr: bytes
+m_appChecksum: bytes32
+m_appMREnclave: bytes
4->0
-
-
+
+
5
-
-<<Struct>>
-WorkerpoolInfo
-contracts/libs/IexecLibCore_v5.sol
-
-owner: address
-m_workerpoolDescription: string
-m_workerStakeRatioPolicy: uint256
-m_schedulerRewardRatioPolicy: uint256
+
+<<Struct>>
+WorkerpoolInfo
+contracts/libs/IexecLibCore_v5.sol
+
+owner: address
+m_workerpoolDescription: string
+m_workerStakeRatioPolicy: uint256
+m_schedulerRewardRatioPolicy: uint256
5->0
-
-
+
+
6
-
-<<Struct>>
-Resource
-contracts/libs/IexecLibCore_v5.sol
-
-pointer: address
-owner: address
-price: uint256
+
+<<Struct>>
+Resource
+contracts/libs/IexecLibCore_v5.sol
+
+pointer: address
+owner: address
+price: uint256
6->0
-
-
+
+
7
-
-<<Struct>>
-Deal
-contracts/libs/IexecLibCore_v5.sol
-
-app: Resource
-dataset: Resource
-workerpool: Resource
-trust: uint256
-category: uint256
-tag: bytes32
-requester: address
-beneficiary: address
-callback: address
-params: string
-startTime: uint256
-botFirst: uint256
-botSize: uint256
-workerStake: uint256
-schedulerRewardRatio: uint256
-sponsor: address
+
+<<Struct>>
+Deal
+contracts/libs/IexecLibCore_v5.sol
+
+app: Resource
+dataset: Resource
+workerpool: Resource
+trust: uint256
+category: uint256
+tag: bytes32
+requester: address
+beneficiary: address
+callback: address
+params: string
+startTime: uint256
+botFirst: uint256
+botSize: uint256
+workerStake: uint256
+schedulerRewardRatio: uint256
+sponsor: address
7->0
-
-
+
+
7->6
-
-
+
+
8
-
-<<Struct>>
-DealBoost
-contracts/libs/IexecLibCore_v5.sol
-
-appOwner: address
-appPrice: uint96
-datasetOwner: address
-datasetPrice: uint96
-workerpoolOwner: address
-workerpoolPrice: uint96
-requester: address
-workerReward: uint96
-callback: address
-deadline: uint40
-botFirst: uint16
-botSize: uint16
-shortTag: bytes3
-sponsor: address
+
+<<Struct>>
+DealBoost
+contracts/libs/IexecLibCore_v5.sol
+
+appOwner: address
+appPrice: uint96
+datasetOwner: address
+datasetPrice: uint96
+workerpoolOwner: address
+workerpoolPrice: uint96
+requester: address
+workerReward: uint96
+callback: address
+deadline: uint40
+botFirst: uint16
+botSize: uint16
+shortTag: bytes3
+sponsor: address
8->0
-
-
+
+
9
-
-<<Enum>>
-TaskStatusEnum
-contracts/libs/IexecLibCore_v5.sol
-
-UNSET: 0
-ACTIVE: 1
-REVEALING: 2
-COMPLETED: 3
-FAILED: 4
+
+<<Enum>>
+TaskStatusEnum
+contracts/libs/IexecLibCore_v5.sol
+
+UNSET: 0
+ACTIVE: 1
+REVEALING: 2
+COMPLETED: 3
+FAILED: 4
9->0
-
-
+
+
10
-
-<<Struct>>
-Task
-contracts/libs/IexecLibCore_v5.sol
-
-status: TaskStatusEnum
-dealid: bytes32
-idx: uint256
-timeref: uint256
-contributionDeadline: uint256
-revealDeadline: uint256
-finalDeadline: uint256
-consensusValue: bytes32
-revealCounter: uint256
-winnerCounter: uint256
-contributors: address[]
-resultDigest: bytes32
-results: bytes
-resultsTimestamp: uint256
-resultsCallback: bytes
+
+<<Struct>>
+Task
+contracts/libs/IexecLibCore_v5.sol
+
+status: TaskStatusEnum
+dealid: bytes32
+idx: uint256
+timeref: uint256
+contributionDeadline: uint256
+revealDeadline: uint256
+finalDeadline: uint256
+consensusValue: bytes32
+revealCounter: uint256
+winnerCounter: uint256
+contributors: address[]
+resultDigest: bytes32
+results: bytes
+resultsTimestamp: uint256
+resultsCallback: bytes
10->0
-
-
+
+
10->9
-
-
+
+
11
-
-<<Struct>>
-Consensus
-contracts/libs/IexecLibCore_v5.sol
-
-group: mapping(bytes32=>uint256)
-total: uint256
+
+<<Struct>>
+Consensus
+contracts/libs/IexecLibCore_v5.sol
+
+group: mapping(bytes32=>uint256)
+total: uint256
11->0
-
-
+
+
12
-
-<<Enum>>
-ContributionStatusEnum
-contracts/libs/IexecLibCore_v5.sol
-
-UNSET: 0
-CONTRIBUTED: 1
-PROVED: 2
-REJECTED: 3
+
+<<Enum>>
+ContributionStatusEnum
+contracts/libs/IexecLibCore_v5.sol
+
+UNSET: 0
+CONTRIBUTED: 1
+PROVED: 2
+REJECTED: 3
12->0
-
-
+
+
13
-
-<<Struct>>
-Contribution
-contracts/libs/IexecLibCore_v5.sol
-
-status: ContributionStatusEnum
-resultHash: bytes32
-resultSeal: bytes32
-enclaveChallenge: address
-weight: uint256
+
+<<Struct>>
+Contribution
+contracts/libs/IexecLibCore_v5.sol
+
+status: ContributionStatusEnum
+resultHash: bytes32
+resultSeal: bytes32
+enclaveChallenge: address
+weight: uint256
13->0
-
-
+
+
13->12
-
-
+
+
14
-
-<<Library>>
-IexecLibOrders_v5
-contracts/libs/IexecLibOrders_v5.sol
-
-Public:
- EIP712DOMAIN_TYPEHASH: bytes32
- APPORDER_TYPEHASH: bytes32
- DATASETORDER_TYPEHASH: bytes32
- WORKERPOOLORDER_TYPEHASH: bytes32
- REQUESTORDER_TYPEHASH: bytes32
- APPORDEROPERATION_TYPEHASH: bytes32
- DATASETORDEROPERATION_TYPEHASH: bytes32
- WORKERPOOLORDEROPERATION_TYPEHASH: bytes32
- REQUESTORDEROPERATION_TYPEHASH: bytes32
-
-Public:
- hash(_domain: EIP712Domain): (domainhash: bytes32)
- hash(_apporder: AppOrder): (apphash: bytes32)
- hash(_datasetorder: DatasetOrder): (datasethash: bytes32)
- hash(_workerpoolorder: WorkerpoolOrder): (workerpoolhash: bytes32)
- hash(_requestorder: RequestOrder): (requesthash: bytes32)
- hash(_apporderoperation: AppOrderOperation): bytes32
- hash(_datasetorderoperation: DatasetOrderOperation): bytes32
- hash(_workerpoolorderoperation: WorkerpoolOrderOperation): bytes32
- hash(_requestorderoperation: RequestOrderOperation): bytes32
+
+<<Library>>
+IexecLibOrders_v5
+contracts/libs/IexecLibOrders_v5.sol
+
+Public:
+ EIP712DOMAIN_TYPEHASH: bytes32
+ APPORDER_TYPEHASH: bytes32
+ DATASETORDER_TYPEHASH: bytes32
+ WORKERPOOLORDER_TYPEHASH: bytes32
+ REQUESTORDER_TYPEHASH: bytes32
+ APPORDEROPERATION_TYPEHASH: bytes32
+ DATASETORDEROPERATION_TYPEHASH: bytes32
+ WORKERPOOLORDEROPERATION_TYPEHASH: bytes32
+ REQUESTORDEROPERATION_TYPEHASH: bytes32
+
+Public:
+ hash(_domain: EIP712Domain): (domainhash: bytes32)
+ hash(_apporder: AppOrder): (apphash: bytes32)
+ hash(_datasetorder: DatasetOrder): (datasethash: bytes32)
+ hash(_workerpoolorder: WorkerpoolOrder): (workerpoolhash: bytes32)
+ hash(_requestorder: RequestOrder): (requesthash: bytes32)
+ hash(_apporderoperation: AppOrderOperation): bytes32
+ hash(_datasetorderoperation: DatasetOrderOperation): bytes32
+ hash(_workerpoolorderoperation: WorkerpoolOrderOperation): bytes32
+ hash(_requestorderoperation: RequestOrderOperation): bytes32
16
-
-<<Struct>>
-EIP712Domain
-contracts/libs/IexecLibOrders_v5.sol
-
-name: string
-version: string
-chainId: uint256
-verifyingContract: address
+
+<<Struct>>
+EIP712Domain
+contracts/libs/IexecLibOrders_v5.sol
+
+name: string
+version: string
+chainId: uint256
+verifyingContract: address
14->16
-
-
+
+
17
-
-<<Struct>>
-AppOrder
-contracts/libs/IexecLibOrders_v5.sol
-
-app: address
-appprice: uint256
-volume: uint256
-tag: bytes32
-datasetrestrict: address
-workerpoolrestrict: address
-requesterrestrict: address
-salt: bytes32
-sign: bytes
+
+<<Struct>>
+AppOrder
+contracts/libs/IexecLibOrders_v5.sol
+
+app: address
+appprice: uint256
+volume: uint256
+tag: bytes32
+datasetrestrict: address
+workerpoolrestrict: address
+requesterrestrict: address
+salt: bytes32
+sign: bytes
14->17
-
-
+
+
18
-
-<<Struct>>
-DatasetOrder
-contracts/libs/IexecLibOrders_v5.sol
-
-dataset: address
-datasetprice: uint256
-volume: uint256
-tag: bytes32
-apprestrict: address
-workerpoolrestrict: address
-requesterrestrict: address
-salt: bytes32
-sign: bytes
+
+<<Struct>>
+DatasetOrder
+contracts/libs/IexecLibOrders_v5.sol
+
+dataset: address
+datasetprice: uint256
+volume: uint256
+tag: bytes32
+apprestrict: address
+workerpoolrestrict: address
+requesterrestrict: address
+salt: bytes32
+sign: bytes
14->18
-
-
+
+
19
-
-<<Struct>>
-WorkerpoolOrder
-contracts/libs/IexecLibOrders_v5.sol
-
-workerpool: address
-workerpoolprice: uint256
-volume: uint256
-tag: bytes32
-category: uint256
-trust: uint256
-apprestrict: address
-datasetrestrict: address
-requesterrestrict: address
-salt: bytes32
-sign: bytes
+
+<<Struct>>
+WorkerpoolOrder
+contracts/libs/IexecLibOrders_v5.sol
+
+workerpool: address
+workerpoolprice: uint256
+volume: uint256
+tag: bytes32
+category: uint256
+trust: uint256
+apprestrict: address
+datasetrestrict: address
+requesterrestrict: address
+salt: bytes32
+sign: bytes
14->19
-
-
+
+
20
-
-<<Struct>>
-RequestOrder
-contracts/libs/IexecLibOrders_v5.sol
-
-app: address
-appmaxprice: uint256
-dataset: address
-datasetmaxprice: uint256
-workerpool: address
-workerpoolmaxprice: uint256
-requester: address
-volume: uint256
-tag: bytes32
-category: uint256
-trust: uint256
-beneficiary: address
-callback: address
-params: string
-salt: bytes32
-sign: bytes
+
+<<Struct>>
+RequestOrder
+contracts/libs/IexecLibOrders_v5.sol
+
+app: address
+appmaxprice: uint256
+dataset: address
+datasetmaxprice: uint256
+workerpool: address
+workerpoolmaxprice: uint256
+requester: address
+volume: uint256
+tag: bytes32
+category: uint256
+trust: uint256
+beneficiary: address
+callback: address
+params: string
+salt: bytes32
+sign: bytes
14->20
-
-
+
+
21
-
-<<Struct>>
-AppOrderOperation
-contracts/libs/IexecLibOrders_v5.sol
-
-order: AppOrder
-operation: OrderOperationEnum
-sign: bytes
+
+<<Struct>>
+AppOrderOperation
+contracts/libs/IexecLibOrders_v5.sol
+
+order: AppOrder
+operation: OrderOperationEnum
+sign: bytes
14->21
-
-
+
+
22
-
-<<Struct>>
-DatasetOrderOperation
-contracts/libs/IexecLibOrders_v5.sol
-
-order: DatasetOrder
-operation: OrderOperationEnum
-sign: bytes
+
+<<Struct>>
+DatasetOrderOperation
+contracts/libs/IexecLibOrders_v5.sol
+
+order: DatasetOrder
+operation: OrderOperationEnum
+sign: bytes
14->22
-
-
+
+
23
-
-<<Struct>>
-WorkerpoolOrderOperation
-contracts/libs/IexecLibOrders_v5.sol
-
-order: WorkerpoolOrder
-operation: OrderOperationEnum
-sign: bytes
+
+<<Struct>>
+WorkerpoolOrderOperation
+contracts/libs/IexecLibOrders_v5.sol
+
+order: WorkerpoolOrder
+operation: OrderOperationEnum
+sign: bytes
14->23
-
-
+
+
24
-
-<<Struct>>
-RequestOrderOperation
-contracts/libs/IexecLibOrders_v5.sol
-
-order: RequestOrder
-operation: OrderOperationEnum
-sign: bytes
+
+<<Struct>>
+RequestOrderOperation
+contracts/libs/IexecLibOrders_v5.sol
+
+order: RequestOrder
+operation: OrderOperationEnum
+sign: bytes
14->24
-
-
+
+
15
-
-<<Enum>>
-OrderOperationEnum
-contracts/libs/IexecLibOrders_v5.sol
-
-SIGN: 0
-CLOSE: 1
+
+<<Enum>>
+OrderOperationEnum
+contracts/libs/IexecLibOrders_v5.sol
+
+SIGN: 0
+CLOSE: 1
15->14
-
-
+
+
16->14
-
-
+
+
17->14
-
-
+
+
18->14
-
-
+
+
19->14
-
-
+
+
20->14
-
-
+
+
21->14
-
-
+
+
21->15
-
-
+
+
21->17
-
-
+
+
22->14
-
-
+
+
22->15
-
-
+
+
22->18
-
-
+
+
23->14
-
-
+
+
23->15
-
-
+
+
23->19
-
-
+
+
24->14
-
-
+
+
24->15
-
-
+
+
24->20
-
-
+
+
25
-
-<<Library>>
-PocoStorageLib
-contracts/libs/PocoStorageLib.sol
-
-Private:
- POCO_STORAGE_LOCATION: bytes32
-
-Internal:
- getPocoStorage(): ($: PocoStorage)
+
+<<Library>>
+PocoStorageLib
+contracts/libs/PocoStorageLib.sol
+
+Private:
+ POCO_STORAGE_LOCATION: bytes32
+
+Internal:
+ getPocoStorage(): ($: PocoStorage)
26
-
-<<Struct>>
-PocoStorage
-contracts/libs/PocoStorageLib.sol
-
-m_appregistry: IRegistry
-m_datasetregistry: IRegistry
-m_workerpoolregistry: IRegistry
-m_baseToken: IERC20
-m_name: string
-m_symbol: string
-m_decimals: uint8
-m_totalSupply: uint256
-m_balances: mapping(address=>uint256)
-m_frozens: mapping(address=>uint256)
-m_allowances: mapping(address=>mapping(address=>uint256))
-m_eip712DomainSeparator: bytes32
-m_presigned: mapping(bytes32=>address)
-m_consumed: mapping(bytes32=>uint256)
-m_deals: mapping(bytes32=>IexecLibCore_v5.Deal)
-m_tasks: mapping(bytes32=>IexecLibCore_v5.Task)
-m_consensus: mapping(bytes32=>IexecLibCore_v5.Consensus)
-m_contributions: mapping(bytes32=>mapping(address=>IexecLibCore_v5.Contribution))
-m_workerScores: mapping(address=>uint256)
-m_teebroker: address
-m_callbackgas: uint256
-m_categories: IexecLibCore_v5.Category[]
-m_v3_iexecHub: IexecHubInterface
-m_v3_scoreImported: mapping(address=>bool)
+
+<<Struct>>
+PocoStorage
+contracts/libs/PocoStorageLib.sol
+
+m_appregistry: IRegistry
+m_datasetregistry: IRegistry
+m_workerpoolregistry: IRegistry
+m_baseToken: IERC20
+m_name: string
+m_symbol: string
+m_decimals: uint8
+m_totalSupply: uint256
+m_balances: mapping(address=>uint256)
+m_frozens: mapping(address=>uint256)
+m_allowances: mapping(address=>mapping(address=>uint256))
+m_eip712DomainSeparator: bytes32
+m_presigned: mapping(bytes32=>address)
+m_consumed: mapping(bytes32=>uint256)
+m_deals: mapping(bytes32=>IexecLibCore_v5.Deal)
+m_tasks: mapping(bytes32=>IexecLibCore_v5.Task)
+m_consensus: mapping(bytes32=>IexecLibCore_v5.Consensus)
+m_contributions: mapping(bytes32=>mapping(address=>IexecLibCore_v5.Contribution))
+m_workerScores: mapping(address=>uint256)
+m_teebroker: address
+m_callbackgas: uint256
+m_categories: IexecLibCore_v5.Category[]
+m_v3_iexecHub: IexecHubV3Interface
+m_v3_scoreImported: mapping(address=>bool)
+m_dealsBoost: mapping(bytes32=>IexecLibCore_v5.DealBoost)
25->26
-
-
+
+
26->0
-
-
+
+
26->25
-
-
-
-
-
-27
-
-<<Library>>
-PocoStorageLib
-contracts/libs/PocoStorageLib.v8.sol
-
-Private:
- POCO_STORAGE_LOCATION: bytes32
-
-Internal:
- getPocoStorage(): ($: PocoStorage)
-
-
-
-28
-
-<<Struct>>
-PocoStorage
-contracts/libs/PocoStorageLib.v8.sol
-
-m_appregistry: IRegistry
-m_datasetregistry: IRegistry
-m_workerpoolregistry: IRegistry
-m_baseToken: IERC20
-m_name: string
-m_symbol: string
-m_decimals: uint8
-m_totalSupply: uint256
-m_balances: mapping(address=>uint256)
-m_frozens: mapping(address=>uint256)
-m_allowances: mapping(address=>mapping(address=>uint256))
-m_eip712DomainSeparator: bytes32
-m_presigned: mapping(bytes32=>address)
-m_consumed: mapping(bytes32=>uint256)
-m_deals: mapping(bytes32=>IexecLibCore_v5.Deal)
-m_tasks: mapping(bytes32=>IexecLibCore_v5.Task)
-m_consensus: mapping(bytes32=>IexecLibCore_v5.Consensus)
-m_contributions: mapping(bytes32=>mapping(address=>IexecLibCore_v5.Contribution))
-m_workerScores: mapping(address=>uint256)
-m_teebroker: address
-m_callbackgas: uint256
-m_categories: IexecLibCore_v5.Category[]
-m_v3_iexecHub: address
-m_v3_scoreImported: mapping(address=>bool)
-m_dealsBoost: mapping(bytes32=>IexecLibCore_v5.DealBoost)
-
-
-
-27->28
-
-
-
-
-
-28->0
-
-
-
-
-
-28->27
-
-
-
-
-
-29
-
-<<Interface>>
-IRegistry
-contracts/libs/PocoStorageLib.v8.sol
-
-External:
- isRegistered(_entry: address): bool
-
-
-
-28->29
-
-
+
+
diff --git a/docs/uml/class-uml-dir-registries.svg b/docs/uml/class-uml-dir-registries.svg
index 888366741..cb182f543 100644
--- a/docs/uml/class-uml-dir-registries.svg
+++ b/docs/uml/class-uml-dir-registries.svg
@@ -4,95 +4,122 @@
-
-
+
+
UmlClassDiagram
-
+
0
-
-<<Interface>>
-IRegistry
-contracts/registries/IRegistry.sol
-
-External:
- isRegistered(_entry: address): bool
+
+<<Interface>>
+IRegistry
+contracts/registries/IRegistry.sol
+
+External:
+ isRegistered(_entry: address): bool
1
-
-<<Abstract>>
-Registry
-contracts/registries/Registry.sol
-
-Public:
- master: address
- proxyCode: bytes
- proxyCodeHash: bytes32
- previous: IRegistry
- initialized: bool
-
-Internal:
- _mintCreate(_owner: address, _args: bytes): uint256
- _mintPredict(_owner: address, _args: bytes): uint256
-External:
- initialize(_previous: address) <<onlyOwner>>
- setBaseURI(_baseURI: string) <<onlyOwner>>
- isRegistered(_entry: address): bool
- setName(address, string) <<onlyOwner>>
-Public:
- constructor(_master: address, _name: string, _symbol: string)
+
+<<Abstract>>
+Registry
+contracts/registries/Registry.sol
+
+Private:
+ _baseUri: string
+Public:
+ master: address
+ proxyCode: bytes
+ proxyCodeHash: bytes32
+ previous: IRegistry
+ initialized: bool
+
+Internal:
+ _checkOwner()
+ _mintCreate(_owner: address, _args: bytes): address
+ _mintPredict(_owner: address, _args: bytes): address
+ _baseURI(): string
+External:
+ initialize(_previous: address) <<onlyOwner>>
+ setBaseURI(baseUri: string) <<onlyOwner>>
+ isRegistered(_entry: address): bool
+ setName(address, string) <<onlyOwner>>
+Public:
+ constructor(_master: address, _name: string, _symbol: string)
+ baseURI(): string
1->0
-
-
+
+
+
+
+
+11
+
+InitializableUpgradeabilityProxy
+contracts/registries/proxy/InitializableUpgradeabilityProxy.sol
+
+Public:
+ <<payable>> initialize(_logic: address, _data: bytes)
+
+
+
+1->11
+
+
2
-
-<<Abstract>>
-RegistryEntry
-contracts/registries/RegistryEntry.sol
-
-Public:
- registry: IRegistry
-
-Internal:
- _initialize(_registry: address)
-External:
- setName(address, string) <<onlyOwner>>
-Public:
- <<modifier>> onlyOwner()
- owner(): address
+
+<<Abstract>>
+RegistryEntry
+contracts/registries/RegistryEntry.sol
+
+Public:
+ registry: IRegistry
+
+Internal:
+ _initialize(_registry: address)
+External:
+ setName(address, string) <<onlyOwner>>
+Public:
+ <<modifier>> onlyOwner()
+ owner(): address
+
+
+
+2->0
+
+
3
-
-App
-contracts/registries/apps/App.sol
-
-Public:
- m_appName: string
- m_appType: string
- m_appMultiaddr: bytes
- m_appChecksum: bytes32
- m_appMREnclave: bytes
-
-Public:
- initialize(_appName: string, _appType: string, _appMultiaddr: bytes, _appChecksum: bytes32, _appMREnclave: bytes)
+
+App
+contracts/registries/apps/App.sol
+
+Public:
+ m_appName: string
+ m_appType: string
+ m_appMultiaddr: bytes
+ m_appChecksum: bytes32
+ m_appMREnclave: bytes
+
+Public:
+ initialize(_appName: string, _appType: string, _appMultiaddr: bytes, _appChecksum: bytes32, _appMREnclave: bytes)
-
+
3->2
-
-
+
+
@@ -110,16 +137,16 @@
constructor()
-
+
4->1
-
-
+
+
-
+
4->3
-
-
+
+
@@ -140,23 +167,23 @@
6
-
-Dataset
-contracts/registries/datasets/Dataset.sol
-
-Public:
- m_datasetName: string
- m_datasetMultiaddr: bytes
- m_datasetChecksum: bytes32
-
-Public:
- initialize(_datasetName: string, _datasetMultiaddr: bytes, _datasetChecksum: bytes32)
+
+Dataset
+contracts/registries/datasets/Dataset.sol
+
+Public:
+ m_datasetName: string
+ m_datasetMultiaddr: bytes
+ m_datasetChecksum: bytes32
+
+Public:
+ initialize(_datasetName: string, _datasetMultiaddr: bytes, _datasetChecksum: bytes32)
-
+
6->2
-
-
+
+
@@ -174,16 +201,16 @@
constructor()
-
+
7->1
-
-
+
+
-
+
7->6
-
-
+
+
@@ -202,6 +229,69 @@
9
+
+<<Library>>
+Address
+contracts/registries/proxy/Address.sol
+
+Internal:
+ isContract(account: address): bool
+
+
+
+10
+
+BaseUpgradeabilityProxy
+contracts/registries/proxy/BaseUpgradeabilityProxy.sol
+
+Internal:
+ IMPLEMENTATION_SLOT: bytes32
+
+Internal:
+ _implementation(): (impl: address)
+ _upgradeTo(newImplementation: address)
+ _setImplementation(newImplementation: address)
+Public:
+ <<event>> Upgraded(implementation: address)
+
+
+
+10->9
+
+
+
+
+
+12
+
+<<Abstract>>
+Proxy
+contracts/registries/proxy/Proxy.sol
+
+Internal:
+ <<abstract>> _implementation(): (impl: address)
+ _delegate(implementation: address)
+ _willFallback()
+ _fallback()
+External:
+ <<payable>> null()
+ <<payable>> null()
+
+
+
+10->12
+
+
+
+
+
+11->10
+
+
+
+
+
+13
<<Interface>>
IWorkerpool
@@ -213,33 +303,33 @@
m_schedulerRewardRatioPolicy(): uint256
m_workerStakeRatioPolicy(): uint256
-
-
-10
-
-Workerpool
-contracts/registries/workerpools/Workerpool.sol
-
-Public:
- m_workerpoolDescription: string
- m_workerStakeRatioPolicy: uint256
- m_schedulerRewardRatioPolicy: uint256
-
-External:
- changePolicy(_newWorkerStakeRatioPolicy: uint256, _newSchedulerRewardRatioPolicy: uint256) <<onlyOwner>>
-Public:
- <<event>> PolicyUpdate(oldWorkerStakeRatioPolicy: uint256, newWorkerStakeRatioPolicy: uint256, oldSchedulerRewardRatioPolicy: uint256, newSchedulerRewardRatioPolicy: uint256)
- initialize(_workerpoolDescription: string)
-
-
-
-10->2
-
-
+
+
+14
+
+Workerpool
+contracts/registries/workerpools/Workerpool.sol
+
+Public:
+ m_workerpoolDescription: string
+ m_workerStakeRatioPolicy: uint256
+ m_schedulerRewardRatioPolicy: uint256
+
+External:
+ changePolicy(_newWorkerStakeRatioPolicy: uint256, _newSchedulerRewardRatioPolicy: uint256) <<onlyOwner>>
+Public:
+ <<event>> PolicyUpdate(oldWorkerStakeRatioPolicy: uint256, newWorkerStakeRatioPolicy: uint256, oldSchedulerRewardRatioPolicy: uint256, newSchedulerRewardRatioPolicy: uint256)
+ initialize(_workerpoolDescription: string)
-
-
-11
+
+
+14->2
+
+
+
+
+
+15
WorkerpoolRegistry
contracts/registries/workerpools/WorkerpoolRegistry.sol
@@ -252,17 +342,17 @@
Public:
constructor()
-
-
-11->1
-
-
+
+
+15->1
+
+
-
-
-11->10
-
-
+
+
+15->14
+
+
diff --git a/docs/uml/storage-diagram-poco.svg b/docs/uml/storage-diagram-poco.svg
index 1fef36540..8c2605ba3 100644
--- a/docs/uml/storage-diagram-poco.svg
+++ b/docs/uml/storage-diagram-poco.svg
@@ -139,9 +139,9 @@
IexecLibCore_v5.Category[]: PocoStorage.m_categories (32)
-unallocated (12)
-
-address: PocoStorage.m_v3_iexecHub (20)
+unallocated (12)
+
+IexecHubV3Interface: PocoStorage.m_v3_iexecHub (20)
mapping(address=>bool): PocoStorage.m_v3_scoreImported (32)
diff --git a/hardhat.config.ts b/hardhat.config.ts
index 80773ca28..6183d517f 100644
--- a/hardhat.config.ts
+++ b/hardhat.config.ts
@@ -237,15 +237,13 @@ const config: HardhatUserConfig = {
outputDir: 'docs/solidity',
templates: 'docs/solidity/templates',
exclude: [
- 'external',
- 'facets/FacetBase.sol', // duplicated in FacetBase.v8.sol
+ 'abstract/IexecPocoCommon.sol', // contains only internal/private
+ 'abstract/SignatureVerifier.sol', // contains only internal/private
+ 'external/',
'facets/IexecAccessorsABILegacyFacet.sol', // not relevant
- // kept for events 'facets/IexecERC20Core.sol', // contains only internal/private
- // kept for events 'facets/IexecEscrow.v8.sol', // contains only internal/private
- 'facets/IexecPocoCommon.sol', // contains only internal/private
- 'facets/SignatureVerifier.sol', // contains only internal/private
- 'interfaces', // interesting for events but too much doc duplication if enabled
- 'tools',
+ // TODO: put all events and soldoc inside interfaces and use them instead of contracts.
+ 'interfaces/', // interesting for events but too much doc duplication if enabled
+ 'tools/',
'Diamond.sol', // not relevant
],
},
diff --git a/package.json b/package.json
index 3cbaefb70..5d5bff444 100644
--- a/package.json
+++ b/package.json
@@ -19,13 +19,13 @@
"verify": "npx hardhat verify",
"verify:all": "npx hardhat run scripts/verify.ts",
"format": "npx prettier --write .",
- "check-format": "npx prettier --check .",
+ "format:check": "npx prettier --check .",
"uml": "npm run sol-to-uml && npm run puml-to-links && npm run storage-to-diagrams",
"sol-to-uml": "npx zx scripts/tools/sol-to-uml.mjs",
"puml-to-links": "npx zx scripts/tools/puml-to-links.mjs",
"storage-to-diagrams": "bash scripts/tools/storage-to-diagrams.sh",
"doc": "npx hardhat clean && npx hardhat docgen",
- "check-doc": "npm run doc && git diff --exit-code docs/",
+ "doc:check": "npm run doc && git diff --exit-code docs/",
"prerelease": "npm version prerelease --preid=rc -m 'chore: v%s'"
},
"files": [
diff --git a/test/byContract/IexecEscrow/IexecEscrowToken.receiveApproval.test.ts b/test/byContract/IexecEscrow/IexecEscrowToken-receiveApproval.test.ts
similarity index 87%
rename from test/byContract/IexecEscrow/IexecEscrowToken.receiveApproval.test.ts
rename to test/byContract/IexecEscrow/IexecEscrowToken-receiveApproval.test.ts
index 21bd34639..7ace4fa18 100644
--- a/test/byContract/IexecEscrow/IexecEscrowToken.receiveApproval.test.ts
+++ b/test/byContract/IexecEscrow/IexecEscrowToken-receiveApproval.test.ts
@@ -8,15 +8,15 @@ import { expect } from 'chai';
import { ethers } from 'hardhat';
import { FacetCutAction } from 'hardhat-deploy/dist/types';
import {
+ DiamondCutFacet__factory,
IexecInterfaceToken,
IexecInterfaceToken__factory,
+ MatchOrdersFacetMock__factory,
RLC,
RLC__factory,
- ReceiveApprovalTestHelper__factory,
} from '../../../typechain';
import { TAG_TEE } from '../../../utils/constants';
import {
- IexecOrders,
OrdersActors,
OrdersAssets,
OrdersPrices,
@@ -34,26 +34,19 @@ const datasetPrice = 1_000_000n;
const workerpoolPrice = 1_000_000_000n;
const volume = 1n;
-describe('IexecEscrowToken-receiveApproval', () => {
- let proxyAddress: string;
- let iexecPoco: IexecInterfaceToken;
- let iexecPocoAsRequester: IexecInterfaceToken;
- let rlcInstance: RLC;
- let rlcInstanceAsRequester: RLC;
- let [
- iexecAdmin,
- requester,
- scheduler,
- appProvider,
- datasetProvider,
- anyone,
- ]: SignerWithAddress[] = [];
- let iexecWrapper: IexecWrapper;
- let [appAddress, datasetAddress, workerpoolAddress]: string[] = [];
- let ordersActors: OrdersActors;
- let ordersAssets: OrdersAssets;
- let ordersPrices: OrdersPrices;
+let proxyAddress: string;
+let iexecPoco: IexecInterfaceToken;
+let rlcInstance: RLC;
+let rlcInstanceAsRequester: RLC;
+let [iexecAdmin, requester, scheduler, appProvider, datasetProvider, anyone]: SignerWithAddress[] =
+ [];
+let iexecWrapper: IexecWrapper;
+let [appAddress, datasetAddress, workerpoolAddress]: string[] = [];
+let ordersActors: OrdersActors;
+let ordersAssets: OrdersAssets;
+let ordersPrices: OrdersPrices;
+describe('IexecEscrowToken-receiveApproval', () => {
beforeEach('Deploy', async () => {
proxyAddress = await loadHardhatFixtureDeployment();
await loadFixture(initFixture);
@@ -64,7 +57,6 @@ describe('IexecEscrowToken-receiveApproval', () => {
({ iexecAdmin, requester, scheduler, appProvider, datasetProvider, anyone } = accounts);
iexecPoco = IexecInterfaceToken__factory.connect(proxyAddress, anyone);
- iexecPocoAsRequester = iexecPoco.connect(requester);
rlcInstance = RLC__factory.connect(await iexecPoco.token(), anyone);
rlcInstanceAsRequester = rlcInstance.connect(requester);
@@ -154,7 +146,7 @@ describe('IexecEscrowToken-receiveApproval', () => {
volume: volume,
});
- await signAndPrepareOrders(orders);
+ await signOrders(iexecWrapper.getDomain(), orders, ordersActors);
const dealCost = (appPrice + datasetPrice + workerpoolPrice) * volume;
const schedulerStake = await iexecWrapper.computeSchedulerDealStake(
@@ -168,7 +160,7 @@ describe('IexecEscrowToken-receiveApproval', () => {
const initialTotalSupply = await iexecPoco.totalSupply();
// Encode the matchOrders operation with its selector
- const encodedOrders = encodeOrdersForCallback(orders);
+ const encodedOrders = encodeOrders(...orders.toArray());
const tx = await rlcInstanceAsRequester.approveAndCall(
proxyAddress,
@@ -224,7 +216,7 @@ describe('IexecEscrowToken-receiveApproval', () => {
volume: volume,
});
- await signAndPrepareOrders(ordersWithoutDataset);
+ await signOrders(iexecWrapper.getDomain(), ordersWithoutDataset, ordersActors);
const dealCost = (appPrice + workerpoolPrice) * volume;
const schedulerStake = await iexecWrapper.computeSchedulerDealStake(
@@ -238,7 +230,7 @@ describe('IexecEscrowToken-receiveApproval', () => {
iexecWrapper.hashOrders(ordersWithoutDataset);
const dealId = getDealId(iexecWrapper.getDomain(), ordersWithoutDataset.requester);
- const encodedOrders = encodeOrdersForCallback(ordersWithoutDataset);
+ const encodedOrders = encodeOrders(...ordersWithoutDataset.toArray());
const tx = rlcInstanceAsRequester.approveAndCall(proxyAddress, dealCost, encodedOrders);
@@ -277,7 +269,7 @@ describe('IexecEscrowToken-receiveApproval', () => {
volume: volume,
});
- await signAndPrepareOrders(orders);
+ await signOrders(iexecWrapper.getDomain(), orders, ordersActors);
const dealCost = (appPrice + datasetPrice + workerpoolPrice) * volume;
const schedulerStake = await iexecWrapper.computeSchedulerDealStake(
@@ -288,7 +280,7 @@ describe('IexecEscrowToken-receiveApproval', () => {
await iexecWrapper.depositInIexecAccount(scheduler, schedulerStake);
const initialBalance = await iexecPoco.balanceOf(requester.address);
- const encodedOrders = encodeOrdersForCallback(orders);
+ const encodedOrders = encodeOrders(...orders.toArray());
await rlcInstanceAsRequester.approveAndCall(proxyAddress, dealCost, encodedOrders);
// The available balance remains unchanged because the deposit is immediately frozen
@@ -306,7 +298,7 @@ describe('IexecEscrowToken-receiveApproval', () => {
});
const dealCost = (appPrice + datasetPrice + workerpoolPrice) * volume;
- const encodedOrders = encodeOrdersForCallback(orders);
+ const encodedOrders = encodeOrders(...orders.toArray());
await expect(
rlcInstanceAsRequester.approveAndCall(proxyAddress, dealCost, encodedOrders),
@@ -322,7 +314,7 @@ describe('IexecEscrowToken-receiveApproval', () => {
volume: volume,
});
- await signAndPrepareOrders(orders);
+ await signOrders(iexecWrapper.getDomain(), orders, ordersActors);
const dealCost = (appPrice + datasetPrice + workerpoolPrice) * volume;
const schedulerStake = await iexecWrapper.computeSchedulerDealStake(
@@ -333,7 +325,7 @@ describe('IexecEscrowToken-receiveApproval', () => {
await iexecWrapper.depositInIexecAccount(scheduler, schedulerStake);
const insufficientAmount = dealCost - 1n;
- const encodedOrders = encodeOrdersForCallback(orders);
+ const encodedOrders = encodeOrders(...orders.toArray());
// Should revert from matchOrders due to insufficient balance
await expect(
@@ -386,9 +378,9 @@ describe('IexecEscrowToken-receiveApproval', () => {
salt: ethers.hexlify(ethers.randomBytes(32)),
});
- await signAndPrepareOrders(orders1);
+ await signOrders(iexecWrapper.getDomain(), orders1, ordersActors);
- const encodedOrders1 = encodeOrdersForCallback(orders1);
+ const encodedOrders1 = encodeOrders(...orders1.toArray());
const tx1 = await rlcInstanceAsRequester.approveAndCall(
proxyAddress,
@@ -411,9 +403,9 @@ describe('IexecEscrowToken-receiveApproval', () => {
salt: ethers.hexlify(ethers.randomBytes(32)),
});
- await signAndPrepareOrders(orders2);
+ await signOrders(iexecWrapper.getDomain(), orders2, ordersActors);
- const encodedOrders2 = encodeOrdersForCallback(orders2);
+ const encodedOrders2 = encodeOrders(...orders2.toArray());
const tx2 = await rlcInstanceAsRequester.approveAndCall(
proxyAddress,
@@ -439,13 +431,13 @@ describe('IexecEscrowToken-receiveApproval', () => {
volume: volume,
});
- await signAndPrepareOrders(ordersZeroPrice);
+ await signOrders(iexecWrapper.getDomain(), ordersZeroPrice, ordersActors);
const schedulerStake = await iexecWrapper.computeSchedulerDealStake(0n, volume);
await iexecWrapper.depositInIexecAccount(scheduler, schedulerStake);
const dealCost = 0n;
- const encodedOrders = encodeOrdersForCallback(ordersZeroPrice);
+ const encodedOrders = encodeOrders(...ordersZeroPrice.toArray());
const tx = await rlcInstanceAsRequester.approveAndCall(
proxyAddress,
@@ -464,23 +456,18 @@ describe('IexecEscrowToken-receiveApproval', () => {
// Deploy the mock helper contract that fails silently
// This tests that the generalized _executeOperation properly handles
// delegatecall failures and bubbles up errors
- const mockFacet = await new ReceiveApprovalTestHelper__factory()
+ const mockFacetAddress = await new MatchOrdersFacetMock__factory()
.connect(iexecAdmin)
.deploy()
- .then((tx) => tx.waitForDeployment());
-
- const mockFacetAddress = await mockFacet.getAddress();
-
- const mockFactory = new ReceiveApprovalTestHelper__factory();
- const matchOrdersSelector = getFunctionSelectors(mockFactory)[0]; // matchOrders is the only function
+ .then((tx) => tx.waitForDeployment())
+ .then((contract) => contract.getAddress());
+ const matchOrdersSelector = getFunctionSelectors(
+ new MatchOrdersFacetMock__factory(),
+ )[0]; // matchOrders is the only function
const diamondLoupe = await ethers.getContractAt('DiamondLoupeFacet', proxyAddress);
const originalFacetAddress = await diamondLoupe.facetAddress(matchOrdersSelector);
- const diamondCut = await ethers.getContractAt(
- 'DiamondCutFacet',
- proxyAddress,
- iexecAdmin,
- );
+ const diamondCut = DiamondCutFacet__factory.connect(proxyAddress, iexecAdmin);
await diamondCut.diamondCut(
[
@@ -504,7 +491,7 @@ describe('IexecEscrowToken-receiveApproval', () => {
volume: volume,
});
- const encodedOrders = encodeOrdersForCallback(orders);
+ const encodedOrders = encodeOrders(...orders.toArray());
const tx = rlcInstanceAsRequester.approveAndCall(
proxyAddress,
@@ -527,12 +514,4 @@ describe('IexecEscrowToken-receiveApproval', () => {
);
});
});
-
- async function signAndPrepareOrders(orders: IexecOrders): Promise {
- await signOrders(iexecWrapper.getDomain(), orders, ordersActors);
- }
-
- function encodeOrdersForCallback(orders: IexecOrders): string {
- return encodeOrders(orders.app, orders.dataset, orders.workerpool, orders.requester);
- }
});
diff --git a/test/byContract/IexecPocoBoost/IexecEscrow.v8.test.ts b/test/byContract/IexecPocoBoost/IexecEscrow.test.ts
similarity index 99%
rename from test/byContract/IexecPocoBoost/IexecEscrow.v8.test.ts
rename to test/byContract/IexecPocoBoost/IexecEscrow.test.ts
index 37e4d3707..7a38a6888 100644
--- a/test/byContract/IexecPocoBoost/IexecEscrow.v8.test.ts
+++ b/test/byContract/IexecPocoBoost/IexecEscrow.test.ts
@@ -16,7 +16,7 @@ let iexecEscrow: IexecEscrowTestContract;
let iexecEscrowAddress: string;
let account: SignerWithAddress;
-describe('IexecEscrow.v8', function () {
+describe('IexecEscrow', function () {
beforeEach('Deploy', async () => {
// Initialize test environment
await loadFixture(initFixture);