Skip to content

Commit 57b7774

Browse files
authored
Release/5.5.1 (#220)
1 parent 4821374 commit 57b7774

File tree

126 files changed

+21497
-47796
lines changed

Some content is hidden

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

126 files changed

+21497
-47796
lines changed

.github/workflows/main.yml

Lines changed: 24 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,31 +10,50 @@ on:
1010
- v5
1111

1212
jobs:
13+
# Note: changing the name of the job disables Slither checks with the error:
14+
# Warning: Code scanning cannot determine the alerts introduced by this pull
15+
# request, because 1 configuration present on refs/heads/develop was not found:
16+
#
17+
# Actions workflow (main.yml)
18+
# ❓ .github/workflows/main.yml:coverage
1319
coverage:
1420
runs-on: ubuntu-latest
1521
steps:
1622
- name: Checkout
1723
uses: actions/checkout@v4
18-
- name: Init
24+
- name: Set up Nodejs
25+
uses: actions/setup-node@v4
26+
with:
27+
node-version: 20
28+
cache: 'npm' # Cache dependencies
29+
- name: Install dependencies
1930
run: npm ci
31+
- name: Build
32+
run: npm run build
33+
- name: Check storage layout
34+
run: npm run check-storage-layout
35+
- name: Test deployment
36+
run: npm run deploy
37+
- name: Test Timelock deployment
38+
run: npm run deploy:timelock
2039
- name: Run coverage
2140
run: npm run coverage
41+
- name: Run partial native tests
42+
run: npm run test:native
2243
- name: Upload coverage reports to Codecov
2344
uses: codecov/[email protected]
2445
with:
2546
token: ${{ secrets.CODECOV_TOKEN }}
2647
slug: iExecBlockchainComputing/PoCo
27-
- name: Run static analysis with slither
48+
- name: Run static analysis with Slither
2849
uses: crytic/[email protected]
29-
id: slither
3050
with:
3151
target: "contracts/tools/testing/slither/"
3252
solc-version: '0.8.21'
3353
slither-args: --checklist --markdown-root ${{ github.server_url }}/${{ github.repository }}/blob/${{ github.sha }}/
34-
node-version: "20"
3554
fail-on: none # TODO set this to high or other
3655
sarif: results.sarif
3756
- name: Upload SARIF file
3857
uses: github/codeql-action/upload-sarif@v3
3958
with:
40-
sarif_file: ${{ steps.slither.outputs.sarif }}
59+
sarif_file: results.sarif

.github/workflows/publish.yml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
name: Publish NPM Package
2+
3+
on:
4+
release:
5+
types: [published]
6+
7+
jobs:
8+
publish:
9+
uses: iExecBlockchainComputing/github-actions-workflows/.github/workflows/[email protected]
10+
secrets:
11+
npm-token: ${{ secrets.NPM_TOKEN }}

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
**/__pycache__
22
node_modules
3+
.DS_Store
34

45
coverage
56
coverage.json

.nvmrc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
20

.prettierrc

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,14 @@
1616
{
1717
"files": "*.sol",
1818
"options": {
19-
"singleQuote": false
20-
}
19+
"singleQuote": false
20+
}
21+
},
22+
{
23+
"files": ["**/*.json", "**/*.yml"],
24+
"options": {
25+
"tabWidth": 2
26+
}
2127
}
2228
]
2329
}

.solcover.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ module.exports = {
1717
},
1818
skipFiles: [
1919
'tools/Migrations.sol',
20+
'tools/testing/ERC734Mock.sol',
2021
'tools/testing/ERC1271Mock.sol',
2122
'tools/testing/TestClient.sol',
2223
'tools/testing/TestReceiver.sol',

CHANGELOG.md

Lines changed: 147 additions & 84 deletions
Original file line numberDiff line numberDiff line change
@@ -1,44 +1,106 @@
11
# Changelog
22

3+
## v5.5.1
4+
5+
- Add Github Action CI in order to publish NPM package
6+
7+
### Updated contracts
8+
9+
- [x] `IexecPoco2Delegate.sol`
10+
11+
### Features
12+
13+
- Housekeeping (#207)
14+
- Add Halborn "Poco v5.5 & Voucher v1.0" audit report (#205)
15+
- Refactor Factory deployer (#206)
16+
- Enable native tests on CI (#204)
17+
- Migrate to Ethers v6:
18+
- Deployment scripts (#187, #203)
19+
- Tests
20+
- IexecEscrow (#199)
21+
- ENSIntegration, IexecOrderManagement, IexecRelay (#195, #199)
22+
- IexecCategoryManager, IexecERC20 (#192, #199, #202)
23+
- test/*fullchain* (#190, #196)
24+
- IexecAccessors, IexecMaintenance (#189, #191, #199)
25+
- IexecPoco (#196)
26+
- `trust` specific field (#201)
27+
- IexecPocoBoost (#198)
28+
- fixed a minor issue in BigInt for IexecWrapper (#202).
29+
- Migrate scripts to TypeScript: (#184)
30+
- `getFunctionSignatures.js`, `common-test-snapshot.js`, `test-storage.js`, `timelock.js`
31+
- Migrated utility files to TypeScript : (#183)
32+
- `FactoryDeployer.js`, `constants.js`, `odb-tools.js`
33+
- Removed deprecated `scripts/ens/sidechain.js`
34+
- Purge Truffle leftovers (#180, #181, #182, #185, #186)
35+
- Sunset Jenkins pipeline (#178)
36+
- Re-use variable in `IexecPoco2Delegate` in `contribute(...)` function. (#168)
37+
- Remove unnecessary back and forth transfers in `IexecPoco2Delegate` happening during `claim(..)`. (#167)
38+
- Remove references to blockscout v5. (#161)
39+
- Migrate integration test files to Typescript & Hardhat:
40+
- 000_fullchain.js (#156, #157)
41+
- 00X_fullchain-Xworkers.js (#158, #159)
42+
- 000_fullchain-5workers-1error.js (#160, #162)
43+
- Clean ToDo (#163)
44+
- 200_fullchain-bot.js (#164, #166)
45+
- 201_fullchain-bot-dualPool.js (#171, #172)
46+
- Fix balance checks in integration tests (#165)
47+
- 300_fullchain-reopen.js (#170, #173)
48+
- 000_fullchain-ABILegacy.js (#174, #175)
49+
- 400_contributeAndCallback.js (#176, #177)
50+
- Remove `smock` from unit tests:
51+
- IexecEscrow.v8 (#154, #155)
52+
- IexecPocoDelegate (#149, #151)
53+
- IexecPocoBoost (#148, #150, #153)
54+
- Migrate unit test files to Typescript & Hardhat:
55+
- ERC1154 (#145, #146, #147, #152)
56+
- IexecEscrowToken (#141, #143)
57+
- IexecRelay (#140)
58+
- IexecPoco1 (#136, #137)
59+
- IexecPoco2
60+
- kitty (#142, #144)
61+
- reopen (#135)
62+
363
## v5.5.0
464

565
### What's new?
66+
667
- Added the ability to sponsor a deal for a requester via the new `sponsorMatchOrders(..)` function.
7-
- contracts implementation ✍️
8-
- deployment on iExec Bellecour network 🚀
68+
- contracts implementation ✍️
69+
- deployment on iExec Bellecour network 🚀
970
- Initialized « boost » mode to improve deal throughput
10-
- contracts implementation ✍️
71+
- contracts implementation ✍️
1172

1273
### More details
74+
1375
- Include `IexecOrderManagement` module in Poco sponsoring upgrade. (#132)
1476
- Update function visibilities to `external` in `IexecPoco` and `IexecOrderManagement` modules. (#131)
1577
- Fix configs native and token. (#129)
1678
- Bump dependencies: (#127)
17-
- `@openzeppelin/hardhat-upgrades`, `hardhat-dependency-compiler`, `web3`,
79+
- `@openzeppelin/hardhat-upgrades`, `hardhat-dependency-compiler`, `web3`,
1880
`prettier`, `zx`, and others [minor/patch version bump]
19-
- `prettier-plugin-organize-imports@4`
81+
- `prettier-plugin-organize-imports@4`
2082
- Clean some TODOs and harmonize unit tests. (#123)
2183
- Add `set-callback-gas.ts` script. (#121)
2284
- Accept any signature format in `SignatureVerifier.v8` when the account is a smart contract. (#120)
2385
- Update UML class diagrams. (#112)
2486
- Generate Solidity documentation. (#111)
2587
- Migrate unit test files to Typescript & Hardhat:
26-
- Resources (#125, #126)
27-
- Registries (#122, #124)
28-
- IexecPoco2
29-
- reopen (#133)
30-
- finalize (#79, #117, #119)
31-
- reveal (#114, #118)
32-
- contribute (#108, #109, #110)
33-
- IexecPoco1 (#107, #113, #115, #116)
34-
- Add `.test` suffix to unit test files (#106)
35-
- ENSIntegration (#105)
36-
- IexecOrderManagement (#101, #102, #103, #104)
37-
- IexecMaintenance (#100)
38-
- IexecEscrowNative (#99)
39-
- IexecERC20 (#98)
40-
- IexecCategoryManager (#97)
41-
- IexecAccessors (#96)
88+
- Resources (#125, #126)
89+
- Registries (#122, #124)
90+
- IexecPoco2
91+
- reopen (#133)
92+
- finalize (#79, #117, #119)
93+
- reveal (#114, #118)
94+
- contribute (#108, #109, #110)
95+
- IexecPoco1 (#107, #113, #115, #116)
96+
- Add `.test` suffix to unit test files (#106)
97+
- ENSIntegration (#105)
98+
- IexecOrderManagement (#101, #102, #103, #104)
99+
- IexecMaintenance (#100)
100+
- IexecEscrowNative (#99)
101+
- IexecERC20 (#98)
102+
- IexecCategoryManager (#97)
103+
- IexecAccessors (#96)
42104
- Wait for transactions occurring during deployment. (#95)
43105
- Deploy and configure ENS with hardhat. (#93)
44106
- Fix contribute & finalize with callbacks. (#92)
@@ -54,23 +116,23 @@
54116
- Refund sponsor on `claim`. (#77)
55117
- Sponsor match orders boost. (#67, #78)
56118
- Migrate to hardhat tests related to:
57-
- `initialize` (#74, #75)
58-
- `claim` (#65, #66, #72, #76)
119+
- `initialize` (#74, #75)
120+
- `claim` (#65, #66, #72, #76)
59121
- Upgrade Poco2 to solidity v0.8 . (#63)
60122
- Use common helpers in Poco Boost integration tests. (#62)
61123
- Upload coverage reports to Codecov. (#61)
62124
- Deploy contracts in tests explicitly with hardhat or truffle fixture. (#59)
63125
- Add the ability to deploy without truffle fixture. (#58)
64126
- Sponsor match orders. (#57, #60)
65127
- Upgrade Poco1 to solidity `^0.8.0` (#55):
66-
- Migrate to `openzeppelin@v5`
67-
- Migrate to `SignatureVerifier.v8`
128+
- Migrate to `openzeppelin@v5`
129+
- Migrate to `SignatureVerifier.v8`
68130
- Change MNEMONIC var name for production & clean Hardhat file. (#53)
69131
- Format files & update copyright notices:
70-
- DelegateBase, IexecERC20Core (#64)
71-
- PoCo2 contracts (#54)
72-
- PoCo1 contracts (#52)
73-
- Order Management contract (#83)
132+
- DelegateBase, IexecERC20Core (#64)
133+
- PoCo2 contracts (#54)
134+
- PoCo1 contracts (#52)
135+
- Order Management contract (#83)
74136
- Remove enterprise mode. (#51, #56)
75137
- Add PoCo Boost modules to a timelock controlled proxy.
76138
- Add IexecEscrow.v8 tests and developer notices.
@@ -97,50 +159,50 @@
97159
- Refactor tests.
98160
- Add dedicated Poco Boost accessors.
99161
- Implement `claimBoost`:
100-
- Refund requester.
101-
- Seize workerpool and reward kitty.
162+
- Refund requester.
163+
- Seize workerpool and reward kitty.
102164
- Implement `pushResultBoost`:
103-
- Verify task exists.
104-
- Push result before deadline.
105-
- Require enclave challenge when TEE bit of tag set.
106-
- Verify signatures
107-
- scheduler
108-
- enclave
109-
- tee broker
110-
- Reward worker.
111-
- Reward app provider.
112-
- Reward dataset provider.
113-
- Unlock scheduler stake.
114-
- Reward scheduler.
115-
- Handle callback.
165+
- Verify task exists.
166+
- Push result before deadline.
167+
- Require enclave challenge when TEE bit of tag set.
168+
- Verify signatures
169+
- scheduler
170+
- enclave
171+
- tee broker
172+
- Reward worker.
173+
- Reward app provider.
174+
- Reward dataset provider.
175+
- Unlock scheduler stake.
176+
- Reward scheduler.
177+
- Handle callback.
116178
- Implement `matchOrdersBoost`:
117-
- Verify compatibility of orders
118-
- trust
119-
- category
120-
- price
121-
- tag
122-
- restrictions
123-
- Assets or requester belong to groups in ERC734 identity contract.
124-
- Verify entries are registered & category exists.
125-
- Verify signatures or presignatures of orders.
179+
- Verify compatibility of orders
180+
- trust
181+
- category
182+
- price
183+
- tag
184+
- restrictions
185+
- Assets or requester belong to groups in ERC734 identity contract.
186+
- Verify entries are registered & category exists.
187+
- Verify signatures or presignatures of orders.
126188
- ERC1271 contracts can be signers of orders.
127-
- Compute volume & consume orders.
128-
- Lock requester deal value.
129-
- Store deal.
130-
- Emit events.
131-
- Lock scheduler stake.
132-
- Return `dealId`.
133-
- Reduce gas footprint:
134-
- Remove beneficiary from deal storage.
135-
- Reduce Boost deal storage from 6 to 5 slots.
136-
- Reduce gas consumption on `lock()` calls.
137-
- Cache addresses of assets and requester from arguments.
138-
- Init local vars and cache order category.
139-
- Optimize deal storing by slot.
140-
- Change local structure for local variables.
141-
- Store in variable if read multiple times.
142-
- Group `hasDataset` block.
143-
- Remove useless variable.
189+
- Compute volume & consume orders.
190+
- Lock requester deal value.
191+
- Store deal.
192+
- Emit events.
193+
- Lock scheduler stake.
194+
- Return `dealId`.
195+
- Reduce gas footprint:
196+
- Remove beneficiary from deal storage.
197+
- Reduce Boost deal storage from 6 to 5 slots.
198+
- Reduce gas consumption on `lock()` calls.
199+
- Cache addresses of assets and requester from arguments.
200+
- Init local vars and cache order category.
201+
- Optimize deal storing by slot.
202+
- Change local structure for local variables.
203+
- Store in variable if read multiple times.
204+
- Group `hasDataset` block.
205+
- Remove useless variable.
144206
- Update prettier rules and reformat.
145207
- Migrate `IexecPocoBoost` linking to hardhat deploy script.
146208
- Clean files related to docker build of a test blockchain.
@@ -151,25 +213,26 @@
151213
- Deploy Nominal and Boost modules with Hardhat.
152214
- Upgrade `hashStruct` function to use `ethers`.
153215
- Add Boost module.
154-
- Add interfaces.
216+
- Add interfaces.
155217
- Add `Store` contract compatible with solidity `^0.8.0`.
156218
- Update documentation:
157-
- Generate class diagrams from solidity contracts.
158-
- Add task and contribution state diagrams.
159-
- Add boost workflow sequence diagram. Update nominal workflow sequence diagram.
160-
- Update TEE workflow sequence diagram.
161-
- Update actors diagram.
162-
- Rename UMLs.md file to standard README.md.
163-
- Add inline solidity documentation.
164-
- Update class diagrams.
165-
- Create folder docs that contains all documentation material.
219+
- Generate class diagrams from solidity contracts.
220+
- Add task and contribution state diagrams.
221+
- Add boost workflow sequence diagram. Update nominal workflow sequence diagram.
222+
- Update TEE workflow sequence diagram.
223+
- Update actors diagram.
224+
- Rename UMLs.md file to standard README.md.
225+
- Add inline solidity documentation.
226+
- Update class diagrams.
227+
- Create folder docs that contains all documentation material.
166228
- Migrate to Hardhat:
167-
- Init Hardhat project.
168-
- Migrate unit tests with `@nomiclabs/hardhat-truffle5`.
169-
- Fetch `@iexec/[email protected]` from default public registry.
170-
- Migrate tests coverage with [solidity-coverage](https://github.com/sc-forks/solidity-coverage) of `@nomicfoundation/hardhat-toolbox`.
229+
- Init Hardhat project.
230+
- Migrate unit tests with `@nomiclabs/hardhat-truffle5`.
231+
- Fetch `@iexec/[email protected]` from default public registry.
232+
- Migrate tests coverage with [solidity-coverage](https://github.com/sc-forks/solidity-coverage) of `@nomicfoundation/hardhat-toolbox`.
171233

172234
## v5.4.2
235+
173236
- Use latest Nethermind base image `nethermindeth/nethermind:iexec`
174237
(saved internally at `nexus.intra.iex.ec/nethermind:1.18.x-0`)
175238
containing a fix for [#5506](https://github.com/NethermindEth/nethermind/issues/5506).

0 commit comments

Comments
 (0)