Skip to content

Commit 91cdf7a

Browse files
justinkasemanRensRibrajer
authored
(chore): Move CRE subfolders into versioned folders (#327)
* Combine CRE keystone & workflow into versioned folders * Re-add gobindings * Amend compilation scripts * Regen wrappers * add -dev to ShardConfig TypeAndVersion * cleanup foundry.toml, gen wrappers * move dev to `latest` instead of versioned folder * Add viaIR flag for cre v1 coverage check * Exclude WorklowRegistry v1 from coverage due to known limitations * Replace no-match-contract with no-match-path * Fixed GHA yaml issue * Exclude test folder for v1 in coverage step * Disable coverage check for cre v1 for now --------- Co-authored-by: Rens Rooimans <github@rensrooimans.nl> Co-authored-by: Iva Brajer <iva.brajer@smartcontract.com>
1 parent cb34388 commit 91cdf7a

261 files changed

Lines changed: 637 additions & 5163 deletions

File tree

Some content is hidden

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

.github/workflows/solidity-foundry.yml

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -29,14 +29,15 @@ jobs:
2929
cat <<EOF > matrix.json
3030
[
3131
{ "name": "automation", "setup": { "run-coverage": false, "min-coverage": 98.5, "run-gas-snapshot": false }},
32+
{ "name": "dev", "setup": { "run-coverage": true, "extra-coverage-params": "--ir-minimum", "min-coverage": 72.8, "run-gas-snapshot": true, "subfolder": "/cre" }},
33+
{ "name": "v1", "setup": { "run-coverage": false, "extra-coverage-params": "--ir-minimum --no-match-coverage='(.*v1/test.*)|(.*v2/test.*)'", "min-coverage": 72.8, "run-gas-snapshot": true, "subfolder": "/cre" }},
34+
{ "name": "v2", "setup": { "run-coverage": true, "extra-coverage-params": "--ir-minimum --no-match-coverage='(.*v1/test.*)|(.*v2/test.*)'", "min-coverage": 93, "run-gas-snapshot": true, "subfolder": "/cre" }},
3235
{ "name": "functions", "setup": { "run-coverage": false, "min-coverage": 98.5, "run-gas-snapshot": true }},
3336
{ "name": "l2ep", "setup": { "run-coverage": true, "min-coverage": 65.0, "run-gas-snapshot": true }},
3437
{ "name": "llo-feeds", "setup": { "run-coverage": true, "min-coverage": 49.3, "run-gas-snapshot": true }},
3538
{ "name": "operatorforwarder", "setup": { "run-coverage": true, "min-coverage": 55.7, "run-gas-snapshot": true }},
3639
{ "name": "shared", "setup": { "run-coverage": true, "extra-coverage-params": "--no-match-path='*CallWithExactGas*' --ir-minimum", "min-coverage": 29, "run-gas-snapshot": true }},
3740
{ "name": "vrf", "setup": { "run-coverage": false, "min-coverage": 98.5, "run-gas-snapshot": false }},
38-
{ "name": "workflow", "setup": { "run-coverage": true, "extra-coverage-params": "--ir-minimum --no-match-coverage='(.*v1/test.*)|(.*v2/test.*)'", "min-coverage": 93.0, "run-gas-snapshot": true, "subfolder": "/cre" }},
39-
{ "name": "keystone", "setup": { "run-coverage": true, "min-coverage": 72.8, "run-gas-snapshot": false, "subfolder": "/cre" }},
4041
{ "name": "data-feeds", "setup": { "run-coverage": true, "min-coverage": 98.5, "run-gas-snapshot": true, "extra-coverage-params": "--no-match-coverage='WIP*'" }},
4142
{ "name": "payments", "setup": { "run-coverage": true, "min-coverage": 100, "run-gas-snapshot": true, "extra-coverage-params": "" }}
4243
]
@@ -87,8 +88,8 @@ jobs:
8788
- 'contracts/src/v0.8/automation/**/*.sol'
8889
functions:
8990
- 'contracts/src/v0.8/functions/**/*.sol'
90-
keystone:
91-
- 'contracts/cre/src/keystone/**/*.sol'
91+
cre:
92+
- 'contracts/cre/src/**/*.sol'
9293
l2ep:
9394
- 'contracts/src/v0.8/l2ep/**/*.sol'
9495
llo-feeds:
@@ -100,8 +101,6 @@ jobs:
100101
shared:
101102
- 'contracts/src/v0.8/shared/**/*.sol'
102103
- 'contracts/src/v0.8/vendor/**/*.sol'
103-
workflow:
104-
- 'contracts/cre/src/workflow/**/*.sol'
105104
data-feeds:
106105
- 'contracts/src/v0.8/data-feeds/**/*.sol'
107106
@@ -124,6 +123,8 @@ jobs:
124123
- '!contracts/src/v0.8/**/testhelpers/**'
125124
- '!contracts/src/v0.8/testhelpers/**'
126125
- '!contracts/src/v0.8/vendor/**'
126+
- '!contracts/cre/src/**/test/**'
127+
- '!contracts/cre/src/**/mocks/**'
127128
128129
tests:
129130
if: ${{ needs.changes.outputs.non_src_changes == 'true' || needs.changes.outputs.sol_modified_added == 'true' }}
@@ -132,7 +133,7 @@ jobs:
132133
matrix:
133134
product: ${{fromJson(needs.define-matrix.outputs.matrix)}}
134135
needs: [define-matrix, changes]
135-
name: Foundry Tests ${{ matrix.product.name }}
136+
name: Foundry Tests ${{ matrix.product.setup.subfolder || '' }} ${{ matrix.product.name }}
136137
runs-on: ubuntu-22.04
137138

138139
# The if statements for steps after checkout repo is workaround for

contracts/cre/.solhintignore-test

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,2 @@
1-
src/keystone/
2-
31
node_modules/
42

contracts/cre/GNUmakefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# ALL_FOUNDRY_PRODUCTS contains a list of all products that have a foundry
22
# profile defined and use the Foundry snapshots.
3-
ALL_FOUNDRY_PRODUCTS = keystone workflow
3+
ALL_FOUNDRY_PRODUCTS = dev v1 v2
44

55
# To make a snapshot for a specific product, either set the `FOUNDRY_PROFILE` env var
66
# or call the target with `FOUNDRY_PROFILE=product`

contracts/cre/foundry.toml

Lines changed: 17 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,7 @@
11
[profile.default]
2-
auto_detect_solc = true
3-
optimizer = true
4-
optimizer_runs = 1_000_000
52
evm_version = 'paris'
3+
optimizer = true
64
via_ir = true
7-
8-
src = 'src/'
9-
test = 'test/'
105
out = 'foundry-artifacts'
116
cache_path = 'foundry-cache'
127
libs = ['node_modules']
@@ -19,43 +14,32 @@ gas_price = 1
1914
block_timestamp = 1234567890
2015
block_number = 12345
2116

22-
[fmt]
23-
tab_width = 2
24-
multiline_func_header = "params_first"
25-
sort_imports = true
26-
single_line_statement_blocks = "preserve"
27-
ignore = ["src/v0.8/vendor/**/*.sol"]
28-
number_underscore = "thousands"
29-
wrap_comments = true
30-
31-
[profile.workflow]
32-
src = 'src/workflow'
33-
34-
[profile.workflow-v1]
17+
[profile.v1]
3518
optimizer_runs = 1_000_000
3619
solc_version = '0.8.24'
37-
src = 'src/workflow/v1'
38-
test = 'src/workflow/v1/test'
20+
src = 'src/v1'
21+
test = 'src/v1/test'
3922

40-
[profile.workflow-v2]
23+
[profile.v2]
4124
optimizer_runs = 1_000
4225
solc_version = '0.8.26'
43-
src = 'src/workflow/v2'
44-
test = 'src/workflow/v2/test'
26+
src = 'src/v2'
27+
test = 'src/v2/test'
4528

46-
[profile.keystone]
29+
[profile.dev]
4730
optimizer_runs = 1_000_000
4831
solc_version = '0.8.24'
49-
src = 'src/keystone'
50-
test = 'src/keystone/test'
32+
src = 'src/dev'
33+
test = 'src/dev/test'
5134
via_ir = false
5235

53-
[profile.shardconfig]
54-
optimizer_runs = 1_000_000
55-
solc_version = '0.8.24'
56-
src = 'src/shardconfig'
57-
test = 'src/shardconfig/test'
58-
via_ir = false
36+
[fmt]
37+
tab_width = 2
38+
multiline_func_header = "params_first"
39+
sort_imports = true
40+
single_line_statement_blocks = "preserve"
41+
number_underscore = "thousands"
42+
wrap_comments = true
5943

6044
# See more config options https://github.com/foundry-rs/foundry/tree/master/config
6145

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
MessageEmitter_BasicTest:test_EmitMessage_EmitsEventAndUpdatesLastMessage() (gas: 66399)
2+
MessageEmitter_BasicTest:test_EmitMessage_MultipleAddressesSameBlock() (gas: 117924)
3+
MessageEmitter_BasicTest:test_EmitMessage_SucceedsInNextBlock() (gas: 90723)
4+
MessageEmitter_BasicTest:test_GetMessage_Succeeds_WhenExists() (gas: 62952)
5+
MessageEmitter_BasicTest:test_TypeAndVersion() (gas: 9616)
6+
MockKeystoneForwarder_BasicTest:test_GetTransmissionId_MatchesManual() (gas: 9375)
7+
MockKeystoneForwarder_BasicTest:test_GetTransmissionInfo_NotAttempted_And_GetTransmitter_Zero() (gas: 19659)
8+
MockKeystoneForwarder_BasicTest:test_IsForwarder_SelfTrue_AddRemove() (gas: 32448)
9+
MockKeystoneForwarder_BasicTest:test_Route_Direct_Failure() (gas: 48805)
10+
MockKeystoneForwarder_BasicTest:test_Route_Direct_Success() (gas: 51514)
11+
MockKeystoneForwarder_BasicTest:test_TypeAndVersion() (gas: 9731)
12+
ReserveManagerTest:testOnReportUpdatesStateAndEmitsEvent() (gas: 81553)
13+
ReserveManagerTest:testSupportsInterface() (gas: 12071)
14+
ShardConfigTest:testConstructor_RevertZeroShardCount() (gas: 58081)
15+
ShardConfigTest:testConstructor_Success() (gas: 13715)
16+
ShardConfigTest:testGetDesiredShardCount() (gas: 10390)
17+
ShardConfigTest:testOwnershipTransfer() (gas: 29818)
18+
ShardConfigTest:testSetDesiredShardCount_EmitsEvent() (gas: 17833)
19+
ShardConfigTest:testSetDesiredShardCount_RevertNotOwner() (gas: 10795)
20+
ShardConfigTest:testSetDesiredShardCount_RevertZeroCount() (gas: 10648)
21+
ShardConfigTest:testSetDesiredShardCount_Success() (gas: 18700)
22+
ShardConfigTest:testTypeAndVersion() (gas: 9705)

contracts/cre/gas-snapshots/keystone.gas-snapshot

Lines changed: 0 additions & 45 deletions
This file was deleted.

0 commit comments

Comments
 (0)