1818
1919pragma solidity ^ 0.8.24 ;
2020
21- import {IexecOrderManagement} from "@iexec/poco/contracts/modules/interfaces/IexecOrderManagement.v8.sol " ;
22- import {IexecPoco1} from "@iexec/poco/contracts/modules/interfaces/IexecPoco1.v8.sol " ;
21+ // TODO import interfaces (IexecOrderManagement, IexecPoco1, ...) from @iexec/poco.
2322
24- interface IPoCo is IexecOrderManagement , IexecPoco1 {
25- // Add missing functions where inheritance is not possible because
26- // of different Solidity versions.
23+ interface IPoCo {
2724
2825 // IexecEscrowNative
2926 function deposit () external payable returns (bool ); // Native mode
@@ -46,4 +43,107 @@ interface IPoCo is IexecOrderManagement, IexecPoco1 {
4643 ) external returns (bool );
4744 function balanceOf (address owner ) external view returns (uint256 );
4845 function allowance (address owner , address spender ) external view returns (uint256 );
46+
47+ // IexecOrderManagement
48+ function manageAppOrder (IexecLibOrders_v5.AppOrderOperation calldata ) external ;
49+ function manageDatasetOrder (IexecLibOrders_v5.DatasetOrderOperation calldata ) external ;
50+ function manageWorkerpoolOrder (IexecLibOrders_v5.WorkerpoolOrderOperation calldata ) external ;
51+ function manageRequestOrder (IexecLibOrders_v5.RequestOrderOperation calldata ) external ;
52+
53+ // IexecPoco1
54+ function matchOrders (
55+ IexecLibOrders_v5.AppOrder calldata ,
56+ IexecLibOrders_v5.DatasetOrder calldata ,
57+ IexecLibOrders_v5.WorkerpoolOrder calldata ,
58+ IexecLibOrders_v5.RequestOrder calldata
59+ ) external returns (bytes32 );
60+ }
61+
62+ // TODO import from @iexec/poco
63+ library IexecLibOrders_v5 {
64+ enum OrderOperationEnum {
65+ SIGN,
66+ CLOSE
67+ }
68+
69+ struct AppOrder {
70+ address app;
71+ uint256 appprice;
72+ uint256 volume;
73+ bytes32 tag;
74+ address datasetrestrict;
75+ address workerpoolrestrict;
76+ address requesterrestrict;
77+ bytes32 salt;
78+ bytes sign;
79+ }
80+
81+ struct DatasetOrder {
82+ address dataset;
83+ uint256 datasetprice;
84+ uint256 volume;
85+ bytes32 tag;
86+ address apprestrict;
87+ address workerpoolrestrict;
88+ address requesterrestrict;
89+ bytes32 salt;
90+ bytes sign;
91+ }
92+
93+ struct WorkerpoolOrder {
94+ address workerpool;
95+ uint256 workerpoolprice;
96+ uint256 volume;
97+ bytes32 tag;
98+ uint256 category;
99+ uint256 trust;
100+ address apprestrict;
101+ address datasetrestrict;
102+ address requesterrestrict;
103+ bytes32 salt;
104+ bytes sign;
105+ }
106+
107+ struct RequestOrder {
108+ address app;
109+ uint256 appmaxprice;
110+ address dataset;
111+ uint256 datasetmaxprice;
112+ address workerpool;
113+ uint256 workerpoolmaxprice;
114+ address requester;
115+ uint256 volume;
116+ bytes32 tag;
117+ uint256 category;
118+ uint256 trust;
119+ address beneficiary;
120+ address callback;
121+ string params;
122+ bytes32 salt;
123+ bytes sign;
124+ }
125+
126+ struct AppOrderOperation {
127+ AppOrder order;
128+ OrderOperationEnum operation;
129+ bytes sign;
130+ }
131+
132+ struct DatasetOrderOperation {
133+ DatasetOrder order;
134+ OrderOperationEnum operation;
135+ bytes sign;
136+ }
137+
138+ struct WorkerpoolOrderOperation {
139+ WorkerpoolOrder order;
140+ OrderOperationEnum operation;
141+ bytes sign;
142+ }
143+
144+ struct RequestOrderOperation {
145+ RequestOrder order;
146+ OrderOperationEnum operation;
147+ bytes sign;
148+ }
49149}
0 commit comments