From 948d6db05f2f8bf34b2e994e605c4c9cde458194 Mon Sep 17 00:00:00 2001 From: Matthew Slipper Date: Wed, 20 Nov 2024 11:19:35 -0700 Subject: [PATCH 1/5] feat: op-deployer upgrade, fix fork support --- README.md | 12 +++++++--- network_params.yaml | 8 +++---- src/contracts/contract_deployer.star | 36 ++++++++++++++++++++++++++-- src/package_io/input_parser.star | 16 +++++++++---- src/package_io/sanity_check.star | 3 ++- 5 files changed, 60 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index c8038dfe..5010677a 100644 --- a/README.md +++ b/README.md @@ -219,7 +219,7 @@ optimism_package: fjord_time_offset: 0 # Granite fork - # Defaults to None - not activated - decimal value + # Defaults to 0 (genesis activation) - decimal value # Offset is in seconds granite_time_offset: "" @@ -228,6 +228,11 @@ optimism_package: # Offset is in seconds holocene_time_offset: "" + # Isthmus fork + # Defaults to None - not activated - decimal value + # Offset is in seconds + isthmus_time_offset: "" + # Interop fork # Defaults to None - not activated - decimal value # Offset is in seconds @@ -254,8 +259,9 @@ optimism_package: # L2 contract deployer configuration - used for all L2 networks # The docker image that should be used for the L2 contract deployer op_contract_deployer_params: - image: mslipper/op-deployer:latest - artifacts_url: https://storage.googleapis.com/oplabs-contract-artifacts/artifacts-v1-4accd01f0c35c26f24d2aa71aba898dd7e5085a2ce5daadc8a84b10caf113409.tar.gz + image: us-docker.pkg.dev/oplabs-tools-artifacts/images/op-deployer:v0.0.6 + l1_artifacts_locator: op-contracts/v1.6.0 + l2_artifacts_locator: op-contracts/v1.7.0-beta.1+l2-contracts # The global log level that all clients should log at # Valid values are "error", "warn", "info", "debug", and "trace" diff --git a/network_params.yaml b/network_params.yaml index 5aed7bd0..5d84b2db 100644 --- a/network_params.yaml +++ b/network_params.yaml @@ -34,17 +34,15 @@ optimism_package: seconds_per_slot: 2 name: "op-kurtosis" fjord_time_offset: 0 - granite_time_offset: "" - holocene_time_offset: "" - interop_time_offset: "" + granite_time_offset: 0 + holocene_time_offset: 0 fund_dev_accounts: true batcher_params: image: "" extra_params: [] additional_services: [] op_contract_deployer_params: - image: mslipper/op-deployer:latest - artifacts_url: https://storage.googleapis.com/oplabs-contract-artifacts/artifacts-v1-4accd01f0c35c26f24d2aa71aba898dd7e5085a2ce5daadc8a84b10caf113409.tar.gz + image: us-docker.pkg.dev/oplabs-tools-artifacts/images/op-deployer:v0.0.6 global_log_level: "info" global_node_selectors: {} global_tolerations: [] diff --git a/src/contracts/contract_deployer.star b/src/contracts/contract_deployer.star index 19097d8c..c93c2f9c 100644 --- a/src/contracts/contract_deployer.star +++ b/src/contracts/contract_deployer.star @@ -40,12 +40,36 @@ def deploy_contracts( ), ) + hardfork_schedule = [] + for index, chain in enumerate(optimism_args.chains): + np = chain.network_params + + # rename each hardfork to the name the override expects + renames = ( + ("l2GenesisFjordTimeOffset", np.fjord_time_offset), + ("l2GenesisGraniteTimeOffset", np.granite_time_offset), + ("l2GenesisHoloceneTimeOffset", np.holocene_time_offset), + ("l2GenesisIsthmusTimeOffset", np.isthmus_time_offset), + ("l2GenesisInteropTimeOffset", np.interop_time_offset), + ) + + # only include the hardforks that have been activated since + # toml does not support null values + for fork_key, activation_timestamp in renames: + if activation_timestamp != None: + hardfork_schedule.append((index, fork_key, activation_timestamp)) + intent_updates = ( [ ( "string", - "contractArtifactsURL", - optimism_args.op_contract_deployer_params.artifacts_url, + "l1ContractsLocator", + optimism_args.op_contract_deployer_params.l1_artifacts_locator, + ), + ( + "string", + "l2ContractsLocator", + optimism_args.op_contract_deployer_params.l2_artifacts_locator, ), ] + [ @@ -64,6 +88,14 @@ def deploy_contracts( ) for index, chain in enumerate(optimism_args.chains) ] + + [ + ( + "string", + "chains.[{0}].deployOverrides.{1}".format(index, fork_key), + "0x%x" % activation_timestamp, + ) + for index, fork_key, activation_timestamp in hardfork_schedule + ] ) op_deployer_configure = plan.run_sh( diff --git a/src/package_io/input_parser.star b/src/package_io/input_parser.star index 7f192519..ea939519 100644 --- a/src/package_io/input_parser.star +++ b/src/package_io/input_parser.star @@ -80,6 +80,7 @@ def input_parser(plan, input_args): holocene_time_offset=result["network_params"][ "holocene_time_offset" ], + isthmus_time_offset=result["network_params"]["isthmus_time_offset"], interop_time_offset=result["network_params"]["interop_time_offset"], fund_dev_accounts=result["network_params"]["fund_dev_accounts"], ), @@ -93,7 +94,12 @@ def input_parser(plan, input_args): ], op_contract_deployer_params=struct( image=results["op_contract_deployer_params"]["image"], - artifacts_url=results["op_contract_deployer_params"]["artifacts_url"], + l1_artifacts_locator=results["op_contract_deployer_params"][ + "l1_artifacts_locator" + ], + l2_artifacts_locator=results["op_contract_deployer_params"][ + "l2_artifacts_locator" + ], ), global_log_level=results["global_log_level"], global_node_selectors=results["global_node_selectors"], @@ -204,8 +210,9 @@ def default_network_params(): "name": "op-kurtosis", "seconds_per_slot": 2, "fjord_time_offset": 0, - "granite_time_offset": None, + "granite_time_offset": 0, "holocene_time_offset": None, + "isthmus_time_offset": None, "interop_time_offset": None, "fund_dev_accounts": True, } @@ -252,8 +259,9 @@ def default_participant(): def default_op_contract_deployer_params(): return { - "image": "mslipper/op-deployer:latest", - "artifacts_url": "https://storage.googleapis.com/oplabs-contract-artifacts/artifacts-v1-4accd01f0c35c26f24d2aa71aba898dd7e5085a2ce5daadc8a84b10caf113409.tar.gz", + "image": "us-docker.pkg.dev/oplabs-tools-artifacts/images/op-deployer:v0.0.6", + "l1_artifacts_locator": "tag://op-contracts/v1.6.0", + "l2_artifacts_locator": "tag://op-contracts/v1.7.0-beta.1+l2-contracts", } diff --git a/src/package_io/sanity_check.star b/src/package_io/sanity_check.star index 33fedb1d..2ef39e40 100644 --- a/src/package_io/sanity_check.star +++ b/src/package_io/sanity_check.star @@ -47,7 +47,8 @@ SUBCATEGORY_PARAMS = { OP_CONTRACT_DEPLOYER_PARAMS = [ "image", - "artifacts_url", + "l1_artifacts_locator", + "l2_artifacts_locator", ] ADDITIONAL_SERVICES_PARAMS = [ From 8e2b3173c9bb54beece33b62f7364e09d1b1b006 Mon Sep 17 00:00:00 2001 From: Matthew Slipper Date: Thu, 21 Nov 2024 09:43:32 -0700 Subject: [PATCH 2/5] code review updates --- network_params.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/network_params.yaml b/network_params.yaml index 5d84b2db..eb1d2fa0 100644 --- a/network_params.yaml +++ b/network_params.yaml @@ -35,7 +35,6 @@ optimism_package: name: "op-kurtosis" fjord_time_offset: 0 granite_time_offset: 0 - holocene_time_offset: 0 fund_dev_accounts: true batcher_params: image: "" @@ -43,6 +42,8 @@ optimism_package: additional_services: [] op_contract_deployer_params: image: us-docker.pkg.dev/oplabs-tools-artifacts/images/op-deployer:v0.0.6 + l1_artifacts_locator: tag://op-contracts/v1.6.0 + l2_artifacts_locator: tag://op-contracts/v1.7.0-beta.1+l2-contracts global_log_level: "info" global_node_selectors: {} global_tolerations: [] From f1e87cb82cac48f5f7542f20bef3e73c4dda2395 Mon Sep 17 00:00:00 2001 From: Matthew Slipper Date: Thu, 21 Nov 2024 11:58:50 -0700 Subject: [PATCH 3/5] fix readme --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 5010677a..49202ebf 100644 --- a/README.md +++ b/README.md @@ -221,7 +221,7 @@ optimism_package: # Granite fork # Defaults to 0 (genesis activation) - decimal value # Offset is in seconds - granite_time_offset: "" + granite_time_offset: 0 # Holocene fork # Defaults to None - not activated - decimal value From 07cfdb4ebae540fd9de3cace24b0bb5e68e2427d Mon Sep 17 00:00:00 2001 From: Matthew Slipper Date: Thu, 21 Nov 2024 12:11:04 -0700 Subject: [PATCH 4/5] fix --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 49202ebf..cda06cc8 100644 --- a/README.md +++ b/README.md @@ -260,8 +260,8 @@ optimism_package: # The docker image that should be used for the L2 contract deployer op_contract_deployer_params: image: us-docker.pkg.dev/oplabs-tools-artifacts/images/op-deployer:v0.0.6 - l1_artifacts_locator: op-contracts/v1.6.0 - l2_artifacts_locator: op-contracts/v1.7.0-beta.1+l2-contracts + l1_artifacts_locator: tag://op-contracts/v1.6.0 + l2_artifacts_locator: tag://op-contracts/v1.7.0-beta.1+l2-contracts # The global log level that all clients should log at # Valid values are "error", "warn", "info", "debug", and "trace" From 8d6b74b9df9c4cf06285acc384b609dbbc0427f0 Mon Sep 17 00:00:00 2001 From: Matthew Slipper Date: Thu, 21 Nov 2024 12:47:12 -0700 Subject: [PATCH 5/5] add to subcategory params --- src/package_io/sanity_check.star | 1 + 1 file changed, 1 insertion(+) diff --git a/src/package_io/sanity_check.star b/src/package_io/sanity_check.star index 2ef39e40..3055cd64 100644 --- a/src/package_io/sanity_check.star +++ b/src/package_io/sanity_check.star @@ -39,6 +39,7 @@ SUBCATEGORY_PARAMS = { "fjord_time_offset", "granite_time_offset", "holocene_time_offset", + "isthmus_time_offset", "interop_time_offset", "fund_dev_accounts", ],