diff --git a/Makefile b/Makefile index 5361c82c..25112281 100644 --- a/Makefile +++ b/Makefile @@ -109,7 +109,7 @@ forge-deps: ## # Task Signer Tool ## -SIGNER_TOOL_COMMIT=1fc76441a1cde3581c224023adfa79b8cfdb2fa4 +SIGNER_TOOL_COMMIT=8e059b65ddf936f2fcfd3c820544f8576f74bd35 SIGNER_TOOL_PATH=signer-tool .PHONY: checkout-signer-tool diff --git a/active/evm/foundry.toml b/active/evm/foundry.toml index 7756163e..b37e0b0e 100644 --- a/active/evm/foundry.toml +++ b/active/evm/foundry.toml @@ -11,11 +11,10 @@ evm_version = "prague" via-ir = false remappings = [ '@base-contracts/=lib/contracts/', + '@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/', 'forge-std/=lib/forge-std/src/', - 'interfaces/L1/=lib/contracts/interfaces/L1/', - 'interfaces/legacy/=lib/contracts/interfaces/legacy/', - 'interfaces/universal/=lib/contracts/interfaces/universal/', - 'src/libraries/=lib/contracts/src/libraries/', + 'interfaces/=lib/contracts/interfaces/', + 'src/=lib/contracts/src/', ] [profile.nitro-deploy] diff --git a/active/evm/tasks/2026-09-14-cobalt-upgrade/FACILITATOR.md b/active/evm/tasks/2026-09-14-cobalt-upgrade/FACILITATOR.md new file mode 100644 index 00000000..acd4e866 --- /dev/null +++ b/active/evm/tasks/2026-09-14-cobalt-upgrade/FACILITATOR.md @@ -0,0 +1,137 @@ +# Cobalt Upgrade — Facilitator Guide + +This task delivers the three Cobalt L1 changes in a single ProxyAdmin-owner transaction: + +| Cobalt change | Contracts touched | +| --- | --- | +| Dynamic upgrades | `ProtocolVersions` (new proxy + implementation), `AggregateVerifier` (redeployed to bind it) | +| EthLockbox removal | `OptimismPortal2`, `SystemConfig` | +| CREATE2 for dispute games | `DisputeGameFactory` | + +Replace `` with the network you are rolling out, for example `zeronet`. Every command +requires `TASK_NETWORK` explicitly — there is no default. Run everything from this directory +(`active/evm/tasks/2026-09-14-cobalt-upgrade/`). + +## 1. Install dependencies + +```bash +make TASK_NETWORK= deps +``` + +This pins `base/contracts` at `BASE_CONTRACTS_COMMIT`, installs the extra OpenZeppelin and solmate +dependencies that building those sources requires, and applies `patch/max-gas-limit.patch`. + +The patch matters. Zeronet runs a `SystemConfig` that raises `MAX_GAS_LIMIT` to 2,000,000,000, and +Cobalt modifies `SystemConfig`. Deploying a stock build would quietly drop the chain back to +500,000,000. The patch re-applies the raise and tags the semver `3.14.0+max-gas-limit-2000M`, and +the deploy script refuses to proceed if that version string is missing. On a network that does not +run the patched build, drop `apply-patches` from the `deps` prerequisites and relax the version +assertions in `DeployCobaltCoreImpls` and `ExecuteCobaltUpgrade` to the stock `3.14.0`. + +## 2. Review the network config + +Open `config//.env` and confirm every value, in particular: + +- `PROTOCOL_VERSIONS_INITIAL_SCHEDULE` — the activation timestamp imported for each upgrade id. + Ids should stay aligned with the Base mainnet registry so that a given index means the same fork + on every chain. Entries may be `0` for an unscheduled fork. Every entry except Cobalt's is a fork + that has already happened, so each one must match the network's chain config in + [base/base](https://github.com/base/base/blob/main/crates/common/chains/src/config.rs), which is + what the nodes actually fork on. Do not assume a re-genesised network has everything active at the + genesis timestamp: on Zeronet, Azul and Beryl activated a few minutes after genesis, and id 7 + (PectraBlobSchedule) is unscheduled at `0`. Cobalt (id 12) is the activation this task schedules, + and the node config carries no Cobalt timestamp until its own rollout lands. +- `PROTOCOL_VERSIONS_MINIMUM_PROTOCOL_VERSION` — must be non-zero and fit in 128 bits. The comment + above it gives the `cast` command to re-derive the packed value from the human-readable version. +- `PROTOCOL_VERSIONS_INCIDENT_RESPONDER` — the address allowed to use the incident path. +- `OLD_*` — the currently deployed implementations. `ExecuteCobaltUpgrade` asserts these match the + live proxies before building any calls, so a stale value stops the task rather than upgrading + from an unexpected base. +- `AGGREGATE_VERIFIER_TEE_IMAGE_HASH`, `AGGREGATE_VERIFIER_ZK_RANGE_HASH` and + `AGGREGATE_VERIFIER_ZK_AGGREGATE_HASH` — the proof program hashes, built from the Base node + release these games prove against, which for Zeronet is + [`releases/v1.4.0`](https://github.com/base/base/tree/releases/v1.4.0). The TEE value is PCR0 of + the Nitro enclave image; the two ZK values are the SP1 range and aggregation verification keys + from `just succinct vkeys --build`. The `.env` comment records how each is produced, so they can + be regenerated from that ref rather than taken on trust. They ship blank and the deploy script + refuses to run until they are filled in. Every other `AggregateVerifier` constructor argument, + including the config hash and the block intervals, is read back from the live implementation at + deploy time, so the redeploy cannot change them. + +## 3. Deploy + +```bash +make TASK_NETWORK= deploy +``` + +This runs two steps because `base/contracts` pins different optimizer settings per contract, and +reproducible bytecode requires honouring them: + +1. `deploy-core` (5000 runs) — `OptimismPortal2`, `SystemConfig`, `DisputeGameFactory` + implementations and the `ProtocolVersions` proxy. +2. `deploy-proofs` (999999 runs) — the `ProtocolVersions` implementation and `AggregateVerifier`. + +The proxy is deployed in the first step because `AggregateVerifier` takes its address as a +constructor immutable. It is left pointing at no implementation; the upgrade transaction sets and +initializes it atomically. Each step writes to `config//addresses.json` and asserts its own +postconditions, so a wrong constructor argument fails at deploy time rather than at signing time. + +Then verify the source: + +```bash +VERIFIER_API_KEY= make TASK_NETWORK= verify-core +VERIFIER_API_KEY= make TASK_NETWORK= verify-proofs +``` + +Commit `config//addresses.json` and the `records/` broadcast artifacts. + +## 4. Generate validation files + +```bash +make TASK_NETWORK= gen-validation-cb +make TASK_NETWORK= gen-validation-sc +``` + +These write `config//validations/base-signer.json` and `security-council-signer.json`. +Commit them, then set the `config//README.md` status to `READY TO SIGN` and share it with +signers. + +## 5. Collect signatures and execute + +The ProxyAdmin owner is a 2-of-2 of the Base multisig and the Security Council, so each approves +its own nested Safe before the outer transaction runs. + +```bash +SIGNATURES= make TASK_NETWORK= approve-cb +SIGNATURES= make TASK_NETWORK= approve-sc +make TASK_NETWORK= execute +``` + +`execute` re-runs the same pre- and postconditions inside the broadcast, so it will revert rather +than land a partial upgrade. + +## What the upgrade transaction does + +Five calls, all from the ProxyAdmin owner Safe: + +1. `ProxyAdmin.upgradeAndCall(protocolVersionsProxy, protocolVersionsImpl, initialize(...))` — + `initialize` is `reinitializer(1)` on a never-initialized proxy, so it must be bundled with the + implementation set rather than sent separately. +2. `ProxyAdmin.upgrade(optimismPortal, newImpl)` +3. `ProxyAdmin.upgrade(systemConfig, newImpl)` +4. `ProxyAdmin.upgrade(disputeGameFactory, newImpl)` +5. `DisputeGameFactory.setImplementation(621, newAggregateVerifier)` + +Calls 2–4 are bare upgrades: none of those implementations adds state or bumps its init version, so +there is nothing to reinitialize. + +## Worth re-checking before signing + +- **Every changed contract bumps its version.** `OptimismPortal2` goes `5.2.0` -> `6.0.0`, + `DisputeGameFactory` `1.4.0` -> `1.5.0`, `AggregateVerifier` `0.1.0` -> `0.2.0`, and `SystemConfig` + `3.13.2+max-gas-limit-2000M` -> `3.14.0+max-gas-limit-2000M`, so `version()` read through each + proxy is a sound check that the upgrade landed. +- **The Cobalt activation is scheduled, so the transaction is time-sensitive.** + `ProtocolVersions.initialize` enforces one hour of notice on future timestamps, so it reverts if + the upgrade lands within the hour before the configured Cobalt activation. Execute well before + that window, or push the timestamp out. diff --git a/active/evm/tasks/2026-09-14-cobalt-upgrade/Makefile b/active/evm/tasks/2026-09-14-cobalt-upgrade/Makefile new file mode 100644 index 00000000..a1c524e3 --- /dev/null +++ b/active/evm/tasks/2026-09-14-cobalt-upgrade/Makefile @@ -0,0 +1,205 @@ +include ../../../../Makefile +include $(REPO_ROOT)/Multisig.mk + +# Cobalt rolls out across several networks from this one task directory, so the +# network is never defaulted. Select it on every command line: +# make TASK_NETWORK=zeronet deploy +ifndef TASK_NETWORK +$(error TASK_NETWORK is required, e.g. make TASK_NETWORK=zeronet $(MAKECMDGOALS)) +endif + +PROJECT_DIR := $(abspath ../..) + +include $(REPO_ROOT)/config/$(TASK_NETWORK).env +include config/$(TASK_NETWORK)/.env + +SIGNER_TOOL_PATH := $(REPO_ROOT)/signer-tool +VALIDATIONS_DIR := $(CURDIR)/config/$(TASK_NETWORK)/validations +RPC_URL := $(L1_RPC_URL) +ADDRESSES_JSON := $(CURDIR)/config/$(TASK_NETWORK)/addresses.json + +TASK_DIR := tasks/2026-09-14-cobalt-upgrade +DEPLOY_CORE_SCRIPT := $(TASK_DIR)/script/DeployCobaltCoreImpls.s.sol:DeployCobaltCoreImpls +DEPLOY_PROOFS_SCRIPT := $(TASK_DIR)/script/DeployCobaltProofImpls.s.sol:DeployCobaltProofImpls +UPGRADE_SCRIPT := $(TASK_DIR)/script/ExecuteCobaltUpgrade.s.sol:ExecuteCobaltUpgrade +SCRIPT_NAME := $(UPGRADE_SCRIPT) + +CB_SENDER = $(shell $(MISE_EXEC) cast call $(CB_MULTISIG) "getOwners()(address[])" --rpc-url $(L1_RPC_URL) | tr -d '[]' | cut -d',' -f1) +SC_SENDER = $(shell $(MISE_EXEC) cast call $(BASE_SECURITY_COUNCIL) "getOwners()(address[])" --rpc-url $(L1_RPC_URL) | tr -d '[]' | cut -d',' -f1) + +NEW_OPTIMISM_PORTAL_IMPL = $(shell jq -er '.optimismPortalImpl' $(ADDRESSES_JSON) 2>/dev/null) +NEW_SYSTEM_CONFIG_IMPL = $(shell jq -er '.systemConfigImpl' $(ADDRESSES_JSON) 2>/dev/null) +NEW_DISPUTE_GAME_FACTORY_IMPL = $(shell jq -er '.disputeGameFactoryImpl' $(ADDRESSES_JSON) 2>/dev/null) +NEW_AGGREGATE_VERIFIER = $(shell jq -er '.aggregateVerifier' $(ADDRESSES_JSON) 2>/dev/null) +PROTOCOL_VERSIONS_PROXY = $(shell jq -er '.protocolVersionsProxy' $(ADDRESSES_JSON) 2>/dev/null) +PROTOCOL_VERSIONS_IMPL = $(shell jq -er '.protocolVersionsImpl' $(ADDRESSES_JSON) 2>/dev/null) +OPTIMISM_PORTAL_IMPL_CTOR_ARGS = $(shell jq -er '.optimismPortalImplConstructorArgs' $(ADDRESSES_JSON) 2>/dev/null) +PROTOCOL_VERSIONS_PROXY_CTOR_ARGS = $(shell jq -er '.protocolVersionsProxyConstructorArgs' $(ADDRESSES_JSON) 2>/dev/null) +AGGREGATE_VERIFIER_CTOR_ARGS = $(shell jq -er '.aggregateVerifierConstructorArgs' $(ADDRESSES_JSON) 2>/dev/null) + +DEPLOY_ENV = ADDRESSES_JSON=$(ADDRESSES_JSON) \ + L1_PROXY_ADMIN=$(L1_PROXY_ADMIN) \ + OPTIMISM_PORTAL=$(OPTIMISM_PORTAL) \ + DISPUTE_GAME_FACTORY_PROXY=$(DISPUTE_GAME_FACTORY_PROXY) \ + L2_GENESIS_BLOCK_NUMBER=$(L2_GENESIS_BLOCK_NUMBER) \ + L2_GENESIS_TIMESTAMP=$(L2_GENESIS_TIMESTAMP) \ + L2_BLOCK_TIME=$(L2_BLOCK_TIME) \ + AGGREGATE_VERIFIER_TEE_IMAGE_HASH=$(AGGREGATE_VERIFIER_TEE_IMAGE_HASH) \ + AGGREGATE_VERIFIER_ZK_RANGE_HASH=$(AGGREGATE_VERIFIER_ZK_RANGE_HASH) \ + AGGREGATE_VERIFIER_ZK_AGGREGATE_HASH=$(AGGREGATE_VERIFIER_ZK_AGGREGATE_HASH) + +UPGRADE_ENV = PROXY_ADMIN_OWNER=$(PROXY_ADMIN_OWNER) \ + L1_PROXY_ADMIN=$(L1_PROXY_ADMIN) \ + OPTIMISM_PORTAL=$(OPTIMISM_PORTAL) \ + SYSTEM_CONFIG=$(SYSTEM_CONFIG) \ + DISPUTE_GAME_FACTORY_PROXY=$(DISPUTE_GAME_FACTORY_PROXY) \ + OLD_OPTIMISM_PORTAL_IMPL=$(OLD_OPTIMISM_PORTAL_IMPL) \ + OLD_SYSTEM_CONFIG_IMPL=$(OLD_SYSTEM_CONFIG_IMPL) \ + OLD_DISPUTE_GAME_FACTORY_IMPL=$(OLD_DISPUTE_GAME_FACTORY_IMPL) \ + OLD_AGGREGATE_VERIFIER=$(OLD_AGGREGATE_VERIFIER) \ + NEW_OPTIMISM_PORTAL_IMPL=$(NEW_OPTIMISM_PORTAL_IMPL) \ + NEW_SYSTEM_CONFIG_IMPL=$(NEW_SYSTEM_CONFIG_IMPL) \ + NEW_DISPUTE_GAME_FACTORY_IMPL=$(NEW_DISPUTE_GAME_FACTORY_IMPL) \ + NEW_AGGREGATE_VERIFIER=$(NEW_AGGREGATE_VERIFIER) \ + PROTOCOL_VERSIONS_PROXY=$(PROTOCOL_VERSIONS_PROXY) \ + PROTOCOL_VERSIONS_IMPL=$(PROTOCOL_VERSIONS_IMPL) \ + PROTOCOL_VERSIONS_INCIDENT_RESPONDER=$(PROTOCOL_VERSIONS_INCIDENT_RESPONDER) \ + PROTOCOL_VERSIONS_MINIMUM_PROTOCOL_VERSION=$(PROTOCOL_VERSIONS_MINIMUM_PROTOCOL_VERSION) \ + PROTOCOL_VERSIONS_INITIAL_SCHEDULE=$(PROTOCOL_VERSIONS_INITIAL_SCHEDULE) + +## +# Dependencies +## +# Prerequisites merge with the root `deps` rule, so these run after `forge-deps` +# has installed base/contracts at BASE_CONTRACTS_COMMIT. +.PHONY: deps +deps: task-extra-deps apply-patches + +# The shared project installs only forge-std, solady and lib-keccak. Building the +# Cobalt implementations from source additionally needs base/contracts' own pinned +# dependencies, matching the versions in its justfile. +.PHONY: task-extra-deps +task-extra-deps: + cd $(PROJECT_DIR) && $(MISE_EXEC) forge install --no-git \ + github.com/OpenZeppelin/openzeppelin-contracts@ecd2ca2cd7cac116f7a37d0e474bbb3d7d5e1c4d \ + github.com/OpenZeppelin/openzeppelin-contracts-upgradeable@0a2cb9a445c365870ed7a8ab461b12acf3e27d63 \ + github.com/transmissions11/solmate@8f9b23f8838670afda0fd8983f2c41e8037ae6bc + +# Zeronet runs a SystemConfig patched to raise MAX_GAS_LIMIT to 2e9. Cobalt changes +# SystemConfig, so the patch is re-applied on top of the pinned commit rather than +# silently reverting the live chain to the stock 5e8 limit. +.PHONY: apply-patches +apply-patches: + cd $(PROJECT_DIR)/lib/contracts && patch -p1 --forward < $(CURDIR)/patch/max-gas-limit.patch + +## +# Deployment +## +.PHONY: deploy +deploy: deploy-core deploy-proofs + +# base/contracts pins OptimismPortal2, SystemConfig, DisputeGameFactory and Proxy to +# 5000 optimizer runs, and ProtocolVersions and AggregateVerifier to 999999, and builds +# with no bytecode hash. Reproducing those settings is what makes the deployed bytecode +# verifiable, hence the two steps and the compiler overrides, which are kept identical +# to the ones the verify targets below use. The evm version request is inert at solc +# 0.8.15, which caps out at london, but it is set on both sides so they cannot diverge. +COBALT_BUILD = FOUNDRY_OPTIMIZER=true FOUNDRY_BYTECODE_HASH=none FOUNDRY_EVM_VERSION=cancun + +.PHONY: deploy-core +deploy-core: + @test -f "$(ADDRESSES_JSON)" || echo '{}' > "$(ADDRESSES_JSON)" + cd $(PROJECT_DIR) && $(DEPLOY_ENV) $(COBALT_BUILD) FOUNDRY_OPTIMIZER_RUNS=5000 \ + $(MISE_EXEC) forge script --rpc-url $(L1_RPC_URL) $(DEPLOY_CORE_SCRIPT) \ + --ledger --hd-paths $(LEDGER_HD_PATH) --broadcast -vvvv + +.PHONY: deploy-proofs +deploy-proofs: + cd $(PROJECT_DIR) && $(DEPLOY_ENV) $(COBALT_BUILD) FOUNDRY_OPTIMIZER_RUNS=999999 \ + $(MISE_EXEC) forge script --rpc-url $(L1_RPC_URL) $(DEPLOY_PROOFS_SCRIPT) \ + --ledger --hd-paths $(LEDGER_HD_PATH) --broadcast -vvvv + +## +# Source verification +## +# Verification runs with lib/contracts as the project root, because that is the only +# root from which the target paths resolve. base/contracts then imports its own +# dependencies through literal `lib//...` paths, which resolve against that root +# too, but the build keeps them a level up in active/evm/lib. Link them in for the +# duration of the command and remove them afterwards: left in place, every such import +# matches in two locations and the build fails as ambiguous. +VERIFY_DEPS = openzeppelin-contracts openzeppelin-contracts-upgradeable solady solmate +CONTRACTS_LIB = $(PROJECT_DIR)/lib/contracts/lib +LINK_VERIFY_DEPS = mkdir -p $(CONTRACTS_LIB); \ + trap 'rm -f $(foreach d,$(VERIFY_DEPS),$(CONTRACTS_LIB)/$(d)); rmdir $(CONTRACTS_LIB) 2>/dev/null || true' EXIT; \ + for d in $(VERIFY_DEPS); do ln -sfn ../../$$d $(CONTRACTS_LIB)/$$d; done + +VERIFY_ENV = RUST_LOG=off FOUNDRY_BYTECODE_HASH=none FOUNDRY_EVM_VERSION=cancun + +VERIFY_COMMON = --root $(PROJECT_DIR)/lib/contracts --compilation-profile default \ + --chain $(L1_CHAIN_ID) --compiler-version v0.8.15+commit.e14f2714 \ + --verifier custom --verifier-url "https://api.etherscan.io/v2/api?chainid=$(L1_CHAIN_ID)" \ + --verifier-api-key $(VERIFIER_API_KEY) --watch + +.PHONY: verify-core +verify-core: +ifndef VERIFIER_API_KEY + $(error VERIFIER_API_KEY is not set) +endif + @set -e; $(LINK_VERIFY_DEPS); \ + cd $(PROJECT_DIR); \ + $(VERIFY_ENV) FOUNDRY_OPTIMIZER_RUNS=5000 \ + $(MISE_EXEC) forge verify-contract $(NEW_OPTIMISM_PORTAL_IMPL) src/L1/OptimismPortal2.sol:OptimismPortal2 \ + --constructor-args $(OPTIMISM_PORTAL_IMPL_CTOR_ARGS) \ + --num-of-optimizations 5000 $(VERIFY_COMMON); \ + $(VERIFY_ENV) FOUNDRY_OPTIMIZER_RUNS=5000 \ + $(MISE_EXEC) forge verify-contract $(NEW_SYSTEM_CONFIG_IMPL) src/L1/SystemConfig.sol:SystemConfig \ + --num-of-optimizations 5000 $(VERIFY_COMMON); \ + $(VERIFY_ENV) FOUNDRY_OPTIMIZER_RUNS=5000 \ + $(MISE_EXEC) forge verify-contract $(NEW_DISPUTE_GAME_FACTORY_IMPL) src/L1/proofs/DisputeGameFactory.sol:DisputeGameFactory \ + --num-of-optimizations 5000 $(VERIFY_COMMON); \ + $(VERIFY_ENV) FOUNDRY_OPTIMIZER_RUNS=5000 \ + $(MISE_EXEC) forge verify-contract $(PROTOCOL_VERSIONS_PROXY) src/universal/Proxy.sol:Proxy \ + --constructor-args $(PROTOCOL_VERSIONS_PROXY_CTOR_ARGS) \ + --num-of-optimizations 5000 $(VERIFY_COMMON) + +.PHONY: verify-proofs +verify-proofs: +ifndef VERIFIER_API_KEY + $(error VERIFIER_API_KEY is not set) +endif + @set -e; $(LINK_VERIFY_DEPS); \ + cd $(PROJECT_DIR); \ + $(VERIFY_ENV) FOUNDRY_OPTIMIZER_RUNS=999999 \ + $(MISE_EXEC) forge verify-contract $(PROTOCOL_VERSIONS_IMPL) src/L1/ProtocolVersions.sol:ProtocolVersions \ + --num-of-optimizations 999999 $(VERIFY_COMMON); \ + $(VERIFY_ENV) FOUNDRY_OPTIMIZER_RUNS=999999 \ + $(MISE_EXEC) forge verify-contract $(NEW_AGGREGATE_VERIFIER) src/L1/proofs/AggregateVerifier.sol:AggregateVerifier \ + --constructor-args $(AGGREGATE_VERIFIER_CTOR_ARGS) \ + --num-of-optimizations 999999 $(VERIFY_COMMON) + +## +# Validation files +## +.PHONY: gen-validation-cb +gen-validation-cb: deps-signer-tool + $(call GEN_VALIDATION,$(UPGRADE_SCRIPT),$(CB_MULTISIG),$(CB_SENDER),base-signer.json,$(UPGRADE_ENV)) + +.PHONY: gen-validation-sc +gen-validation-sc: deps-signer-tool + $(call GEN_VALIDATION,$(UPGRADE_SCRIPT),$(BASE_SECURITY_COUNCIL),$(SC_SENDER),security-council-signer.json,$(UPGRADE_ENV)) + +## +# Approve and execute +## +.PHONY: approve-cb +approve-cb: + export $(UPGRADE_ENV); $(call MULTISIG_APPROVE,$(CB_MULTISIG),$(SIGNATURES)) + +.PHONY: approve-sc +approve-sc: + export $(UPGRADE_ENV); $(call MULTISIG_APPROVE,$(BASE_SECURITY_COUNCIL),$(SIGNATURES)) + +.PHONY: execute +execute: + export $(UPGRADE_ENV); $(call MULTISIG_EXECUTE,0x) diff --git a/active/evm/tasks/2026-09-14-cobalt-upgrade/config/zeronet/.env b/active/evm/tasks/2026-09-14-cobalt-upgrade/config/zeronet/.env new file mode 100644 index 00000000..4591bd94 --- /dev/null +++ b/active/evm/tasks/2026-09-14-cobalt-upgrade/config/zeronet/.env @@ -0,0 +1,53 @@ +# https://github.com/base/contracts/commits/releases/v8.3.0/ +BASE_CONTRACTS_COMMIT=385f21a41f277d287db92fffe88dca41299162ea + +# Rollback anchors verified against Zeronet before task creation. +OLD_OPTIMISM_PORTAL_IMPL=0xc1ad6d4e8da1403b9eb6a99491899577050f4863 +OLD_SYSTEM_CONFIG_IMPL=0xb54d7ff110995029b89a0045128cae42c931aa83 +OLD_DISPUTE_GAME_FACTORY_IMPL=0x3a0a9e5b91709bba0bcb4bb4b66730dcfef6e926 +OLD_AGGREGATE_VERIFIER=0x7dd0f51C71DA5243174FA829c8cf3385B06833b0 + +# ProtocolVersions initial state. +# +# Zeronet re-genesised at 1782348588. Every fork through Jovian is active from genesis, +# but Azul and Beryl activated shortly after it, so they carry their own timestamps. +# Ids are kept aligned with the Base mainnet registry so that an index means the same +# fork on every chain. Timestamps must match the node's ZERONET chain config in +# base/base crates/common/chains/src/config.rs: +# 0 genesis, 1 canyon, 2 delta, 3 ecotone, 4 fjord, 5 granite, 6 holocene, +# 7 pectraBlobSchedule (unscheduled), 8 isthmus, 9 jovian, all at 1782348588, +# 10 azul -> 1782348888, genesis + 300s +# 11 beryl -> 1782349188, genesis + 600s +# 12 cobalt -> 1789574400, which is 2026-09-16 16:00:00 UTC: +# date -u -r 1789574400 +PROTOCOL_VERSIONS_INITIAL_SCHEDULE=1782348588,1782348588,1782348588,1782348588,1782348588,1782348588,1782348588,0,1782348588,1782348588,1782348888,1782349188,1789574400 + +# Minimum protocol version, set to v1.3.2. The OP protocol version format packs the +# low 16 bytes as major || minor || patch || pre-release, four bytes each, so v1.3.2 +# is 0x00000001_00000003_00000002_00000000. Re-derive with: +# cast to-dec 0x00000001000000030000000200000000 +# Must be non-zero and fit in 128 bits. +PROTOCOL_VERSIONS_MINIMUM_PROTOCOL_VERSION=79228162569604569823262539776 +PROTOCOL_VERSIONS_INCIDENT_RESPONDER=0x856611ed7e07d83243b15e93f6321f2df6865852 + +# AggregateVerifier proof program hashes. Every other constructor argument is read +# from the live implementation at deploy time, so these are the only values that +# change. +# +# All three are built from the base/base node release these games prove against, +# releases/v1.4.0: https://github.com/base/base/tree/releases/v1.4.0 +# +# The TEE image hash is PCR0 of the AWS Nitro enclave image built from +# crates/proof/tee, which pins its upstream build inputs so the measurement is +# reproducible. The two ZK hashes are the SP1 range and aggregation verification keys +# printed by `just succinct vkeys --build`, which the Generate Succinct VKeys workflow +# runs against a given ref. +AGGREGATE_VERIFIER_TEE_IMAGE_HASH=0xe8dc2300cf325b2527cbfa5e664a70acc40a9f2fc0617bd35cdfa61652a5fc30 +AGGREGATE_VERIFIER_ZK_RANGE_HASH=0x7713943c2c2412314b135c5606cdb3923a54f7555d91d9f31c2f64e34e16f2f4 +AGGREGATE_VERIFIER_ZK_AGGREGATE_HASH=0x002663a1072dc1e1938e13d3b269fff88e843eb4ef76d6c6953dde4f5152973b + +# L2 chain geometry, used to map activation timestamps onto block numbers. The live +# implementation predates ScheduleConfig, so these cannot be copied from it. +L2_GENESIS_BLOCK_NUMBER=0 +L2_GENESIS_TIMESTAMP=1782348588 +L2_BLOCK_TIME=2 diff --git a/active/evm/tasks/2026-09-14-cobalt-upgrade/config/zeronet/README.md b/active/evm/tasks/2026-09-14-cobalt-upgrade/config/zeronet/README.md new file mode 100644 index 00000000..808bddf9 --- /dev/null +++ b/active/evm/tasks/2026-09-14-cobalt-upgrade/config/zeronet/README.md @@ -0,0 +1,51 @@ +# Cobalt Upgrade + +Status: [EXECUTED](https://hoodi.etherscan.io/tx/0xabfb3ed6b24334891957b4f0c22273b06392132288862ca8235b13af0a47d667) + +## Description + +Upgrades Zeronet's L1 contracts for the Cobalt hardfork. One transaction from the ProxyAdmin owner +makes five calls: + +1. Upgrade and initialize a new `ProtocolVersions` registry, importing Zeronet's hardfork activation + schedule and scheduling Cobalt for 2026-09-16 16:00:00 UTC. This is the registry that dynamic + upgrades read from. +2. Upgrade `OptimismPortal2` to the implementation with `EthLockbox` removed. +3. Upgrade `SystemConfig` to the matching implementation, keeping Zeronet's patched + `MAX_GAS_LIMIT` of 2,000,000,000. +4. Upgrade `DisputeGameFactory` so new dispute games are deployed with `CREATE2`. +5. Register the redeployed `AggregateVerifier` for game type 621, which binds the new registry. + +No ETH moves. Zeronet has no `EthLockbox` (`ethLockbox()` is already the zero address) and its ETH +is already held by the portal, so removing the lockbox paths changes no balances. Existing dispute +games, the game count, the gas limit, and the pause state are all unchanged, and the transaction +asserts each of these before and after. + +## Custody + +| Role | Address | +| ------------------------- | -------------------------------------------- | +| ProxyAdmin owner (2-of-2) | `0x3d59999977e0896ee1f8783bB8251DF16fb483E9` | +| Coinbase multisig | `0x856611eD7E07D83243b15E93f6321f2df6865852` | +| Security Council | `0xC4c0aD998B5DfA4CF4B298970F21b9015a5eE7bA` | + +## Targets + +| Contract | Address | +| -------------------------- | -------------------------------------------- | +| L1 `ProxyAdmin` | `0xF2d2c097bE80Fb87844b7E259ef67EFb98b26F87` | +| `OptimismPortal2` proxy | `0x7E3b97C95c823f385Ff6770411F6E12F8E09AC9b` | +| `SystemConfig` proxy | `0x0a111C7980152BDe41D71f48e2E1d8184f5F6187` | +| `DisputeGameFactory` proxy | `0xd930E0CebD52d7C77b8f900De242e818506C5474` | + +New implementation addresses are recorded in [`addresses.json`](addresses.json) once deployed. + +## Sign + +From the repository root: + +```bash +make sign-task +``` + +Select this Zeronet task, sign, and send the signature to the facilitator. diff --git a/active/evm/tasks/2026-09-14-cobalt-upgrade/config/zeronet/addresses.json b/active/evm/tasks/2026-09-14-cobalt-upgrade/config/zeronet/addresses.json new file mode 100644 index 00000000..66ec3a68 --- /dev/null +++ b/active/evm/tasks/2026-09-14-cobalt-upgrade/config/zeronet/addresses.json @@ -0,0 +1,11 @@ +{ + "optimismPortalImpl": "0xb4aC39aadC3130fEf3F348ECe8D033540dF12089", + "systemConfigImpl": "0x210303565CBf0b8c0d2837523816f815F02ad5eB", + "disputeGameFactoryImpl": "0xBeE0c6DD082D7A483Da4bD6e56C7e5292BDa7Ce8", + "protocolVersionsProxy": "0x30e172aaC675c9fe5A64792F92C9fD4d3E7cA9Da", + "optimismPortalImplConstructorArgs": "0x0000000000000000000000000000000000000000000000000000000000000000", + "protocolVersionsProxyConstructorArgs": "0x000000000000000000000000f2d2c097be80fb87844b7e259ef67efb98b26f87", + "protocolVersionsImpl": "0x30ADFDAB722D36B26f12f562d7cAdF4Cd8831c58", + "aggregateVerifier": "0x2504B1c3B78B2711e24eadF7eA077b0cA1b91859", + "aggregateVerifierConstructorArgs": "0x000000000000000000000000000000000000000000000000000000000000026d000000000000000000000000bfb20170b82c474b136bc5a062aca47a3cb8cf680000000000000000000000005af90fde02b46e202f6232b3ede25b3f602ac67300000000000000000000000042fa446d95a5b61a7be02949042954a60315fb0f0000000000000000000000005b997cd8fafa026882aec7d0558c9cc47221f84ee8dc2300cf325b2527cbfa5e664a70acc40a9f2fc0617bd35cdfa61652a5fc307713943c2c2412314b135c5606cdb3923a54f7555d91d9f31c2f64e34e16f2f4002663a1072dc1e1938e13d3b269fff88e843eb4ef76d6c6953dde4f5152973bd14ddabfc0ad1dd737d6e5917cf271fd479bd539c9b3d85a602589c679a9983a00000000000000000000000000000000000000000000000000000000000ba5e00000000000000000000000000000000000000000000000000000000000000258000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000030e172aac675c9fe5a64792f92c9fd4d3e7ca9da0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006a3c7b2c0000000000000000000000000000000000000000000000000000000000000002" +} \ No newline at end of file diff --git a/active/evm/tasks/2026-09-14-cobalt-upgrade/config/zeronet/validations/base-signer.json b/active/evm/tasks/2026-09-14-cobalt-upgrade/config/zeronet/validations/base-signer.json new file mode 100644 index 00000000..f45e12cf --- /dev/null +++ b/active/evm/tasks/2026-09-14-cobalt-upgrade/config/zeronet/validations/base-signer.json @@ -0,0 +1,292 @@ +{ + "cmd": "PROXY_ADMIN_OWNER=0x3d59999977e0896ee1f8783bb8251df16fb483e9 L1_PROXY_ADMIN=0xf2d2c097be80fb87844b7e259ef67efb98b26f87 OPTIMISM_PORTAL=0x7e3b97c95c823f385ff6770411f6e12f8e09ac9b SYSTEM_CONFIG=0x0a111c7980152bde41d71f48e2e1d8184f5f6187 DISPUTE_GAME_FACTORY_PROXY=0xd930e0cebd52d7c77b8f900de242e818506c5474 OLD_OPTIMISM_PORTAL_IMPL=0xc1ad6d4e8da1403b9eb6a99491899577050f4863 OLD_SYSTEM_CONFIG_IMPL=0xb54d7ff110995029b89a0045128cae42c931aa83 OLD_DISPUTE_GAME_FACTORY_IMPL=0x3a0a9e5b91709bba0bcb4bb4b66730dcfef6e926 OLD_AGGREGATE_VERIFIER=0x7dd0f51C71DA5243174FA829c8cf3385B06833b0 NEW_OPTIMISM_PORTAL_IMPL=0xb4aC39aadC3130fEf3F348ECe8D033540dF12089 NEW_SYSTEM_CONFIG_IMPL=0x210303565CBf0b8c0d2837523816f815F02ad5eB NEW_DISPUTE_GAME_FACTORY_IMPL=0xBeE0c6DD082D7A483Da4bD6e56C7e5292BDa7Ce8 NEW_AGGREGATE_VERIFIER=0x2504B1c3B78B2711e24eadF7eA077b0cA1b91859 PROTOCOL_VERSIONS_PROXY=0x30e172aaC675c9fe5A64792F92C9fD4d3E7cA9Da PROTOCOL_VERSIONS_IMPL=0x30ADFDAB722D36B26f12f562d7cAdF4Cd8831c58 PROTOCOL_VERSIONS_INCIDENT_RESPONDER=0x856611ed7e07d83243b15e93f6321f2df6865852 PROTOCOL_VERSIONS_MINIMUM_PROTOCOL_VERSION=79228162569604569823262539776 PROTOCOL_VERSIONS_INITIAL_SCHEDULE=1782348588,1782348588,1782348588,1782348588,1782348588,1782348588,1782348588,0,1782348588,1782348588,1782348888,1782349188,1789574400 mise exec -- forge script --rpc-url https://c3-chainproxy-eth-hoodi-full-dev.cbhq.net tasks/2026-09-14-cobalt-upgrade/script/ExecuteCobaltUpgrade.s.sol:ExecuteCobaltUpgrade --sig sign(address[]) [0x856611ed7e07d83243b15e93f6321f2df6865852] --sender 0x2c1475476B586d66a85bC65A5aB396BBbAa4f3aD", + "ledgerId": 1, + "rpcUrl": "https://c3-chainproxy-eth-hoodi-full-dev.cbhq.net", + "expectedDomainAndMessageHashes": { + "address": "0x3d59999977e0896ee1f8783bB8251DF16fb483E9", + "domainHash": "0xc88eae2baaa4c8513a3d87913666de9463f106158aaf8be5cd31588215ccd5c4", + "messageHash": "0x265bdb16032513574e02db5ad450c5345e7304d0fa36d2a009c86e6d4221846e" + }, + "stateOverrides": [ + { + "name": "Proxy Admin Owner - Zeronet", + "address": "0x3d59999977e0896ee1f8783bB8251DF16fb483E9", + "overrides": [ + { + "key": "0x0000000000000000000000000000000000000000000000000000000000000004", + "value": "0x0000000000000000000000000000000000000000000000000000000000000001", + "description": "Override the threshold to 1 so the transaction simulation can occur.", + "allowDifference": false + } + ] + }, + { + "name": "CB Signer Safe - Zeronet", + "address": "0x856611eD7E07D83243b15E93f6321f2df6865852", + "overrides": [ + { + "key": "0x0000000000000000000000000000000000000000000000000000000000000004", + "value": "0x0000000000000000000000000000000000000000000000000000000000000001", + "description": "Override the threshold to 1 so the transaction simulation can occur.", + "allowDifference": false + }, + { + "key": "0x22d07ae145e29a1354330c3907e8569a367528393f8a5a0438bc67b7b9c15f52", + "value": "0x0000000000000000000000000000000000000000000000000000000000000001", + "description": "Simulates an approval from msg.sender in order for the task simulation to succeed.", + "allowDifference": false + } + ] + } + ], + "stateChanges": [ + { + "name": "SystemConfig - Zeronet", + "address": "0x0a111C7980152bDe41D71f48e2E1d8184f5f6187", + "changes": [ + { + "key": "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc", + "before": "0x000000000000000000000000b54d7ff110995029b89a0045128cae42c931aa83", + "after": "0x000000000000000000000000210303565cbf0b8c0d2837523816f815f02ad5eb", + "description": "Upgrades SystemConfig to the Cobalt implementation, which is the build that keeps Zeronet's patched MAX_GAS_LIMIT of 2,000,000,000 (version 3.14.0+max-gas-limit-2000M). The gas limit and pause state are asserted unchanged.", + "allowDifference": false + } + ] + }, + { + "name": "ProtocolVersions - Zeronet", + "address": "0x30e172aaC675c9fe5A64792F92C9fD4d3E7cA9Da", + "changes": [ + { + "key": "0x0000000000000000000000000000000000000000000000000000000000000000", + "before": "0x0000000000000000000000000000000000000000000000000000000000000000", + "after": "0x0000000000000000000000000000000000000000000000000000000000000001", + "description": "Sets Initializable._initialized to 1, recording that the new ProtocolVersions proxy has run its reinitializer(1) initialize call.", + "allowDifference": false + }, + { + "key": "0x0000000000000000000000000000000000000000000000000000000000000001", + "before": "0x0000000000000000000000000000000000000000000000000000000000000000", + "after": "0x000000000000000000000000000000000000000000000000000000000000000d", + "description": "Sets the _timestamps array length to 13, one entry per registered upgrade (ids 0-12, genesis through cobalt).", + "allowDifference": false + }, + { + "key": "0x0000000000000000000000000000000000000000000000000000000000000002", + "before": "0x0000000000000000000000000000000000000000000000000000000000000000", + "after": "0x000000000000000000000000000000000000000000000000000000000000000e", + "description": "Sets the _upgradeScheduleId array length to 14: the bytes32(0) seed at index 0 plus one hash-chain link for each of the 13 registered upgrades.", + "allowDifference": false + }, + { + "key": "0x0000000000000000000000000000000000000000000000000000000000000003", + "before": "0x0000000000000000000000000000000000000000000000000000000000000000", + "after": "0x0000000000000000000000000000000000000001000000030000000200000000", + "description": "Sets minimumProtocolVersion to v1.3.2. The OP format packs the low 16 bytes as major || minor || patch || pre-release, four bytes each, so v1.3.2 is 0x00000001000000030000000200000000 (79228162569604569823262539776).", + "allowDifference": false + }, + { + "key": "0x0000000000000000000000000000000000000000000000000000000000000004", + "before": "0x0000000000000000000000000000000000000000000000000000000000000000", + "after": "0x000000000000000000000000856611ed7e07d83243b15e93f6321f2df6865852", + "description": "Sets incidentResponder to the Coinbase multisig. This is a restricted role that can only push an already-scheduled, not-yet-activated upgrade further into the future.", + "allowDifference": false + }, + { + "key": "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc", + "before": "0x0000000000000000000000000000000000000000000000000000000000000000", + "after": "0x00000000000000000000000030adfdab722d36b26f12f562d7cadf4cd8831c58", + "description": "Upgrades the ProtocolVersions proxy from the zero address to the registry implementation (version 1.0.0). The proxy was deployed uninitialized, so this is the upgradeAndCall that also seeds the schedule.", + "allowDifference": false + }, + { + "key": "0x405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5acf", + "before": "0x0000000000000000000000000000000000000000000000000000000000000000", + "after": "0x0166d3f8da856c31a45b46260bff4abea91e079f65bb1d19caf72f05113ff7c7", + "description": "_upgradeScheduleId[1]: hash-chain link committing to upgrade id 0 (genesis) at 1782348588.", + "allowDifference": false + }, + { + "key": "0x405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ad0", + "before": "0x0000000000000000000000000000000000000000000000000000000000000000", + "after": "0x7dd0a3d5cf72f45456110f9b003c1def43a4e5594271cd1f00f9f9f031411212", + "description": "_upgradeScheduleId[2]: hash-chain link committing to upgrade id 1 (canyon) at 1782348588.", + "allowDifference": false + }, + { + "key": "0x405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ad1", + "before": "0x0000000000000000000000000000000000000000000000000000000000000000", + "after": "0x7fd31e37e400843a4ab62b3a757975732b70bf5f37dc034a6b0401ce2d9b56f6", + "description": "_upgradeScheduleId[3]: hash-chain link committing to upgrade id 2 (delta) at 1782348588.", + "allowDifference": false + }, + { + "key": "0x405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ad2", + "before": "0x0000000000000000000000000000000000000000000000000000000000000000", + "after": "0xd8876ffe4b1bfdfaaf050a75289034bb88a6f0c773b07055b163de2c36ffb284", + "description": "_upgradeScheduleId[4]: hash-chain link committing to upgrade id 3 (ecotone) at 1782348588.", + "allowDifference": false + }, + { + "key": "0x405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ad3", + "before": "0x0000000000000000000000000000000000000000000000000000000000000000", + "after": "0x0bf104b9a877be6444d1fb0e6bba7df327e35975910a5a3b985ab7c3d02350c1", + "description": "_upgradeScheduleId[5]: hash-chain link committing to upgrade id 4 (fjord) at 1782348588.", + "allowDifference": false + }, + { + "key": "0x405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ad4", + "before": "0x0000000000000000000000000000000000000000000000000000000000000000", + "after": "0x59d5d17a92c9e1be92a97f47e70409e37ae90ad3105c5714b3867ae2c98f0bf2", + "description": "_upgradeScheduleId[6]: hash-chain link committing to upgrade id 5 (granite) at 1782348588.", + "allowDifference": false + }, + { + "key": "0x405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ad5", + "before": "0x0000000000000000000000000000000000000000000000000000000000000000", + "after": "0x0335ac8de8507343a45ee1cdb53ba505eaea168ed5cc79a0e9a5e7a51c1b799e", + "description": "_upgradeScheduleId[7]: hash-chain link committing to upgrade id 6 (holocene) at 1782348588.", + "allowDifference": false + }, + { + "key": "0x405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ad6", + "before": "0x0000000000000000000000000000000000000000000000000000000000000000", + "after": "0xc3ed410e08f5d2805b96e95e5b153f8ab9b0506de56b9a799f1cd483850c4e0f", + "description": "_upgradeScheduleId[8]: hash-chain link committing to upgrade id 7 (pectraBlobSchedule), which stays unscheduled at 0.", + "allowDifference": false + }, + { + "key": "0x405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ad7", + "before": "0x0000000000000000000000000000000000000000000000000000000000000000", + "after": "0xb9cbaba7c1dbba36145e42340250daf38d32e6384e90d76cd8eeff2b42685623", + "description": "_upgradeScheduleId[9]: hash-chain link committing to upgrade id 8 (isthmus) at 1782348588.", + "allowDifference": false + }, + { + "key": "0x405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ad8", + "before": "0x0000000000000000000000000000000000000000000000000000000000000000", + "after": "0x06ac8fad7216097e71e1d41a3c1b7f342f9115b20cff01bf0df808bdd4bb54a3", + "description": "_upgradeScheduleId[10]: hash-chain link committing to upgrade id 9 (jovian) at 1782348588.", + "allowDifference": false + }, + { + "key": "0x405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ad9", + "before": "0x0000000000000000000000000000000000000000000000000000000000000000", + "after": "0x7c085c72396f9d01629fa24f3a1b7c7a36a9e74019a6006ffe3fe1702b6e1628", + "description": "_upgradeScheduleId[11]: hash-chain link committing to upgrade id 10 (azul) at 1782348888.", + "allowDifference": false + }, + { + "key": "0x405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ada", + "before": "0x0000000000000000000000000000000000000000000000000000000000000000", + "after": "0x6731b82c511c2773e9f127f8c57ab260410dc30d9d69cbeeb10925b3c45fc6bc", + "description": "_upgradeScheduleId[12]: hash-chain link committing to upgrade id 11 (beryl) at 1782349188.", + "allowDifference": false + }, + { + "key": "0x405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5adb", + "before": "0x0000000000000000000000000000000000000000000000000000000000000000", + "after": "0xf79cbe9afb777dd098279ee69b442ffa04d8f8c9d6314ff21747452be3315773", + "description": "_upgradeScheduleId[13]: hash-chain link committing to upgrade id 12 (cobalt) at 1789574400. As the tail of the chain, this is the registry's scheduleId.", + "allowDifference": false + }, + { + "key": "0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6", + "before": "0x0000000000000000000000000000000000000000000000000000000000000000", + "after": "0x000000006a3c7b2c000000006a3c7b2c000000006a3c7b2c000000006a3c7b2c", + "description": "_timestamps[0..3] packed: genesis, canyon, delta and ecotone, all active from Zeronet genesis at 1782348588.", + "allowDifference": false + }, + { + "key": "0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf7", + "before": "0x0000000000000000000000000000000000000000000000000000000000000000", + "after": "0x0000000000000000000000006a3c7b2c000000006a3c7b2c000000006a3c7b2c", + "description": "_timestamps[4..7] packed: fjord, granite and holocene at 1782348588; pectraBlobSchedule (id 7) is registered but left unscheduled at 0.", + "allowDifference": false + }, + { + "key": "0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf8", + "before": "0x0000000000000000000000000000000000000000000000000000000000000000", + "after": "0x000000006a3c7d84000000006a3c7c58000000006a3c7b2c000000006a3c7b2c", + "description": "_timestamps[8..11] packed: isthmus and jovian at 1782348588, azul at 1782348888 (genesis + 300s) and beryl at 1782349188 (genesis + 600s).", + "allowDifference": false + }, + { + "key": "0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf9", + "before": "0x0000000000000000000000000000000000000000000000000000000000000000", + "after": "0x000000000000000000000000000000000000000000000000000000006aaabd00", + "description": "_timestamps[12]: schedules cobalt for 1789574400, which is 2026-09-16 16:00:00 UTC.", + "allowDifference": false + } + ] + }, + { + "name": "Proxy Admin Owner - Zeronet", + "address": "0x3d59999977e0896ee1f8783bB8251DF16fb483E9", + "changes": [ + { + "key": "0x0000000000000000000000000000000000000000000000000000000000000005", + "before": "0x0000000000000000000000000000000000000000000000000000000000000016", + "after": "0x0000000000000000000000000000000000000000000000000000000000000017", + "description": "Increments the nonce", + "allowDifference": false + }, + { + "key": "0x103aa8769d892f9cfb369a9b9971534dac7c7fa98e32d0eaeb85f0e265f251fa", + "before": "0x0000000000000000000000000000000000000000000000000000000000000000", + "after": "0x0000000000000000000000000000000000000000000000000000000000000001", + "description": "Records the nested Safe approval of the Cobalt upgrade transaction hash from the Coinbase signer Safe.", + "allowDifference": false + } + ] + }, + { + "name": "OptimismPortal2 - Zeronet", + "address": "0x7E3B97c95c823F385Ff6770411F6E12F8E09ac9b", + "changes": [ + { + "key": "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc", + "before": "0x000000000000000000000000c1ad6d4e8da1403b9eb6a99491899577050f4863", + "after": "0x000000000000000000000000b4ac39aadc3130fef3f348ece8d033540df12089", + "description": "Upgrades OptimismPortal2 to the Cobalt implementation (version 6.0.0), which removes the EthLockbox code paths. Zeronet has no lockbox, so no ETH moves and the former ethLockbox slot 63 becomes a spacer that keeps its current value.", + "allowDifference": false + } + ] + }, + { + "name": "CB Signer Safe - Zeronet", + "address": "0x856611eD7E07D83243b15E93f6321f2df6865852", + "changes": [ + { + "key": "0x0000000000000000000000000000000000000000000000000000000000000005", + "before": "0x000000000000000000000000000000000000000000000000000000000000001c", + "after": "0x000000000000000000000000000000000000000000000000000000000000001d", + "description": "Increments the nonce", + "allowDifference": false + } + ] + }, + { + "name": "DisputeGameFactory - Zeronet", + "address": "0xD930e0cebD52D7C77b8F900dE242E818506C5474", + "changes": [ + { + "key": "0x32912047a4c082de3e601c4b381c2aa6252270818a4be33442b17fb41b6cf7d6", + "before": "0x0000000000000000000000007dd0f51c71da5243174fa829c8cf3385b06833b0", + "after": "0x0000000000000000000000002504b1c3b78b2711e24eadf7ea077b0ca1b91859", + "description": "Sets gameImpls[621] to the redeployed AggregateVerifier (version 0.2.0), replacing the previous verifier. The new verifier is bound to the new ProtocolVersions registry.", + "allowDifference": false + }, + { + "key": "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc", + "before": "0x0000000000000000000000003a0a9e5b91709bba0bcb4bb4b66730dcfef6e926", + "after": "0x000000000000000000000000bee0c6dd082d7a483da4bd6e56c7e5292bda7ce8", + "description": "Upgrades DisputeGameFactory to the Cobalt implementation (version 1.5.0), which deploys new dispute game proxies with CREATE2. Existing games and the game count are unchanged.", + "allowDifference": false + } + ] + } + ], + "balanceChanges": [], + "skipTaskOriginValidation": true +} diff --git a/active/evm/tasks/2026-09-14-cobalt-upgrade/config/zeronet/validations/security-council-signer.json b/active/evm/tasks/2026-09-14-cobalt-upgrade/config/zeronet/validations/security-council-signer.json new file mode 100644 index 00000000..bb325e11 --- /dev/null +++ b/active/evm/tasks/2026-09-14-cobalt-upgrade/config/zeronet/validations/security-council-signer.json @@ -0,0 +1,286 @@ +{ + "cmd": "PROXY_ADMIN_OWNER=0x3d59999977e0896ee1f8783bb8251df16fb483e9 L1_PROXY_ADMIN=0xf2d2c097be80fb87844b7e259ef67efb98b26f87 OPTIMISM_PORTAL=0x7e3b97c95c823f385ff6770411f6e12f8e09ac9b SYSTEM_CONFIG=0x0a111c7980152bde41d71f48e2e1d8184f5f6187 DISPUTE_GAME_FACTORY_PROXY=0xd930e0cebd52d7c77b8f900de242e818506c5474 OLD_OPTIMISM_PORTAL_IMPL=0xc1ad6d4e8da1403b9eb6a99491899577050f4863 OLD_SYSTEM_CONFIG_IMPL=0xb54d7ff110995029b89a0045128cae42c931aa83 OLD_DISPUTE_GAME_FACTORY_IMPL=0x3a0a9e5b91709bba0bcb4bb4b66730dcfef6e926 OLD_AGGREGATE_VERIFIER=0x7dd0f51C71DA5243174FA829c8cf3385B06833b0 NEW_OPTIMISM_PORTAL_IMPL=0xb4aC39aadC3130fEf3F348ECe8D033540dF12089 NEW_SYSTEM_CONFIG_IMPL=0x210303565CBf0b8c0d2837523816f815F02ad5eB NEW_DISPUTE_GAME_FACTORY_IMPL=0xBeE0c6DD082D7A483Da4bD6e56C7e5292BDa7Ce8 NEW_AGGREGATE_VERIFIER=0x2504B1c3B78B2711e24eadF7eA077b0cA1b91859 PROTOCOL_VERSIONS_PROXY=0x30e172aaC675c9fe5A64792F92C9fD4d3E7cA9Da PROTOCOL_VERSIONS_IMPL=0x30ADFDAB722D36B26f12f562d7cAdF4Cd8831c58 PROTOCOL_VERSIONS_INCIDENT_RESPONDER=0x856611ed7e07d83243b15e93f6321f2df6865852 PROTOCOL_VERSIONS_MINIMUM_PROTOCOL_VERSION=79228162569604569823262539776 PROTOCOL_VERSIONS_INITIAL_SCHEDULE=1782348588,1782348588,1782348588,1782348588,1782348588,1782348588,1782348588,0,1782348588,1782348588,1782348888,1782349188,1789574400 mise exec -- forge script --rpc-url https://c3-chainproxy-eth-hoodi-full-dev.cbhq.net tasks/2026-09-14-cobalt-upgrade/script/ExecuteCobaltUpgrade.s.sol:ExecuteCobaltUpgrade --sig sign(address[]) [0xC4c0aD998B5DfA4CF4B298970F21b9015a5eE7bA] --sender 0x2c1475476B586d66a85bC65A5aB396BBbAa4f3aD", + "ledgerId": 1, + "rpcUrl": "https://c3-chainproxy-eth-hoodi-full-dev.cbhq.net", + "expectedDomainAndMessageHashes": { + "address": "0x3d59999977e0896ee1f8783bB8251DF16fb483E9", + "domainHash": "0x1e2faea9157fbff31d9297595a71e2dedfeb1184207c07bb6bd64f807332a525", + "messageHash": "0x3c177176ea7bd2f9cbf1f3845d612bbce0b13cc847bf5c05ada7d07876b3fe7a" + }, + "stateOverrides": [ + { + "name": "Proxy Admin Owner - Zeronet", + "address": "0x3d59999977e0896ee1f8783bB8251DF16fb483E9", + "overrides": [ + { + "key": "0x0000000000000000000000000000000000000000000000000000000000000004", + "value": "0x0000000000000000000000000000000000000000000000000000000000000001", + "description": "Override the threshold to 1 so the transaction simulation can occur.", + "allowDifference": false + } + ] + }, + { + "name": "Security Council Safe - Zeronet", + "address": "0xC4c0aD998B5DfA4CF4B298970F21b9015a5eE7bA", + "overrides": [ + { + "key": "0x05fd0c137b28dbf220ae37278c8372ce729c7c32742b2f92b4957d78c30bb9ba", + "value": "0x0000000000000000000000000000000000000000000000000000000000000001", + "description": "Simulates an approval from msg.sender in order for the task simulation to succeed.", + "allowDifference": false + } + ] + } + ], + "stateChanges": [ + { + "name": "SystemConfig - Zeronet", + "address": "0x0a111C7980152bDe41D71f48e2E1d8184f5f6187", + "changes": [ + { + "key": "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc", + "before": "0x000000000000000000000000b54d7ff110995029b89a0045128cae42c931aa83", + "after": "0x000000000000000000000000210303565cbf0b8c0d2837523816f815f02ad5eb", + "description": "Upgrades SystemConfig to the Cobalt implementation, which is the build that keeps Zeronet's patched MAX_GAS_LIMIT of 2,000,000,000 (version 3.14.0+max-gas-limit-2000M). The gas limit and pause state are asserted unchanged.", + "allowDifference": false + } + ] + }, + { + "name": "ProtocolVersions - Zeronet", + "address": "0x30e172aaC675c9fe5A64792F92C9fD4d3E7cA9Da", + "changes": [ + { + "key": "0x0000000000000000000000000000000000000000000000000000000000000000", + "before": "0x0000000000000000000000000000000000000000000000000000000000000000", + "after": "0x0000000000000000000000000000000000000000000000000000000000000001", + "description": "Sets Initializable._initialized to 1, recording that the new ProtocolVersions proxy has run its reinitializer(1) initialize call.", + "allowDifference": false + }, + { + "key": "0x0000000000000000000000000000000000000000000000000000000000000001", + "before": "0x0000000000000000000000000000000000000000000000000000000000000000", + "after": "0x000000000000000000000000000000000000000000000000000000000000000d", + "description": "Sets the _timestamps array length to 13, one entry per registered upgrade (ids 0-12, genesis through cobalt).", + "allowDifference": false + }, + { + "key": "0x0000000000000000000000000000000000000000000000000000000000000002", + "before": "0x0000000000000000000000000000000000000000000000000000000000000000", + "after": "0x000000000000000000000000000000000000000000000000000000000000000e", + "description": "Sets the _upgradeScheduleId array length to 14: the bytes32(0) seed at index 0 plus one hash-chain link for each of the 13 registered upgrades.", + "allowDifference": false + }, + { + "key": "0x0000000000000000000000000000000000000000000000000000000000000003", + "before": "0x0000000000000000000000000000000000000000000000000000000000000000", + "after": "0x0000000000000000000000000000000000000001000000030000000200000000", + "description": "Sets minimumProtocolVersion to v1.3.2. The OP format packs the low 16 bytes as major || minor || patch || pre-release, four bytes each, so v1.3.2 is 0x00000001000000030000000200000000 (79228162569604569823262539776).", + "allowDifference": false + }, + { + "key": "0x0000000000000000000000000000000000000000000000000000000000000004", + "before": "0x0000000000000000000000000000000000000000000000000000000000000000", + "after": "0x000000000000000000000000856611ed7e07d83243b15e93f6321f2df6865852", + "description": "Sets incidentResponder to the Coinbase multisig. This is a restricted role that can only push an already-scheduled, not-yet-activated upgrade further into the future.", + "allowDifference": false + }, + { + "key": "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc", + "before": "0x0000000000000000000000000000000000000000000000000000000000000000", + "after": "0x00000000000000000000000030adfdab722d36b26f12f562d7cadf4cd8831c58", + "description": "Upgrades the ProtocolVersions proxy from the zero address to the registry implementation (version 1.0.0). The proxy was deployed uninitialized, so this is the upgradeAndCall that also seeds the schedule.", + "allowDifference": false + }, + { + "key": "0x405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5acf", + "before": "0x0000000000000000000000000000000000000000000000000000000000000000", + "after": "0x0166d3f8da856c31a45b46260bff4abea91e079f65bb1d19caf72f05113ff7c7", + "description": "_upgradeScheduleId[1]: hash-chain link committing to upgrade id 0 (genesis) at 1782348588.", + "allowDifference": false + }, + { + "key": "0x405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ad0", + "before": "0x0000000000000000000000000000000000000000000000000000000000000000", + "after": "0x7dd0a3d5cf72f45456110f9b003c1def43a4e5594271cd1f00f9f9f031411212", + "description": "_upgradeScheduleId[2]: hash-chain link committing to upgrade id 1 (canyon) at 1782348588.", + "allowDifference": false + }, + { + "key": "0x405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ad1", + "before": "0x0000000000000000000000000000000000000000000000000000000000000000", + "after": "0x7fd31e37e400843a4ab62b3a757975732b70bf5f37dc034a6b0401ce2d9b56f6", + "description": "_upgradeScheduleId[3]: hash-chain link committing to upgrade id 2 (delta) at 1782348588.", + "allowDifference": false + }, + { + "key": "0x405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ad2", + "before": "0x0000000000000000000000000000000000000000000000000000000000000000", + "after": "0xd8876ffe4b1bfdfaaf050a75289034bb88a6f0c773b07055b163de2c36ffb284", + "description": "_upgradeScheduleId[4]: hash-chain link committing to upgrade id 3 (ecotone) at 1782348588.", + "allowDifference": false + }, + { + "key": "0x405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ad3", + "before": "0x0000000000000000000000000000000000000000000000000000000000000000", + "after": "0x0bf104b9a877be6444d1fb0e6bba7df327e35975910a5a3b985ab7c3d02350c1", + "description": "_upgradeScheduleId[5]: hash-chain link committing to upgrade id 4 (fjord) at 1782348588.", + "allowDifference": false + }, + { + "key": "0x405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ad4", + "before": "0x0000000000000000000000000000000000000000000000000000000000000000", + "after": "0x59d5d17a92c9e1be92a97f47e70409e37ae90ad3105c5714b3867ae2c98f0bf2", + "description": "_upgradeScheduleId[6]: hash-chain link committing to upgrade id 5 (granite) at 1782348588.", + "allowDifference": false + }, + { + "key": "0x405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ad5", + "before": "0x0000000000000000000000000000000000000000000000000000000000000000", + "after": "0x0335ac8de8507343a45ee1cdb53ba505eaea168ed5cc79a0e9a5e7a51c1b799e", + "description": "_upgradeScheduleId[7]: hash-chain link committing to upgrade id 6 (holocene) at 1782348588.", + "allowDifference": false + }, + { + "key": "0x405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ad6", + "before": "0x0000000000000000000000000000000000000000000000000000000000000000", + "after": "0xc3ed410e08f5d2805b96e95e5b153f8ab9b0506de56b9a799f1cd483850c4e0f", + "description": "_upgradeScheduleId[8]: hash-chain link committing to upgrade id 7 (pectraBlobSchedule), which stays unscheduled at 0.", + "allowDifference": false + }, + { + "key": "0x405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ad7", + "before": "0x0000000000000000000000000000000000000000000000000000000000000000", + "after": "0xb9cbaba7c1dbba36145e42340250daf38d32e6384e90d76cd8eeff2b42685623", + "description": "_upgradeScheduleId[9]: hash-chain link committing to upgrade id 8 (isthmus) at 1782348588.", + "allowDifference": false + }, + { + "key": "0x405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ad8", + "before": "0x0000000000000000000000000000000000000000000000000000000000000000", + "after": "0x06ac8fad7216097e71e1d41a3c1b7f342f9115b20cff01bf0df808bdd4bb54a3", + "description": "_upgradeScheduleId[10]: hash-chain link committing to upgrade id 9 (jovian) at 1782348588.", + "allowDifference": false + }, + { + "key": "0x405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ad9", + "before": "0x0000000000000000000000000000000000000000000000000000000000000000", + "after": "0x7c085c72396f9d01629fa24f3a1b7c7a36a9e74019a6006ffe3fe1702b6e1628", + "description": "_upgradeScheduleId[11]: hash-chain link committing to upgrade id 10 (azul) at 1782348888.", + "allowDifference": false + }, + { + "key": "0x405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ada", + "before": "0x0000000000000000000000000000000000000000000000000000000000000000", + "after": "0x6731b82c511c2773e9f127f8c57ab260410dc30d9d69cbeeb10925b3c45fc6bc", + "description": "_upgradeScheduleId[12]: hash-chain link committing to upgrade id 11 (beryl) at 1782349188.", + "allowDifference": false + }, + { + "key": "0x405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5adb", + "before": "0x0000000000000000000000000000000000000000000000000000000000000000", + "after": "0xf79cbe9afb777dd098279ee69b442ffa04d8f8c9d6314ff21747452be3315773", + "description": "_upgradeScheduleId[13]: hash-chain link committing to upgrade id 12 (cobalt) at 1789574400. As the tail of the chain, this is the registry's scheduleId.", + "allowDifference": false + }, + { + "key": "0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6", + "before": "0x0000000000000000000000000000000000000000000000000000000000000000", + "after": "0x000000006a3c7b2c000000006a3c7b2c000000006a3c7b2c000000006a3c7b2c", + "description": "_timestamps[0..3] packed: genesis, canyon, delta and ecotone, all active from Zeronet genesis at 1782348588.", + "allowDifference": false + }, + { + "key": "0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf7", + "before": "0x0000000000000000000000000000000000000000000000000000000000000000", + "after": "0x0000000000000000000000006a3c7b2c000000006a3c7b2c000000006a3c7b2c", + "description": "_timestamps[4..7] packed: fjord, granite and holocene at 1782348588; pectraBlobSchedule (id 7) is registered but left unscheduled at 0.", + "allowDifference": false + }, + { + "key": "0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf8", + "before": "0x0000000000000000000000000000000000000000000000000000000000000000", + "after": "0x000000006a3c7d84000000006a3c7c58000000006a3c7b2c000000006a3c7b2c", + "description": "_timestamps[8..11] packed: isthmus and jovian at 1782348588, azul at 1782348888 (genesis + 300s) and beryl at 1782349188 (genesis + 600s).", + "allowDifference": false + }, + { + "key": "0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf9", + "before": "0x0000000000000000000000000000000000000000000000000000000000000000", + "after": "0x000000000000000000000000000000000000000000000000000000006aaabd00", + "description": "_timestamps[12]: schedules cobalt for 1789574400, which is 2026-09-16 16:00:00 UTC.", + "allowDifference": false + } + ] + }, + { + "name": "Proxy Admin Owner - Zeronet", + "address": "0x3d59999977e0896ee1f8783bB8251DF16fb483E9", + "changes": [ + { + "key": "0x0000000000000000000000000000000000000000000000000000000000000005", + "before": "0x0000000000000000000000000000000000000000000000000000000000000016", + "after": "0x0000000000000000000000000000000000000000000000000000000000000017", + "description": "Increments the nonce", + "allowDifference": false + }, + { + "key": "0x287d72ec20910c0a7fcdb6138b6057f9e48f93ad4b6e5c230f2febe3279594d4", + "before": "0x0000000000000000000000000000000000000000000000000000000000000000", + "after": "0x0000000000000000000000000000000000000000000000000000000000000001", + "description": "Records the nested Safe approval of the Cobalt upgrade transaction hash from the Security Council Safe.", + "allowDifference": false + } + ] + }, + { + "name": "OptimismPortal2 - Zeronet", + "address": "0x7E3B97c95c823F385Ff6770411F6E12F8E09ac9b", + "changes": [ + { + "key": "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc", + "before": "0x000000000000000000000000c1ad6d4e8da1403b9eb6a99491899577050f4863", + "after": "0x000000000000000000000000b4ac39aadc3130fef3f348ece8d033540df12089", + "description": "Upgrades OptimismPortal2 to the Cobalt implementation (version 6.0.0), which removes the EthLockbox code paths. Zeronet has no lockbox, so no ETH moves and the former ethLockbox slot 63 becomes a spacer that keeps its current value.", + "allowDifference": false + } + ] + }, + { + "name": "Security Council Safe - Zeronet", + "address": "0xC4c0aD998B5DfA4CF4B298970F21b9015a5eE7bA", + "changes": [ + { + "key": "0x0000000000000000000000000000000000000000000000000000000000000005", + "before": "0x0000000000000000000000000000000000000000000000000000000000000019", + "after": "0x000000000000000000000000000000000000000000000000000000000000001a", + "description": "Increments the nonce", + "allowDifference": false + } + ] + }, + { + "name": "DisputeGameFactory - Zeronet", + "address": "0xD930e0cebD52D7C77b8F900dE242E818506C5474", + "changes": [ + { + "key": "0x32912047a4c082de3e601c4b381c2aa6252270818a4be33442b17fb41b6cf7d6", + "before": "0x0000000000000000000000007dd0f51c71da5243174fa829c8cf3385b06833b0", + "after": "0x0000000000000000000000002504b1c3b78b2711e24eadf7ea077b0ca1b91859", + "description": "Sets gameImpls[621] to the redeployed AggregateVerifier (version 0.2.0), replacing the previous verifier. The new verifier is bound to the new ProtocolVersions registry.", + "allowDifference": false + }, + { + "key": "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc", + "before": "0x0000000000000000000000003a0a9e5b91709bba0bcb4bb4b66730dcfef6e926", + "after": "0x000000000000000000000000bee0c6dd082d7a483da4bd6e56c7e5292bda7ce8", + "description": "Upgrades DisputeGameFactory to the Cobalt implementation (version 1.5.0), which deploys new dispute game proxies with CREATE2. Existing games and the game count are unchanged.", + "allowDifference": false + } + ] + } + ], + "balanceChanges": [], + "skipTaskOriginValidation": true +} diff --git a/active/evm/tasks/2026-09-14-cobalt-upgrade/patch/max-gas-limit.patch b/active/evm/tasks/2026-09-14-cobalt-upgrade/patch/max-gas-limit.patch new file mode 100644 index 00000000..93cf650a --- /dev/null +++ b/active/evm/tasks/2026-09-14-cobalt-upgrade/patch/max-gas-limit.patch @@ -0,0 +1,25 @@ +diff --git a/src/L1/SystemConfig.sol b/src/L1/SystemConfig.sol +index 4f2d0bf..2e36de3 100644 +--- a/src/L1/SystemConfig.sol ++++ b/src/L1/SystemConfig.sol +@@ -97,7 +97,7 @@ contract SystemConfig is ProxyAdminOwnedBase, OwnableUpgradeable, Reinitializabl + /// @notice The maximum gas limit that can be set for L2 blocks. This limit is used to enforce that the blocks + /// on L2 are not too large to process and prove. Over time, this value can be increased as various + /// optimizations and improvements are made to the system at large. +- uint64 internal constant MAX_GAS_LIMIT = 500_000_000; ++ uint64 internal constant MAX_GAS_LIMIT = 2_000_000_000; + + /// @notice Fixed L2 gas overhead. Used as part of the L2 fee calculation. + /// Deprecated since the Ecotone network upgrade +@@ -170,9 +170,9 @@ contract SystemConfig is ProxyAdminOwnedBase, OwnableUpgradeable, Reinitializabl + error SystemConfig_InvalidFeatureState(); + + /// @notice Semantic version. +- /// @custom:semver 3.14.0 ++ /// @custom:semver 3.14.0+max-gas-limit-2000M + function version() public pure virtual returns (string memory) { +- return "3.14.0"; ++ return "3.14.0+max-gas-limit-2000M"; + } + + /// @notice Constructs the SystemConfig contract. diff --git a/active/evm/tasks/2026-09-14-cobalt-upgrade/records/DeployCobaltCoreImpls.s.sol/560048/run-1789472725854.json b/active/evm/tasks/2026-09-14-cobalt-upgrade/records/DeployCobaltCoreImpls.s.sol/560048/run-1789472725854.json new file mode 100644 index 00000000..0361b630 --- /dev/null +++ b/active/evm/tasks/2026-09-14-cobalt-upgrade/records/DeployCobaltCoreImpls.s.sol/560048/run-1789472725854.json @@ -0,0 +1,212 @@ +{ + "transactions": [ + { + "hash": "0xfdd99b31e9c74b3a795cdb33f78775ecdeeba4708f5fba20b1124f9504a56de2", + "transactionType": "CREATE", + "contractName": "OptimismPortal2", + "contractAddress": "0xb4ac39aadc3130fef3f348ece8d033540df12089", + "function": null, + "arguments": [ + "0" + ], + "transaction": { + "from": "0x8c1a617bdb47342f9c17ac8750e0b070c372c721", + "gas": "0x53f5ba", + "value": "0x0", + "input": "0x60c06040523480156200001157600080fd5b5060405162004d0f38038062004d0f833981016040819052620000349162000111565b600360805260a0819052620000486200004f565b506200012b565b600054610100900460ff1615620000bc5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811610156200010f576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6000602082840312156200012457600080fd5b5051919050565b60805160a051614bb06200015f600039600081816105d10152611a0f0152600081816102580152610ee50152614bb06000f3fe6080604052600436106101c65760003560e01c80635c975abb116100f7578063a35d99df11610095578063cff0ab9611610064578063cff0ab96146105f5578063dad544e014610696578063e9e05c42146106ab578063f2b4e617146106be57600080fd5b8063a35d99df146104f5578063a3860f4814610515578063bb2c727e14610535578063bf653a5c146105c257600080fd5b80638c3152e9116100d15780638c3152e914610470578063952b2797146104905780639bf62d82146104a5578063a14238e7146104c557600080fd5b80635c975abb1461043b57806371c1566e146104505780638b4c40b0146101eb57600080fd5b806345884d32116101645780634fd0434c1161013e5780634fd0434c14610366578063513747ab1461039457806354fd4d50146103cf5780635c0cba331461041b57600080fd5b806345884d32146102f6578063485cc955146103265780634870496f1461034657600080fd5b80633c9f397c116101a05780633c9f397c146102825780633e47158c146102ac57806343ca1c50146102c1578063452a9320146102e157600080fd5b806333d7e2bd146101f257806335e80ab31461022f57806338d38c971461024457600080fd5b366101ed576101eb3334620186a06000604051806020016040528060008152506106d3565b005b600080fd5b3480156101fe57600080fd5b50603754610212906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561023b57600080fd5b506102126108b3565b34801561025057600080fd5b5060405160ff7f0000000000000000000000000000000000000000000000000000000000000000168152602001610226565b34801561028e57600080fd5b5061029761093f565b60405163ffffffff9091168152602001610226565b3480156102b857600080fd5b506102126109c6565b3480156102cd57600080fd5b506101eb6102dc366004614123565b610baa565b3480156102ed57600080fd5b50610212610df2565b34801561030257600080fd5b50610316610311366004614175565b610e55565b6040519015158152602001610226565b34801561033257600080fd5b506101eb610341366004614192565b610ee3565b34801561035257600080fd5b506101eb6103613660046141c0565b6110b9565b34801561037257600080fd5b5061037b611784565b60405167ffffffffffffffff9091168152602001610226565b3480156103a057600080fd5b506103c16103af36600461429c565b6000908152603c602052604090205490565b604051908152602001610226565b3480156103db57600080fd5b50604080518082018252600581527f362e302e3000000000000000000000000000000000000000000000000000000060208201529051610226919061430d565b34801561042757600080fd5b50603e54610212906001600160a01b031681565b34801561044757600080fd5b5061031661180b565b34801561045c57600080fd5b506101eb61046b366004614320565b611892565b34801561047c57600080fd5b506101eb61048b366004614345565b611b3e565b34801561049c57600080fd5b506103c1611b4b565b3480156104b157600080fd5b50603254610212906001600160a01b031681565b3480156104d157600080fd5b506103166104e036600461429c565b60336020526000908152604090205460ff1681565b34801561050157600080fd5b5061037b610510366004614398565b611bd2565b34801561052157600080fd5b506102126105303660046143b5565b611beb565b34801561054157600080fd5b5061059a610550366004614320565b60396020908152600092835260408084209091529082529020546001600160a01b0381169074010000000000000000000000000000000000000000900467ffffffffffffffff1682565b604080516001600160a01b03909316835267ffffffffffffffff909116602083015201610226565b3480156105ce57600080fd5b507f00000000000000000000000000000000000000000000000000000000000000006103c1565b34801561060157600080fd5b5060015461065d906fffffffffffffffffffffffffffffffff81169067ffffffffffffffff7001000000000000000000000000000000008204811691780100000000000000000000000000000000000000000000000090041683565b604080516fffffffffffffffffffffffffffffffff909416845267ffffffffffffffff9283166020850152911690820152606001610226565b3480156106a257600080fd5b50610212611c23565b6101eb6106b93660046143e5565b6106d3565b3480156106ca57600080fd5b50610212611c6a565b8260005a90506106e1611ccd565b1561071e57341561071e576040517fbd58e0a200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b83801561073357506001600160a01b03871615155b1561076a576040517fc5defbad00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6107748351611bd2565b67ffffffffffffffff168567ffffffffffffffff1610156107c1576040517f70c8bdbd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6201d4c0835111156107ff576040517f5aa3bac900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b33610808611d4f565b610825575033731111000000000000000000000000000000001111015b60003488888888604051602001610840959493929190614464565b60405160208183030381529060405290506000896001600160a01b0316836001600160a01b03167fb3813568d9991fc951961fcb4c784893574240a28925604d09fc577c55bb7c3284604051610896919061430d565b60405180910390a450506108aa8282611d8c565b50505050505050565b603754604080517f35e80ab300000000000000000000000000000000000000000000000000000000815290516000926001600160a01b0316916335e80ab39160048083019260209291908290030181865afa158015610916573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061093a91906144c9565b905090565b603e54604080517f3c9f397c00000000000000000000000000000000000000000000000000000000815290516000926001600160a01b031691633c9f397c9160048083019260209291908290030181865afa1580156109a2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061093a91906144f8565b6000806109f17fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b90506001600160a01b03811615610a0757919050565b6040518060400160405280601a81526020017f4f564d5f4c3143726f7373446f6d61696e4d657373656e676572000000000000815250516002610a4a9190614544565b604080513060208201526000918101919091527f4f564d5f4c3143726f7373446f6d61696e4d657373656e6765720000000000009190911790610aa5906060015b604051602081830303815290604052805190602001205490565b14610adc576040517f54e433cd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60408051306020820152600191810191909152600090610afe90606001610a8b565b90506001600160a01b03811615610b7857806001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b4d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b7191906144c9565b9250505090565b6040517f332144db00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610bb2612063565b610bba611ccd565b15610bfb57606082015115610bfb576040517fbd58e0a200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6032546001600160a01b031661dead14610c41576040517fdfeaaeb800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610c5782604001516001600160a01b0316301490565b15610c8e576040517fc5defbad00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000610c99836120a2565b9050610ca58183611892565b600081815260336020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905590850151603280546001600160a01b039092167fffffffffffffffffffffffff00000000000000000000000000000000000000009092169190911790558401516080850151606086015160a0870151610d3a939291906120ef565b603280547fffffffffffffffffffffffff00000000000000000000000000000000000000001661dead17905560405190915082907fdb5c7652857aa163daadd670e116628fb42e869d8ac4251ef8971d9e5727df1b90610d9f90841515815260200190565b60405180910390a280158015610db55750326001145b15610dec576040517fab58103600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505050565b603754604080517f452a932000000000000000000000000000000000000000000000000000000000815290516000926001600160a01b03169163452a93209160048083019260209291908290030181865afa158015610916573d6000803e3d6000fd5b603e546040517f45884d320000000000000000000000000000000000000000000000000000000081526001600160a01b03838116600483015260009216906345884d3290602401602060405180830381865afa158015610eb9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610edd9190614563565b92915050565b7f0000000000000000000000000000000000000000000000000000000000000000600054610100900460ff16158015610f23575060005460ff8083169116105b610f9a5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084015b60405180910390fd5b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001660ff831617610100179055610fd361214d565b603780546001600160a01b038086167fffffffffffffffffffffffff000000000000000000000000000000000000000092831617909255603e805485841692169190911790556032541661104e57603280547fffffffffffffffffffffffff00000000000000000000000000000000000000001661dead1790555b6110566121b4565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050565b6110c1612063565b6110d785604001516001600160a01b0316301490565b1561110e576040517fc5defbad00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611116611ccd565b1561115757606085015115611157576040517fbd58e0a200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000611161611c6a565b6001600160a01b031663bb8aa1fc866040518263ffffffff1660e01b815260040161118e91815260200190565b606060405180830381865afa1580156111ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111cf9190614580565b603e546040517f496b9c160000000000000000000000000000000000000000000000000000000081526001600160a01b0380841660048301529295509116925063496b9c169150602401602060405180830381865afa158015611236573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061125a9190614563565b611290576040517ff395240e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b603e546040517f04e50fed0000000000000000000000000000000000000000000000000000000081526001600160a01b038381166004830152909116906304e50fed90602401602060405180830381865afa1580156112f3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113179190614563565b61134d576040517fe29927ed00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001816001600160a01b031663200d2ed26040518163ffffffff1660e01b8152600401602060405180830381865afa15801561138d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113b191906145fc565b60028111156113c2576113c26145cd565b036113f9576040517fe29927ed00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61146b816001600160a01b031663cf09e0d06040518163ffffffff1660e01b8152600401602060405180830381865afa15801561143a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061145e919061461d565b67ffffffffffffffff1690565b67ffffffffffffffff1642116114ad576040517fb4caa4e500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6114c46114bf3686900386018661463a565b6122ad565b61152c826001600160a01b031663bcef3b556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611505573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061152991906146a0565b90565b14611563576040517f426149af00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061156e876120a2565b9050600081600060405160200161158f929190918252602082015260400190565b60408051601f1981840301815282825280516020918201209083018190529250611606910160408051601f19818403018152828201909152600182527f01000000000000000000000000000000000000000000000000000000000000006020830152906115fc87896146b9565b89604001356122ec565b1515600003611641576040517f2e57ef3a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805180820182526001600160a01b03808616825267ffffffffffffffff42811660208085019182526000888152603982528681203380835290835287822096518754945190951674010000000000000000000000000000000000000000027fffffffff000000000000000000000000000000000000000000000000000000009094169486169490941792909217909455868152603c845284812080546001810182559082528482200180547fffffffffffffffffffffffff0000000000000000000000000000000000000000169092179091558b840151928c01519351928216939091169185917f67a6208cfcc0801d50f6cbe764733f4fddf66ac0b04442061a8a8c0cb6b63f6291a4604051339083907f798f9f13695f8f045aa5f80ed8efebb695f3c7fe65da381969f2f28bf3c60b9790600090a35050505050505050565b603e54604080517f4086d18300000000000000000000000000000000000000000000000000000000815290516000926001600160a01b031691634086d1839160048083019260209291908290030181865afa1580156117e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061093a919061461d565b603754604080517f5c975abb00000000000000000000000000000000000000000000000000000000815290516000926001600160a01b031691635c975abb9160048083019260209291908290030181865afa15801561186e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061093a9190614563565b60008281526039602090815260408083206001600160a01b0385811685529083528184208251808401845290549182168082527401000000000000000000000000000000000000000090920467ffffffffffffffff1681850152868552603390935292205490919060ff1615611934576040517f730a107400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b816020015167ffffffffffffffff1660000361197c576040517fcca6afda00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6119bd816001600160a01b031663cf09e0d06040518163ffffffff1660e01b8152600401602060405180830381865afa15801561143a573d6000803e3d6000fd5b67ffffffffffffffff16826020015167ffffffffffffffff1611611a0d576040517fb4caa4e500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f0000000000000000000000000000000000000000000000000000000000000000826020015167ffffffffffffffff1642611a48919061473d565b11611a7f576040517fd9bc01be00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b603e546040517f6c4f44670000000000000000000000000000000000000000000000000000000081526001600160a01b03838116600483015290911690636c4f446790602401602060405180830381865afa158015611ae2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b069190614563565b610dec576040517f332a57f800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b611b488133610baa565b50565b603e54604080517f952b279700000000000000000000000000000000000000000000000000000000815290516000926001600160a01b03169163952b27979160048083019260209291908290030181865afa158015611bae573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061093a91906146a0565b6000611bdf826028614754565b610edd90615208614784565b603c6020528160005260406000208181548110611c0757600080fd5b6000918252602090912001546001600160a01b03169150829050565b6000611c2d6109c6565b6001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610916573d6000803e3d6000fd5b603e54604080517ff2b4e61700000000000000000000000000000000000000000000000000000000815290516000926001600160a01b03169163f2b4e6179160048083019260209291908290030181865afa158015610916573d6000803e3d6000fd5b6037546040517f47af267b0000000000000000000000000000000000000000000000000000000081527f435553544f4d5f4741535f544f4b454e0000000000000000000000000000000060048201526000916001600160a01b0316906347af267b90602401602060405180830381865afa15801561186e573d6000803e3d6000fd5b6000323303611d5e5750600190565b333b601703611d8657604051602081016040526020600082333c5160e81c62ef010014905090565b50600090565b600154600090611dc2907801000000000000000000000000000000000000000000000000900467ffffffffffffffff164361473d565b90506000611dce612310565b90506000816020015160ff16826000015163ffffffff16611def91906147df565b90508215611f2657600154600090611e26908390700100000000000000000000000000000000900467ffffffffffffffff16614829565b90506000836040015160ff1683611e3d919061489d565b600154611e5d9084906fffffffffffffffffffffffffffffffff1661489d565b611e6791906147df565b600154909150600090611eb890611e919084906fffffffffffffffffffffffffffffffff16614959565b866060015163ffffffff168760a001516fffffffffffffffffffffffffffffffff166123c9565b90506001861115611ee757611ee4611e9182876040015160ff1660018a611edf919061473d565b6123e8565b90505b6fffffffffffffffffffffffffffffffff16780100000000000000000000000000000000000000000000000067ffffffffffffffff4316021760015550505b60018054869190601090611f59908490700100000000000000000000000000000000900467ffffffffffffffff16614784565b92506101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550816000015163ffffffff16600160000160109054906101000a900467ffffffffffffffff1667ffffffffffffffff161315611fe6576040517f77ebef4d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600154600090612012906fffffffffffffffffffffffffffffffff1667ffffffffffffffff8816614544565b9050600061202448633b9aca0061243d565b61202e90836149cd565b905060005a61203d908861473d565b90508082111561205957612059612054828461473d565b612454565b5050505050505050565b61206b61180b565b15611b3c576040517fb9c3c2ef00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80516020808301516040808501516060860151608087015160a088015193516000976120d29790969591016149e1565b604051602081830303815290604052805190602001209050919050565b60008060006120ff866000612482565b905080612135576308c379a06000526020805278185361666543616c6c3a204e6f7420656e6f756768206761736058526064601cfd5b600080855160208701888b5af1979650505050505050565b336121566109c6565b6001600160a01b03161415801561217d575033612171611c23565b6001600160a01b031614155b15611b3c576040517fc4050a2600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600054610100900460ff166122315760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610f91565b6001547801000000000000000000000000000000000000000000000000900467ffffffffffffffff16600003611b3c5760408051606081018252633b9aca00808252600060208301524367ffffffffffffffff169190920181905278010000000000000000000000000000000000000000000000000217600155565b600081600001518260200151836040015184606001516040516020016120d2949392919093845260208401929092526040830152606082015260800190565b6000806122f8866124a0565b9050612306818686866124d2565b9695505050505050565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a0810191909152603754604080517fcc731b0200000000000000000000000000000000000000000000000000000000815290516000926001600160a01b03169163cc731b029160048083019260c09291908290030181865afa1580156123a5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610edd9190614a41565b60006123de6123d88585612502565b83612512565b90505b9392505050565b6000670de0b6b3a764000061242961240085836147df565b61241290670de0b6b3a7640000614829565b61242485670de0b6b3a764000061489d565b612521565b612433908661489d565b6123de91906147df565b60008183101561244d57816123e1565b5090919050565b6000805a90505b825a612467908361473d565b101561247d5761247682614afd565b915061245b565b505050565b600080603f83619c4001026040850201603f5a021015949350505050565b606081805190602001206040516020016124bc91815260200190565b6040516020818303038152906040529050919050565b60006124f9846124e3878686612552565b8051602091820120825192909101919091201490565b95945050505050565b60008183121561244d57816123e1565b600081831261244d57816123e1565b60006123e1670de0b6b3a76400008361253986612e64565b612543919061489d565b61254d91906147df565b61308e565b606060008451116125a55760405162461bcd60e51b815260206004820152601560248201527f4d65726b6c65547269653a20656d707479206b657900000000000000000000006044820152606401610f91565b60006125b0846132b3565b905060006125bd8661339f565b90506000846040516020016125d491815260200190565b60405160208183030381529060405290506000805b8451811015612df557600085828151811061260657612606614b17565b6020026020010151905084518311156126875760405162461bcd60e51b815260206004820152602e60248201527f4d65726b6c65547269653a206b657920696e646578206578636565647320746f60448201527f74616c206b6579206c656e6774680000000000000000000000000000000000006064820152608401610f91565b8260000361272657805180516020918201206040516126d5926126af92910190815260200190565b604051602081830303815290604052858051602091820120825192909101919091201490565b6127215760405162461bcd60e51b815260206004820152601d60248201527f4d65726b6c65547269653a20696e76616c696420726f6f7420686173680000006044820152606401610f91565b612849565b8051516020116127c25780518051602091820120604051612750926126af92910190815260200190565b6127215760405162461bcd60e51b815260206004820152602760248201527f4d65726b6c65547269653a20696e76616c6964206c6172676520696e7465726e60448201527f616c2068617368000000000000000000000000000000000000000000000000006064820152608401610f91565b8051845160208087019190912082519190920120146128495760405162461bcd60e51b815260206004820152602660248201527f4d65726b6c65547269653a20696e76616c696420696e7465726e616c206e6f6460448201527f65206861736800000000000000000000000000000000000000000000000000006064820152608401610f91565b61285560106001614b46565b816020015151036129fd57845183036129955761288f816020015160108151811061288257612882614b17565b6020026020010151613402565b965060008751116129085760405162461bcd60e51b815260206004820152603b60248201527f4d65726b6c65547269653a2076616c7565206c656e677468206d75737420626560448201527f2067726561746572207468616e207a65726f20286272616e63682900000000006064820152608401610f91565b60018651612916919061473d565b821461298a5760405162461bcd60e51b815260206004820152603a60248201527f4d65726b6c65547269653a2076616c7565206e6f6465206d757374206265206c60448201527f617374206e6f646520696e2070726f6f6620286272616e6368290000000000006064820152608401610f91565b5050505050506123e1565b60008584815181106129a9576129a9614b17565b602001015160f81c60f81b60f81c9050600082602001518260ff16815181106129d4576129d4614b17565b602002602001015190506129e7816134b6565b95506129f4600186614b46565b94505050612de2565b600281602001515103612d74576000612a15826134db565b9050600081600081518110612a2c57612a2c614b17565b016020015160f81c90506000612a43600283614b5e565b612a4e906002614b80565b90506000612a5f848360ff166134ff565b90506000612a6d8a896134ff565b90506000612a7b8383613535565b905080835114612af35760405162461bcd60e51b815260206004820152603a60248201527f4d65726b6c65547269653a20706174682072656d61696e646572206d7573742060448201527f736861726520616c6c206e6962626c65732077697468206b65790000000000006064820152608401610f91565b60ff851660021480612b08575060ff85166003145b15612ca95780825114612b835760405162461bcd60e51b815260206004820152603d60248201527f4d65726b6c65547269653a206b65792072656d61696e646572206d757374206260448201527f65206964656e746963616c20746f20706174682072656d61696e6465720000006064820152608401610f91565b612b9d876020015160018151811061288257612882614b17565b9c5060008d5111612c165760405162461bcd60e51b815260206004820152603960248201527f4d65726b6c65547269653a2076616c7565206c656e677468206d75737420626560448201527f2067726561746572207468616e207a65726f20286c65616629000000000000006064820152608401610f91565b60018c51612c24919061473d565b8814612c985760405162461bcd60e51b815260206004820152603860248201527f4d65726b6c65547269653a2076616c7565206e6f6465206d757374206265206c60448201527f617374206e6f646520696e2070726f6f6620286c6561662900000000000000006064820152608401610f91565b5050505050505050505050506123e1565b60ff85161580612cbc575060ff85166001145b15612cfb57612ce88760200151600181518110612cdb57612cdb614b17565b60200260200101516134b6565b9950612cf4818a614b46565b9850612d69565b60405162461bcd60e51b815260206004820152603260248201527f4d65726b6c65547269653a2072656365697665642061206e6f6465207769746860448201527f20616e20756e6b6e6f776e2070726566697800000000000000000000000000006064820152608401610f91565b505050505050612de2565b60405162461bcd60e51b815260206004820152602860248201527f4d65726b6c65547269653a20726563656976656420616e20756e70617273656160448201527f626c65206e6f64650000000000000000000000000000000000000000000000006064820152608401610f91565b5080612ded81614afd565b9150506125e9565b5060405162461bcd60e51b815260206004820152602560248201527f4d65726b6c65547269653a2072616e206f7574206f662070726f6f6620656c6560448201527f6d656e74730000000000000000000000000000000000000000000000000000006064820152608401610f91565b6000808213612eb55760405162461bcd60e51b815260206004820152600960248201527f554e444546494e454400000000000000000000000000000000000000000000006044820152606401610f91565b60006060612ec2846135e9565b03609f8181039490941b90931c6c465772b2bbbb5f824b15207a3081018102606090811d6d0388eaa27412d5aca026815d636e018202811d6d0df99ac502031bf953eff472fdcc018202811d6d13cdffb29d51d99322bdff5f2211018202811d6d0a0f742023def783a307a986912e018202811d6d01920d8043ca89b5239253284e42018202811d6c0b7a86d7375468fac667a0a527016c29508e458543d8aa4df2abee7883018302821d6d0139601a2efabe717e604cbb4894018302821d6d02247f7a7b6594320649aa03aba1018302821d7fffffffffffffffffffffffffffffffffffffff73c0c716a594e00d54e3c4cbc9018302821d7ffffffffffffffffffffffffffffffffffffffdc7b88c420e53a9890533129f6f01830290911d7fffffffffffffffffffffffffffffffffffffff465fda27eb4d63ded474e5f832019091027ffffffffffffffff5f6af8f7b3396644f18e157960000000000000000000000000105711340daa0d5f769dba1915cef59f0815a5506027d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b393909302929092017d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b88642840160ae1d92915050565b60007ffffffffffffffffffffffffffffffffffffffffffffffffdb731c958f34d94c182136130bf57506000919050565b680755bf798b4a1bf1e582126131175760405162461bcd60e51b815260206004820152600c60248201527f4558505f4f564552464c4f5700000000000000000000000000000000000000006044820152606401610f91565b6503782dace9d9604e83901b059150600060606bb17217f7d1cf79abc9e3b39884821b056b80000000000000000000000001901d6bb17217f7d1cf79abc9e3b39881029093037fffffffffffffffffffffffffffffffffffffffdbf3ccf1604d263450f02a550481018102606090811d6d0277594991cfc85f6e2461837cd9018202811d7fffffffffffffffffffffffffffffffffffffe5adedaa1cb095af9e4da10e363c018202811d6db1bbb201f443cf962f1a1d3db4a5018202811d7ffffffffffffffffffffffffffffffffffffd38dc772608b0ae56cce01296c0eb018202811d6e05180bb14799ab47a8a8cb2a527d57016d02d16720577bd19bf614176fe9ea6c10fe68e7fd37d0007b713f765084018402831d9081019084017ffffffffffffffffffffffffffffffffffffffe2c69812cf03b0763fd454a8f7e010290911d6e0587f503bb6ea29d25fcb7401964500190910279d835ebba824c98fb31b83b2ca45c000000000000000000000000010574029d9dc38563c32e5c2f6dc192ee70ef65f9978af30260c3939093039290921c92915050565b80516060908067ffffffffffffffff8111156132d1576132d1613f8f565b60405190808252806020026020018201604052801561331657816020015b60408051808201909152606080825260208201528152602001906001900390816132ef5790505b50915060005b8181101561339857604051806040016040528085838151811061334157613341614b17565b6020026020010151815260200161337086848151811061336357613363614b17565b60200260200101516136a5565b81525083828151811061338557613385614b17565b602090810291909101015260010161331c565b5050919050565b606080604051905082518060011b603f8101601f1916830160405280835250602084016020830160005b838110156133f7578060011b82018184015160001a8060041c8253600f8116600183015350506001016133c9565b509295945050505050565b60606000806000613412856136b8565b91945092509050600081600181111561342d5761342d6145cd565b14613464576040517f1ff9b2e400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61346e8284614b46565b8551146134a7576040517f5c5537b800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6124f985602001518484613b56565b606060208260000151106134d2576134cd82613402565b610edd565b610edd82613bea565b6060610edd6134fa836020015160008151811061288257612882614b17565b61339f565b60608251821061351e5750604080516020810190915260008152610edd565b6123e18383848651613530919061473d565b613c00565b600080825184511061354857825161354b565b83515b90505b80821080156135d2575082828151811061356a5761356a614b17565b602001015160f81c60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168483815181106135a9576135a9614b17565b01602001517fff0000000000000000000000000000000000000000000000000000000000000016145b156135e25781600101915061354e565b5092915050565b600080821161363a5760405162461bcd60e51b815260206004820152600960248201527f554e444546494e454400000000000000000000000000000000000000000000006044820152606401610f91565b5060016fffffffffffffffffffffffffffffffff821160071b82811c67ffffffffffffffff1060061b1782811c63ffffffff1060051b1782811c61ffff1060041b1782811c60ff10600390811b90911783811c600f1060021b1783811c909110821b1791821c111790565b6060610edd6136b383613d6c565b613dd9565b600080600083600001516000036136fb576040517f5ab458fb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6020840151805160001a607f8111613720576000600160009450945094505050613b4f565b60b7811161383657600061373560808361473d565b905080876000015111613774576040517f66c9448500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001838101517fff000000000000000000000000000000000000000000000000000000000000001690821480156137ec57507f80000000000000000000000000000000000000000000000000000000000000007fff000000000000000000000000000000000000000000000000000000000000008216105b15613823576040517fbabb01dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5060019550935060009250613b4f915050565b60bf811161399457600061384b60b78361473d565b90508087600001511161388a576040517f66c9448500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60018301517fff000000000000000000000000000000000000000000000000000000000000001660008190036138ec576040517fbabb01dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600184015160088302610100031c60378111613934576040517fbabb01dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61393e8184614b46565b895111613977576040517f66c9448500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b613982836001614b46565b9750955060009450613b4f9350505050565b60f781116139f95760006139a960c08361473d565b9050808760000151116139e8576040517f66c9448500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600195509350849250613b4f915050565b6000613a0660f78361473d565b905080876000015111613a45576040517f66c9448500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60018301517fff00000000000000000000000000000000000000000000000000000000000000166000819003613aa7576040517fbabb01dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600184015160088302610100031c60378111613aef576040517fbabb01dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b613af98184614b46565b895111613b32576040517f66c9448500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b613b3d836001614b46565b9750955060019450613b4f9350505050565b9193909250565b60608167ffffffffffffffff811115613b7157613b71613f8f565b6040519080825280601f01601f191660200182016040528015613b9b576020820181803683370190505b50905081156123e1576000613bb08486614b46565b90506020820160005b84811015613bd1578281015182820152602001613bb9565b84811115613be0576000858301525b5050509392505050565b6060610edd826020015160008460000151613b56565b60608182601f011015613c555760405162461bcd60e51b815260206004820152600e60248201527f736c6963655f6f766572666c6f770000000000000000000000000000000000006044820152606401610f91565b828284011015613ca75760405162461bcd60e51b815260206004820152600e60248201527f736c6963655f6f766572666c6f770000000000000000000000000000000000006044820152606401610f91565b81830184511015613cfa5760405162461bcd60e51b815260206004820152601160248201527f736c6963655f6f75744f66426f756e64730000000000000000000000000000006044820152606401610f91565b606082158015613d195760405191506000825260208201604052613d63565b6040519150601f8416801560200281840101858101878315602002848b0101015b81831015613d52578051835260209283019201613d3a565b5050858452601f01601f1916604052505b50949350505050565b60408051808201909152600080825260208201528151600003613dbb576040517f5ab458fb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50604080518082019091528151815260209182019181019190915290565b60606000806000613de9856136b8565b919450925090506001816001811115613e0457613e046145cd565b14613e3b576040517f4b9c6abe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8451613e478385614b46565b14613e7e576040517f5c5537b800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604080516020808252610420820190925290816020015b6040805180820190915260008082526020820152815260200190600190039081613e955790505093506000835b8651811015613f8357600080613f086040518060400160405280858c60000151613eec919061473d565b8152602001858c60200151613f019190614b46565b90526136b8565b509150915060405180604001604052808383613f249190614b46565b8152602001848b60200151613f399190614b46565b815250888581518110613f4e57613f4e614b17565b6020908102919091010152613f64600185614b46565b9350613f708183614b46565b613f7a9084614b46565b92505050613ec2565b50845250919392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715613fe757613fe7613f8f565b604052919050565b6001600160a01b0381168114611b4857600080fd5b600082601f83011261401557600080fd5b813567ffffffffffffffff81111561402f5761402f613f8f565b6140426020601f19601f84011601613fbe565b81815284602083860101111561405757600080fd5b816020850160208301376000918101602001919091529392505050565b600060c0828403121561408657600080fd5b60405160c0810167ffffffffffffffff82821081831117156140aa576140aa613f8f565b8160405282935084358352602085013591506140c582613fef565b816020840152604085013591506140db82613fef565b816040840152606085013560608401526080850135608084015260a085013591508082111561410957600080fd5b5061411685828601614004565b60a0830152505092915050565b6000806040838503121561413657600080fd5b823567ffffffffffffffff81111561414d57600080fd5b61415985828601614074565b925050602083013561416a81613fef565b809150509250929050565b60006020828403121561418757600080fd5b81356123e181613fef565b600080604083850312156141a557600080fd5b82356141b081613fef565b9150602083013561416a81613fef565b600080600080600085870360e08112156141d957600080fd5b863567ffffffffffffffff808211156141f157600080fd5b6141fd8a838b01614074565b97506020890135965060807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08401121561423657600080fd5b60408901955060c089013592508083111561425057600080fd5b828901925089601f84011261426457600080fd5b823591508082111561427557600080fd5b508860208260051b840101111561428b57600080fd5b959894975092955050506020019190565b6000602082840312156142ae57600080fd5b5035919050565b60005b838110156142d05781810151838201526020016142b8565b83811115610dec5750506000910152565b600081518084526142f98160208601602086016142b5565b601f01601f19169290920160200192915050565b6020815260006123e160208301846142e1565b6000806040838503121561433357600080fd5b82359150602083013561416a81613fef565b60006020828403121561435757600080fd5b813567ffffffffffffffff81111561436e57600080fd5b61437a84828501614074565b949350505050565b67ffffffffffffffff81168114611b4857600080fd5b6000602082840312156143aa57600080fd5b81356123e181614382565b600080604083850312156143c857600080fd5b50508035926020909101359150565b8015158114611b4857600080fd5b600080600080600060a086880312156143fd57600080fd5b853561440881613fef565b945060208601359350604086013561441f81614382565b9250606086013561442f816143d7565b9150608086013567ffffffffffffffff81111561444b57600080fd5b61445788828901614004565b9150509295509295909350565b8581528460208201527fffffffffffffffff0000000000000000000000000000000000000000000000008460c01b16604082015282151560f81b6048820152600082516144b88160498501602087016142b5565b919091016049019695505050505050565b6000602082840312156144db57600080fd5b81516123e181613fef565b63ffffffff81168114611b4857600080fd5b60006020828403121561450a57600080fd5b81516123e1816144e6565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600081600019048311821515161561455e5761455e614515565b500290565b60006020828403121561457557600080fd5b81516123e1816143d7565b60008060006060848603121561459557600080fd5b83516145a0816144e6565b60208501519093506145b181614382565b60408501519092506145c281613fef565b809150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60006020828403121561460e57600080fd5b8151600381106123e157600080fd5b60006020828403121561462f57600080fd5b81516123e181614382565b60006080828403121561464c57600080fd5b6040516080810181811067ffffffffffffffff8211171561466f5761466f613f8f565b8060405250823581526020830135602082015260408301356040820152606083013560608201528091505092915050565b6000602082840312156146b257600080fd5b5051919050565b600067ffffffffffffffff808411156146d4576146d4613f8f565b8360051b60206146e5818301613fbe565b8681529185019181810190368411156146fd57600080fd5b865b84811015614731578035868111156147175760008081fd5b61472336828b01614004565b8452509183019183016146ff565b50979650505050505050565b60008282101561474f5761474f614515565b500390565b600067ffffffffffffffff8083168185168183048111821515161561477b5761477b614515565b02949350505050565b600067ffffffffffffffff8083168185168083038211156147a7576147a7614515565b01949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000826147ee576147ee6147b0565b60001983147f80000000000000000000000000000000000000000000000000000000000000008314161561482457614824614515565b500590565b6000808312837f80000000000000000000000000000000000000000000000000000000000000000183128115161561486357614863614515565b837f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01831381161561489757614897614515565b50500390565b60007f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6000841360008413858304851182821616156148de576148de614515565b7f8000000000000000000000000000000000000000000000000000000000000000600087128682058812818416161561491957614919614515565b6000871292508782058712848416161561493557614935614515565b8785058712818416161561494b5761494b614515565b505050929093029392505050565b6000808212827f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0384138115161561499357614993614515565b827f80000000000000000000000000000000000000000000000000000000000000000384128116156149c7576149c7614515565b50500190565b6000826149dc576149dc6147b0565b500490565b86815260006001600160a01b03808816602084015280871660408401525084606083015283608083015260c060a0830152614a1f60c08301846142e1565b98975050505050505050565b805160ff81168114614a3c57600080fd5b919050565b600060c08284031215614a5357600080fd5b60405160c0810181811067ffffffffffffffff82111715614a7657614a76613f8f565b6040528251614a84816144e6565b8152614a9260208401614a2b565b6020820152614aa360408401614a2b565b60408201526060830151614ab6816144e6565b60608201526080830151614ac9816144e6565b608082015260a08301516fffffffffffffffffffffffffffffffff81168114614af157600080fd5b60a08201529392505050565b60006000198203614b1057614b10614515565b5060010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008219821115614b5957614b59614515565b500190565b600060ff831680614b7157614b716147b0565b8060ff84160691505092915050565b600060ff821660ff841680821015614b9a57614b9a614515565b9003939250505056fea164736f6c634300080f000a0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0xb2", + "chainId": "0x88bb0" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0xe38abd2d3a322fca54cfd48c79b950861d77218ce460cde4cc912bf820f15ea5", + "transactionType": "CREATE", + "contractName": "SystemConfig", + "contractAddress": "0x210303565cbf0b8c0d2837523816f815f02ad5eb", + "function": null, + "arguments": null, + "transaction": { + "from": "0x8c1a617bdb47342f9c17ac8750e0b070c372c721", + "gas": "0x314e20", + "value": "0x0", + "input": "0x60a06040523480156200001157600080fd5b5060046080526200005f6200004860017fa11ee3ab75b40e88a0105e935d17cd36c8faee0138320d776c411291bdbbb1a062000135565b60001b6000196200006f60201b620017c71760201c565b6200006962000073565b6200015b565b9055565b600054610100900460ff1615620000e05760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101562000133576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6000828210156200015657634e487b7160e01b600052601160045260246000fd5b500390565b608051612b486200017e600039600081816105480152610af70152612b486000f3fe608060405234801561001057600080fd5b50600436106103af5760003560e01c80637e54b8ad116101f4578063d220a9e01161011a578063f2c4bc9e116100ad578063f8c68de01161007c578063f8c68de01461099e578063fd32aa0f146109a6578063fe3d5710146109ae578063ffa1ad74146109e757600080fd5b8063f2c4bc9e1461095b578063f2fde38b1461096e578063f45e65d814610981578063f68016b71461098a57600080fd5b8063e0e2016d116100e9578063e0e2016d14610922578063e81b2c6d1461092a578063ec70751714610933578063f2b4e6171461095357600080fd5b8063d220a9e0146108f9578063d6ae3cd514610909578063dac6e63a14610912578063dad544e01461091a57600080fd5b8063b40a817c11610192578063c4e8ddfa11610161578063c4e8ddfa14610792578063c9b26f611461079a578063c9ff2d16146107ad578063cc731b02146107c557600080fd5b8063b40a817c14610748578063bc49ce5f1461075b578063bfb14fb714610763578063c0fd4b411461077f57600080fd5b80639b7d7f0a116101ce5780639b7d7f0a146106a3578063a39fac12146106ab578063a62611a214610714578063a71198691461074057600080fd5b80637e54b8ad146106775780638da5cb5b1461067f578063935f029e1461069057600080fd5b806321d7fde5116102d95780634add321d116102775780635c975abb116102465780635c975abb1461064c5780635d73369c14610654578063715018a61461065c5780637616f0e81461066457600080fd5b80634add321d146105ad5780634d5d9a2a146105b55780634f16540b146105e657806354fd4d501461060d57600080fd5b80633e47158c116102b35780633e47158c14610572578063452a93201461057a57806347af267b1461058257806348cd4cb1146105a557600080fd5b806321d7fde51461051b57806335e80ab31461052e57806338d38c971461054157600080fd5b806316d3bc7f116103515780631fd19ee1116103205780631fd19ee11461049957806320f06fdc146104a157806321326849146104b4578063215b7a1c1461051357600080fd5b806316d3bc7f1461044757806318d139181461046b57806319f5cea81461047e5780631edd50981461048657600080fd5b80630a49cb031161038d5780630a49cb03146104045780630ae14b1b1461040c5780630c18c1621461042b578063155b6c6f1461043457600080fd5b806306c92657146103b4578063078f29cf146103cf5780630a2ca2a9146103ef575b600080fd5b6103bc6109ef565b6040519081526020015b60405180910390f35b6103d7610a1d565b6040516001600160a01b0390911681526020016103c6565b6104026103fd366004612551565b610a56565b005b6103d7610a73565b63773594005b60405167ffffffffffffffff90911681526020016103c6565b6103bc60655481565b6104026104423660046125a1565b610aa3565b606a54610412906c01000000000000000000000000900467ffffffffffffffff1681565b610402610479366004612551565b610ab9565b6103bc610aca565b61040261049436600461270b565b610af5565b6103d7610e6a565b6104026104af36600461287b565b610e94565b7f435553544f4d5f4741535f544f4b454e00000000000000000000000000000000600052606d6020527f3ec9a18bd22a834e2a13465cc2aa2a9aebb161ffdebf39cdb0028dbb1b5394b45460ff165b60405190151581526020016103c6565b6103d7610ea5565b61040261052936600461289f565b610ed5565b606c546103d7906001600160a01b031681565b60405160ff7f00000000000000000000000000000000000000000000000000000000000000001681526020016103c6565b6103d7610ee7565b6103d76110cb565b6105036105903660046128c9565b606d6020526000908152604090205460ff1681565b6103bc611152565b610412611182565b606a546105d19068010000000000000000900463ffffffff1681565b60405163ffffffff90911681526020016103c6565b6103bc7f65a7ed542fb37fe237fdfbdd70b31598523fe5b32879e307bae27a0bd9581c0881565b604080518082018252601a81527f332e31342e302b6d61782d6761732d6c696d69742d323030304d000000000000602082015290516103c6919061292f565b6105036111a8565b6103bc6112ce565b6104026112f9565b610402610672366004612942565b61130d565b6103bc61131e565b6033546001600160a01b03166103d7565b61040261069e36600461295d565b611349565b6103d761135b565b6106b361138b565b6040516103c69190600060c0820190506001600160a01b038084511683528060208501511660208401528060408501511660408401528060608501511660608401528060808501511660808401528060a08501511660a08401525092915050565b606c546104129074010000000000000000000000000000000000000000900467ffffffffffffffff1681565b6103d761144e565b610402610756366004612942565b61147e565b6103bc61148f565b6068546105d19068010000000000000000900463ffffffff1681565b61040261078d36600461289f565b6114ba565b6103d76114cc565b6104026107a83660046128c9565b6114fc565b606a546105d190640100000000900463ffffffff1681565b6108896040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a0810191909152506040805160c08101825260695463ffffffff8082168352640100000000820460ff9081166020850152650100000000008304169383019390935266010000000000008104831660608301526a0100000000000000000000810490921660808201526e0100000000000000000000000000009091046fffffffffffffffffffffffffffffffff1660a082015290565b6040516103c69190600060c08201905063ffffffff80845116835260ff602085015116602084015260ff6040850151166040840152806060850151166060840152806080850151166080840152506fffffffffffffffffffffffffffffffff60a08401511660a083015292915050565b606a546105d19063ffffffff1681565b6103bc606b5481565b6103d761150d565b6103d761153d565b6103bc611584565b6103bc60675481565b6068546105d1906c01000000000000000000000000900463ffffffff1681565b6103d76115af565b61040261096936600461298d565b611624565b61040261097c366004612551565b6116e4565b6103bc60665481565b6068546104129067ffffffffffffffff1681565b6103bc611771565b6103bc61179c565b606a546109d49074010000000000000000000000000000000000000000900461ffff1681565b60405161ffff90911681526020016103c6565b6103bc600081565b610a1a60017fa04c5bb938ca6fc46d95553abf0a76345ce3e722a30bf4f74928b8e7d852320d6129ec565b81565b6000610a51610a4d60017f9904ba90dde5696cda05c9e0dab5cbaa0fea005ace4d11218a02ac668dad63776129ec565b5490565b905090565b610a5e6117cb565b610a706001600160a01b038216611825565b50565b6000610a51610a4d60017f4b6c74f9e688cb39801f2112c14a8c57232a3fc5202e1444126d4bce86eb19ad6129ec565b610aab6117cb565b610ab58282611886565b5050565b610ac16117cb565b610a7081611978565b610a1a60017f46adcbebc6be8ce551740c29c47c8798210f23f7f4086c41752944352568d5a86129ec565b7f0000000000000000000000000000000000000000000000000000000000000000600054610100900460ff16158015610b35575060005460ff8083169116105b610bac5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084015b60405180910390fd5b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001660ff831617610100179055610be56119d1565b610bed611a38565b610bf68c6116e4565b610bff89611825565b610c098b8b611abd565b610c1288611ba4565b610c3b7f65a7ed542fb37fe237fdfbdd70b31598523fe5b32879e307bae27a0bd9581c08889055565b610c6e610c6960017f71ac12829d66ee73d8d95bff50b3589745ce57edae70a3fb111a2342464dc5986129ec565b869055565b610ca2610c9c60017f383f291819e6d54073bc9a648251d97421076bdd101933c0c022219ce95806376129ec565b85519055565b610cd9610cd060017f46adcbebc6be8ce551740c29c47c8798210f23f7f4086c41752944352568d5a86129ec565b60208601519055565b610d10610d0760017f9904ba90dde5696cda05c9e0dab5cbaa0fea005ace4d11218a02ac668dad63776129ec565b60408601519055565b610d47610d3e60017f4b6c74f9e688cb39801f2112c14a8c57232a3fc5202e1444126d4bce86eb19ad6129ec565b60608601519055565b610d7e610d7560017fa04c5bb938ca6fc46d95553abf0a76345ce3e722a30bf4f74928b8e7d852320d6129ec565b60808601519055565b610db5610dac60017f51547f31a231e1007dca33017faa3da20d959b95087c588a7768bfb922fd59006129ec565b60a08601519055565b610dbd611cc6565b610dc686611d2e565b606b839055606c80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b038416179055600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050505050505050505050565b6000610a517f65a7ed542fb37fe237fdfbdd70b31598523fe5b32879e307bae27a0bd9581c085490565b610e9c6117cb565b610a7081612120565b6000610a51610a4d60017f51547f31a231e1007dca33017faa3da20d959b95087c588a7768bfb922fd59006129ec565b610edd6117cb565b610ab58282611abd565b600080610f127fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b90506001600160a01b03811615610f2857919050565b6040518060400160405280601a81526020017f4f564d5f4c3143726f7373446f6d61696e4d657373656e676572000000000000815250516002610f6b9190612a03565b604080513060208201526000918101919091527f4f564d5f4c3143726f7373446f6d61696e4d657373656e6765720000000000009190911790610fc6906060015b604051602081830303815290604052805190602001205490565b14610ffd576040517f54e433cd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805130602082015260019181019190915260009061101f90606001610fac565b90506001600160a01b0381161561109957806001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561106e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110929190612a40565b9250505090565b6040517f332144db00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b606c54604080517f452a932000000000000000000000000000000000000000000000000000000000815290516000926001600160a01b03169163452a93209160048083019260209291908290030181865afa15801561112e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a519190612a40565b6000610a51610a4d60017fa11ee3ab75b40e88a0105e935d17cd36c8faee0138320d776c411291bdbbb1a06129ec565b606954600090610a519063ffffffff6a0100000000000000000000820481169116612a5d565b606c546040517f2e48152c000000000000000000000000000000000000000000000000000000008152600060048201819052916001600160a01b031690632e48152c90602401602060405180830381865afa15801561120b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061122f9190612a89565b80610a515750606c546001600160a01b0316632e48152c61124e610a73565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa1580156112aa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a519190612a89565b610a1a60017f383f291819e6d54073bc9a648251d97421076bdd101933c0c022219ce95806376129ec565b6113016117cb565b61130b600061218d565b565b6113156117cb565b610a70816121f7565b610a1a60017f51547f31a231e1007dca33017faa3da20d959b95087c588a7768bfb922fd59006129ec565b6113516117cb565b610ab5828261226a565b6000610a51610a4d60017fa04c5bb938ca6fc46d95553abf0a76345ce3e722a30bf4f74928b8e7d852320d6129ec565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a08101919091526040518060c001604052806113d061144e565b6001600160a01b031681526020016113e66114cc565b6001600160a01b031681526020016113fc610a1d565b6001600160a01b03168152602001611412610a73565b6001600160a01b0316815260200161142861135b565b6001600160a01b0316815260200161143e610ea5565b6001600160a01b03169052919050565b6000610a51610a4d60017f383f291819e6d54073bc9a648251d97421076bdd101933c0c022219ce95806376129ec565b6114866117cb565b610a7081611ba4565b610a1a60017f71ac12829d66ee73d8d95bff50b3589745ce57edae70a3fb111a2342464dc5986129ec565b6114c26117cb565b610ab58282612326565b6000610a51610a4d60017f46adcbebc6be8ce551740c29c47c8798210f23f7f4086c41752944352568d5a86129ec565b6115046117cb565b610a7081611825565b6000610a51610a4d60017f71ac12829d66ee73d8d95bff50b3589745ce57edae70a3fb111a2342464dc5986129ec565b6000611547610ee7565b6001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561112e573d6000803e3d6000fd5b610a1a60017fa11ee3ab75b40e88a0105e935d17cd36c8faee0138320d776c411291bdbbb1a06129ec565b6000806115ba610a73565b9050806001600160a01b031663f2b4e6176040518163ffffffff1660e01b8152600401602060405180830381865afa1580156115fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061161e9190612a40565b91505090565b61162c6119d1565b6000828152606d602052604090205460ff1615158115150361167a576040517ff5828b0400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000828152606d602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168415159081179091559051909184917fb876f6594132c89891d2fd198e925e999be741ec809abb58bfe9b966876cc06c9190a35050565b6116ec6117cb565b6001600160a01b0381166117685760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610ba3565b610a708161218d565b610a1a60017f9904ba90dde5696cda05c9e0dab5cbaa0fea005ace4d11218a02ac668dad63776129ec565b610a1a60017f4b6c74f9e688cb39801f2112c14a8c57232a3fc5202e1444126d4bce86eb19ad6129ec565b9055565b6033546001600160a01b0316331461130b5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610ba3565b60678190556040805160208082018490528251808303909101815290820190915260005b60007f1d2b0bda21d56b8bd12d4f94ebacffdfb35f5e226f84b461103bb8beab6353be8360405161187a919061292f565b60405180910390a35050565b606a80547fffffffffffffffffffffffff000000000000000000000000ffffffffffffffff166801000000000000000063ffffffff8516027fffffffffffffffffffffffff0000000000000000ffffffffffffffffffffffff16176c0100000000000000000000000067ffffffffffffffff841690810291909117909155604080516bffffffff000000000000000085831b1690921760208301526000910160408051601f19818403018152919052905060055b60007f1d2b0bda21d56b8bd12d4f94ebacffdfb35f5e226f84b461103bb8beab6353be8360405161196b919061292f565b60405180910390a3505050565b6119a17f65a7ed542fb37fe237fdfbdd70b31598523fe5b32879e307bae27a0bd9581c08829055565b604080516001600160a01b03831660208201526000910160408051601f1981840301815291905290506003611849565b336119da610ee7565b6001600160a01b031614158015611a015750336119f561153d565b6001600160a01b031614155b1561130b576040517fc4050a2600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600054610100900460ff16611ab55760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610ba3565b61130b6124a6565b606880547fffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff166801000000000000000063ffffffff8581169182027fffffffffffffffffffffffffffffffff00000000ffffffffffffffffffffffff16929092176c0100000000000000000000000092851692909202919091179091557f0100000000000000000000000000000000000000000000000000000000000000602083811b67ffffffff000000001690921717606681905560655460408051938401919091528201526000906060015b60408051601f198184030181529190529050600161193a565b611bac611182565b67ffffffffffffffff168167ffffffffffffffff161015611c0f5760405162461bcd60e51b815260206004820152601f60248201527f53797374656d436f6e6669673a20676173206c696d697420746f6f206c6f77006044820152606401610ba3565b637735940067ffffffffffffffff82161115611c6d5760405162461bcd60e51b815260206004820181905260248201527f53797374656d436f6e6669673a20676173206c696d697420746f6f20686967686044820152606401610ba3565b606880547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001667ffffffffffffffff83169081179091556040805160208082019390935281518082039093018352810190526002611849565b611cf4610a4d60017fa11ee3ab75b40e88a0105e935d17cd36c8faee0138320d776c411291bdbbb1a06129ec565b60000361130b5761130b611d2960017fa11ee3ab75b40e88a0105e935d17cd36c8faee0138320d776c411291bdbbb1a06129ec565b439055565b8060a001516fffffffffffffffffffffffffffffffff16816060015163ffffffff161115611dc45760405162461bcd60e51b815260206004820152603560248201527f53797374656d436f6e6669673a206d696e206261736520666565206d7573742060448201527f6265206c657373207468616e206d6178206261736500000000000000000000006064820152608401610ba3565b6001816040015160ff1611611e415760405162461bcd60e51b815260206004820152602f60248201527f53797374656d436f6e6669673a2064656e6f6d696e61746f72206d757374206260448201527f65206c6172676572207468616e203100000000000000000000000000000000006064820152608401610ba3565b6068546080820151825167ffffffffffffffff90921691611e629190612aa6565b63ffffffff161115611eb65760405162461bcd60e51b815260206004820152601f60248201527f53797374656d436f6e6669673a20676173206c696d697420746f6f206c6f77006044820152606401610ba3565b6000816020015160ff1611611f335760405162461bcd60e51b815260206004820152602f60248201527f53797374656d436f6e6669673a20656c6173746963697479206d756c7469706c60448201527f6965722063616e6e6f74206265203000000000000000000000000000000000006064820152608401610ba3565b8051602082015163ffffffff82169160ff90911690611f53908290612ac5565b611f5d9190612b0f565b63ffffffff1614611fd65760405162461bcd60e51b815260206004820152603760248201527f53797374656d436f6e6669673a20707265636973696f6e206c6f73732077697460448201527f6820746172676574207265736f75726365206c696d69740000000000000000006064820152608401610ba3565b805160698054602084015160408501516060860151608087015160a09097015163ffffffff9687167fffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000009095169490941764010000000060ff94851602177fffffffffffffffffffffffffffffffffffffffffffff0000000000ffffffffff166501000000000093909216929092027fffffffffffffffffffffffffffffffffffffffffffff00000000ffffffffffff1617660100000000000091851691909102177fffff0000000000000000000000000000000000000000ffffffffffffffffffff166a010000000000000000000093909416929092027fffff00000000000000000000000000000000ffffffffffffffffffffffffffff16929092176e0100000000000000000000000000006fffffffffffffffffffffffffffffffff90921691909102179055565b606a80547fffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000061ffff8416908102919091179091556040805160208082019390935281518082039093018352810190526007611849565b603380546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b606c80547fffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000067ffffffffffffffff8416908102919091179091556040805160208082019390935281518082039093018352810190526006611849565b7fff000000000000000000000000000000000000000000000000000000000000008116156123005760405162461bcd60e51b815260206004820152602160248201527f53797374656d436f6e6669673a207363616c61722065786365656473206d617860448201527f2e000000000000000000000000000000000000000000000000000000000000006064820152608401610ba3565b606582905560668190556040805160208101849052908101829052600090606001611b8b565b60018263ffffffff1610156123a35760405162461bcd60e51b815260206004820152602660248201527f53797374656d436f6e6669673a2064656e6f6d696e61746f72206d757374206260448201527f65203e3d203100000000000000000000000000000000000000000000000000006064820152608401610ba3565b60018163ffffffff1610156124205760405162461bcd60e51b815260206004820152602560248201527f53797374656d436f6e6669673a20656c6173746963697479206d75737420626560448201527f203e3d20310000000000000000000000000000000000000000000000000000006064820152608401610ba3565b606a805463ffffffff83811664010000000081027fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000909316918616919091179190911790915560405160009161248d91602086811b67ffffffff0000000016909217910190815260200190565b60408051601f198184030181529190529050600461193a565b600054610100900460ff166125235760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610ba3565b61130b3361218d565b6001600160a01b0381168114610a7057600080fd5b803561254c8161252c565b919050565b60006020828403121561256357600080fd5b813561256e8161252c565b9392505050565b803563ffffffff8116811461254c57600080fd5b803567ffffffffffffffff8116811461254c57600080fd5b600080604083850312156125b457600080fd5b6125bd83612575565b91506125cb60208401612589565b90509250929050565b60405160c0810167ffffffffffffffff8111828210171561261e577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405290565b803560ff8116811461254c57600080fd5b600060c0828403121561264757600080fd5b60405160c0810181811067ffffffffffffffff82111715612691577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405290508082356126a28161252c565b815260208301356126b28161252c565b602082015260408301356126c58161252c565b604082015260608301356126d88161252c565b606082015260808301356126eb8161252c565b608082015260a08301356126fe8161252c565b60a0919091015292915050565b60008060008060008060008060008060008b8d036102a081121561272e57600080fd5b8c356127398161252c565b9b5061274760208e01612575565b9a5061275560408e01612575565b995060608d0135985061276a60808e01612589565b975060a08d013561277a8161252c565b965060c07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff40820112156127ac57600080fd5b506127b56125d4565b6127c160c08e01612575565b81526127cf60e08e01612624565b60208201526127e16101008e01612624565b60408201526127f36101208e01612575565b60608201526128056101408e01612575565b60808201526101608d01356fffffffffffffffffffffffffffffffff8116811461282e57600080fd5b60a082015294506128426101808d01612541565b93506128528d6101a08e01612635565b92506102608c013591506128696102808d01612541565b90509295989b509295989b9093969950565b60006020828403121561288d57600080fd5b813561ffff8116811461256e57600080fd5b600080604083850312156128b257600080fd5b6128bb83612575565b91506125cb60208401612575565b6000602082840312156128db57600080fd5b5035919050565b6000815180845260005b81811015612908576020818501810151868301820152016128ec565b8181111561291a576000602083870101525b50601f01601f19169290920160200192915050565b60208152600061256e60208301846128e2565b60006020828403121561295457600080fd5b61256e82612589565b6000806040838503121561297057600080fd5b50508035926020909101359150565b8015158114610a7057600080fd5b600080604083850312156129a057600080fd5b8235915060208301356129b28161297f565b809150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000828210156129fe576129fe6129bd565b500390565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612a3b57612a3b6129bd565b500290565b600060208284031215612a5257600080fd5b815161256e8161252c565b600067ffffffffffffffff808316818516808303821115612a8057612a806129bd565b01949350505050565b600060208284031215612a9b57600080fd5b815161256e8161297f565b600063ffffffff808316818516808303821115612a8057612a806129bd565b600063ffffffff80841680612b03577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b92169190910492915050565b600063ffffffff80831681851681830481118215151615612b3257612b326129bd565b0294935050505056fea164736f6c634300080f000a", + "nonce": "0xb3", + "chainId": "0x88bb0" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0xa1fca6a9e84770700bd5057e298017184563dd0bd2456493bd96556460f83ccf", + "transactionType": "CREATE", + "contractName": "DisputeGameFactory", + "contractAddress": "0xbee0c6dd082d7a483da4bd6e56c7e5292bda7ce8", + "function": null, + "arguments": null, + "transaction": { + "from": "0x8c1a617bdb47342f9c17ac8750e0b070c372c721", + "gas": "0x226a11", + "value": "0x0", + "input": "0x60a060405234801561001057600080fd5b50600160805261001e610023565b6100e3565b600054610100900460ff161561008f5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811610156100e1576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b608051611e14610105600039600081816102580152610cd00152611e146000f3fe60806040526004361061016a5760003560e01c80636593dc6e116100cb57806396cd97201161007f578063c4d66de811610059578063c4d66de81461047b578063dad544e01461049b578063f2fde38b146104b057600080fd5b806396cd9720146103e7578063b107095714610407578063bb8aa1fc1461042757600080fd5b806374cc86ac116100b057806374cc86ac1461039657806382ecf2f6146103b65780638da5cb5b146103c957600080fd5b80636593dc6e14610354578063715018a61461038157600080fd5b806338d38c97116101225780634d1975b4116101075780634d1975b41461029757806354fd4d50146102b65780635f0150cb1461030c57600080fd5b806338d38c97146102445780633e47158c1461028257600080fd5b80631b685b9e116101535780631b685b9e146101c15780631e334240146101f7578063254bd6831461021757600080fd5b80631011f3771461016f57806314f6b1a31461019f575b600080fd5b61018261017d36600461165f565b6104d0565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156101ab57600080fd5b506101bf6101ba3660046116fe565b610558565b005b3480156101cd57600080fd5b506101826101dc366004611735565b6065602052600090815260409020546001600160a01b031681565b34801561020357600080fd5b506101bf610212366004611750565b6105d5565b34801561022357600080fd5b5061023761023236600461177a565b610621565b6040516101969190611809565b34801561025057600080fd5b5060405160ff7f0000000000000000000000000000000000000000000000000000000000000000168152602001610196565b34801561028e57600080fd5b50610182610802565b3480156102a357600080fd5b506068545b604051908152602001610196565b3480156102c257600080fd5b506102ff6040518060400160405280600581526020017f312e352e3000000000000000000000000000000000000000000000000000000081525081565b60405161019691906118c6565b34801561031857600080fd5b5061032c6103273660046118d9565b6109e6565b604080516001600160a01b03909316835267ffffffffffffffff909116602083015201610196565b34801561036057600080fd5b506102a861036f366004611735565b60666020526000908152604090205481565b34801561038d57600080fd5b506101bf610a2c565b3480156103a257600080fd5b506102ff6103b1366004611735565b610a40565b6101826103c43660046118d9565b610ada565b3480156103d557600080fd5b506033546001600160a01b0316610182565b3480156103f357600080fd5b506102a86104023660046118d9565b610b53565b34801561041357600080fd5b506101bf610422366004611933565b610b8c565b34801561043357600080fd5b5061044761044236600461197e565b610c72565b6040805163ffffffff909416845267ffffffffffffffff90921660208401526001600160a01b031690820152606001610196565b34801561048757600080fd5b506101bf610496366004611997565b610cce565b3480156104a757600080fd5b50610182610e4b565b3480156104bc57600080fd5b506101bf6104cb366004611997565b610ebb565b60006104de87878787610f65565b9050806001600160a01b0316634224b1e73485856040518463ffffffff1660e01b815260040161050f9291906119df565b6000604051808303818588803b15801561052857600080fd5b505af115801561053c573d6000803e3d6000fd5b505050505061054e878787878561119a565b9695505050505050565b610560611240565b63ffffffff821660008181526065602052604080822080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b038616908117909155905190917fff513d80e2c7fa487608f70a618dfbc0cf415699dc69588c747e8c71566c88de91a35050565b6105dd611240565b63ffffffff8216600081815260666020526040808220849055518392917f74d6665c4b26d5596a5aa13d3014e0c06af4d322075a797f87b03cd4c5bc91ca91a35050565b60685460609083101580610633575081155b6107fb575060408051600583901b8101602001909152825b8381116107f957600060688281548110610667576106676119f3565b600091825260209091200154905060e081901c60a082901c67ffffffffffffffff166001600160a01b03831663ffffffff891683036107e857600186510186526000816001600160a01b031663609d33346040518163ffffffff1660e01b8152600401600060405180830381865afa1580156106e7573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261070f9190810190611a51565b90506000826001600160a01b031663bcef3b556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610751573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107759190611afe565b90506040518060a001604052808881526020018781526020018567ffffffffffffffff168152602001828152602001838152508860018a516107b79190611b46565b815181106107c7576107c76119f3565b6020026020010181905250888851106107e5575050505050506107f9565b50505b5050600019909201915061064b9050565b505b9392505050565b60008061082d7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b90506001600160a01b0381161561084357919050565b6040518060400160405280601a81526020017f4f564d5f4c3143726f7373446f6d61696e4d657373656e6765720000000000008152505160026108869190611b5d565b604080513060208201526000918101919091527f4f564d5f4c3143726f7373446f6d61696e4d657373656e67657200000000000091909117906108e1906060015b604051602081830303815290604052805190602001205490565b14610918576040517f54e433cd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805130602082015260019181019190915260009061093a906060016108c7565b90506001600160a01b038116156109b457806001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610989573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ad9190611b7c565b9250505090565b6040517f332144db00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008060006109f787878787610b53565b6000908152606760205260409020546001600160a01b0381169860a09190911c67ffffffffffffffff16975095505050505050565b610a34611240565b610a3e60006112b4565b565b60696020526000908152604090208054610a5990611b99565b80601f0160208091040260200160405190810160405280929190818152602001828054610a8590611b99565b8015610ad25780601f10610aa757610100808354040283529160200191610ad2565b820191906000526020600020905b815481529060010190602001808311610ab557829003601f168201915b505050505081565b6000610ae885858585610f65565b9050806001600160a01b0316638129fc1c346040518263ffffffff1660e01b81526004016000604051808303818588803b158015610b2557600080fd5b505af1158015610b39573d6000803e3d6000fd5b5050505050610b4b858585858561119a565b949350505050565b600084848484604051602001610b6c9493929190611bec565b604051602081830303815290604052805190602001209050949350505050565b610b94611240565b63ffffffff8416600090815260656020908152604080832080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03881617905560699091529020610bef828483611c61565b5060405163ffffffff8516906001600160a01b038516907fff513d80e2c7fa487608f70a618dfbc0cf415699dc69588c747e8c71566c88de90600090a38363ffffffff167fa47fcdf075d680d3817bfca7973b373e1a5f6cfc3b444748299cc2b83d8348f98383604051610c649291906119df565b60405180910390a250505050565b600080600080600080610cbe60688881548110610c9157610c916119f3565b906000526020600020015460e081901c9160a082901c67ffffffffffffffff16916001600160a01b031690565b9199909850909650945050505050565b7f0000000000000000000000000000000000000000000000000000000000000000600054610100900460ff16158015610d0e575060005460ff8083169116105b610d9f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084015b60405180910390fd5b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001660ff831617610100179055610dd861131e565b610de0611385565b610de9826112b4565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b6000610e55610802565b6001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e92573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eb69190611b7c565b905090565b610ec3611240565b6001600160a01b038116610f59576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610d96565b610f62816112b4565b50565b63ffffffff84166000908152606560205260408120546001600160a01b031680610fc3576040517f031c6de400000000000000000000000000000000000000000000000000000000815263ffffffff87166004820152602401610d96565b63ffffffff86166000908152606660205260409020543414611011576040517f8620aa1900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061101f87878787610b53565b6000818152606760205260409020549091501561106b576040517f014f6fe500000000000000000000000000000000000000000000000000000000815260048101829052602401610d96565b6000611078600143611b46565b63ffffffff89166000908152606960205260408120805492409350909161109e90611b99565b80601f01602080910402602001604051908101604052809291908181526020018280546110ca90611b99565b80156111175780601f106110ec57610100808354040283529160200191611117565b820191906000526020600020905b8154815290600101906020018083116110fa57829003601f168201915b50505050509050805160000361116b576111643389848a8a604051602001611143959493929190611d22565b60408051601f198184030181529190526001600160a01b0386169085611424565b945061118e565b61118b3389848c8b8b876040516020016111439796959493929190611d6f565b94505b50505050949350505050565b60006111a886868686610b53565b60008181526067602052604080822060e08a901b4260a01b17861790819055606880546001810182559084527fa2153420d844928b4421650203c77babc8b33d7f2e7b450e2966db0c2209775301819055905192935091879163ffffffff8a16916001600160a01b038716917f5b565efe82411da98814f356d0e7bcb8f0219b8d970307c5afb4a6903a8b2e3591a450505050505050565b6033546001600160a01b03163314610a3e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610d96565b603380546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b33611327610802565b6001600160a01b03161415801561134e575033611342610e4b565b6001600160a01b031614155b15610a3e576040517fc4050a2600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600054610100900460ff1661141c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610d96565b610a3e611433565b6000610b4b60008585856114d3565b600054610100900460ff166114ca576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610d96565b610a3e336112b4565b600060608303516040840351602085035185518060208801018051600283016c5af43d3d93803e606057fd5bf38a528a600d8b035278593da1005b363d3d373d3d3d3d610000806062363936013d738160481b1760218b03527f9e4ac34f21c619cefc926c8bd93b54bf5a39c7ab2127a895af1cc0691d7e3dff603a8b035272fd6100003d81600a3d39f336602c57343d527f6062820160781b1761ff9e82106059018b03528060f01b835288606c8201604c8c038ef5975050866115a05763301164256000526004601cfd5b90528652601f198601527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08501527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0909301929092525092915050565b803563ffffffff8116811461161157600080fd5b919050565b60008083601f84011261162857600080fd5b50813567ffffffffffffffff81111561164057600080fd5b60208301915083602082850101111561165857600080fd5b9250929050565b6000806000806000806080878903121561167857600080fd5b611681876115fd565b955060208701359450604087013567ffffffffffffffff808211156116a557600080fd5b6116b18a838b01611616565b909650945060608901359150808211156116ca57600080fd5b506116d789828a01611616565b979a9699509497509295939492505050565b6001600160a01b0381168114610f6257600080fd5b6000806040838503121561171157600080fd5b61171a836115fd565b9150602083013561172a816116e9565b809150509250929050565b60006020828403121561174757600080fd5b6107fb826115fd565b6000806040838503121561176357600080fd5b61176c836115fd565b946020939093013593505050565b60008060006060848603121561178f57600080fd5b611798846115fd565b95602085013595506040909401359392505050565b60005b838110156117c85781810151838201526020016117b0565b838111156117d7576000848401525b50505050565b600081518084526117f58160208601602086016117ad565b601f01601f19169290920160200192915050565b60006020808301818452808551808352604092508286019150828160051b87010184880160005b838110156118b8578883037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc001855281518051845287810151888501528681015167ffffffffffffffff16878501526060808201519085015260809081015160a0918501829052906118a4818601836117dd565b968901969450505090860190600101611830565b509098975050505050505050565b6020815260006107fb60208301846117dd565b600080600080606085870312156118ef57600080fd5b6118f8856115fd565b935060208501359250604085013567ffffffffffffffff81111561191b57600080fd5b61192787828801611616565b95989497509550505050565b6000806000806060858703121561194957600080fd5b611952856115fd565b93506020850135611962816116e9565b9250604085013567ffffffffffffffff81111561191b57600080fd5b60006020828403121561199057600080fd5b5035919050565b6000602082840312156119a957600080fd5b81356107fb816116e9565b818352818160208501375060006020828401015260006020601f19601f840116840101905092915050565b602081526000610b4b6020830184866119b4565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600060208284031215611a6357600080fd5b815167ffffffffffffffff80821115611a7b57600080fd5b818401915084601f830112611a8f57600080fd5b815181811115611aa157611aa1611a22565b604051601f8201601f19908116603f01168101908382118183101715611ac957611ac9611a22565b81604052828152876020848701011115611ae257600080fd5b611af38360208301602088016117ad565b979650505050505050565b600060208284031215611b1057600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600082821015611b5857611b58611b17565b500390565b6000816000190483118215151615611b7757611b77611b17565b500290565b600060208284031215611b8e57600080fd5b81516107fb816116e9565b600181811c90821680611bad57607f821691505b602082108103611be6577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b63ffffffff8516815283602082015260606040820152600061054e6060830184866119b4565b601f821115611c5c57600081815260208120601f850160051c81016020861015611c395750805b601f850160051c820191505b81811015611c5857828155600101611c45565b5050505b505050565b67ffffffffffffffff831115611c7957611c79611a22565b611c8d83611c878354611b99565b83611c12565b6000601f841160018114611cc15760008515611ca95750838201355b600019600387901b1c1916600186901b178355611d1b565b600083815260209020601f19861690835b82811015611cf25786850135825560209485019460019092019101611cd2565b5086821015611d0f5760001960f88860031b161c19848701351681555b505060018560011b0183555b5050505050565b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008660601b1681528460148201528360348201528183605483013760009101605401908152949350505050565b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008860601b1681528660148201528560348201527fffffffff000000000000000000000000000000000000000000000000000000008560e01b16605482015282846058830137600083820160588101600081528451611df28183602089016117ad565b919091016058019a995050505050505050505056fea164736f6c634300080f000a", + "nonce": "0xb4", + "chainId": "0x88bb0" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0xf32775a863c6228e847e0e6c3d070b5b4cc9067391b0ee9f825c7edae8d0ff8a", + "transactionType": "CREATE", + "contractName": "Proxy", + "contractAddress": "0x30e172aac675c9fe5a64792f92c9fd4d3e7ca9da", + "function": null, + "arguments": [ + "0xF2D2C097be80Fb87844b7E259Ef67efB98b26F87" + ], + "transaction": { + "from": "0x8c1a617bdb47342f9c17ac8750e0b070c372c721", + "gas": "0xa6968", + "value": "0x0", + "input": "0x608060405234801561001057600080fd5b5060405161091f38038061091f83398101604081905261002f916100b5565b6100388161003e565b506100e5565b60006100566000805160206108ff8339815191525490565b6000805160206108ff833981519152838155604080516001600160a01b0380851682528616602082015292935090917f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f910160405180910390a1505050565b6000602082840312156100c757600080fd5b81516001600160a01b03811681146100de57600080fd5b9392505050565b61080b806100f46000396000f3fe60806040526004361061005e5760003560e01c80635c60da1b116100435780635c60da1b146100be5780638f283970146100f8578063f851a440146101185761006d565b80633659cfe6146100755780634f1ef286146100955761006d565b3661006d5761006b61012d565b005b61006b61012d565b34801561008157600080fd5b5061006b6100903660046106dd565b610224565b6100a86100a33660046106f8565b610296565b6040516100b5919061077b565b60405180910390f35b3480156100ca57600080fd5b506100d3610419565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100b5565b34801561010457600080fd5b5061006b6101133660046106dd565b6104b0565b34801561012457600080fd5b506100d3610517565b60006101577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b905073ffffffffffffffffffffffffffffffffffffffff8116610201576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f50726f78793a20696d706c656d656e746174696f6e206e6f7420696e6974696160448201527f6c697a656400000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b3660008037600080366000845af43d6000803e8061021e573d6000fd5b503d6000f35b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061027d575033155b1561028e5761028b816105a3565b50565b61028b61012d565b60606102c07fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806102f7575033155b1561040a57610305846105a3565b6000808573ffffffffffffffffffffffffffffffffffffffff16858560405161032f9291906107ee565b600060405180830381855af49150503d806000811461036a576040519150601f19603f3d011682016040523d82523d6000602084013e61036f565b606091505b509150915081610401576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603960248201527f50726f78793a2064656c656761746563616c6c20746f206e657720696d706c6560448201527f6d656e746174696f6e20636f6e7472616374206661696c65640000000000000060648201526084016101f8565b91506104129050565b61041261012d565b9392505050565b60006104437fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061047a575033155b156104a557507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6104ad61012d565b90565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610509575033155b1561028e5761028b8161060c565b60006105417fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610578575033155b156104a557507fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc81815560405173ffffffffffffffffffffffffffffffffffffffff8316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a25050565b60006106367fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61038381556040805173ffffffffffffffffffffffffffffffffffffffff80851682528616602082015292935090917f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f910160405180910390a1505050565b803573ffffffffffffffffffffffffffffffffffffffff811681146106d857600080fd5b919050565b6000602082840312156106ef57600080fd5b610412826106b4565b60008060006040848603121561070d57600080fd5b610716846106b4565b9250602084013567ffffffffffffffff8082111561073357600080fd5b818601915086601f83011261074757600080fd5b81358181111561075657600080fd5b87602082850101111561076857600080fd5b6020830194508093505050509250925092565b600060208083528351808285015260005b818110156107a85785810183015185820160400152820161078c565b818111156107ba576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b818382376000910190815291905056fea164736f6c634300080f000ab53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103000000000000000000000000f2d2c097be80fb87844b7e259ef67efb98b26f87", + "nonce": "0xb5", + "chainId": "0x88bb0" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0x9f91ac", + "logs": [ + { + "address": "0xb4ac39aadc3130fef3f348ece8d033540df12089", + "topics": [ + "0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000000000ff", + "blockHash": "0x5efe54ee4caa20117d27b95517f609d523efbd65094105559fdf8d4d751795fc", + "blockNumber": "0x375ddd", + "blockTimestamp": "0x6aa92fd4", + "transactionHash": "0xfdd99b31e9c74b3a795cdb33f78775ecdeeba4708f5fba20b1124f9504a56de2", + "transactionIndex": "0x1b", + "logIndex": "0xdd", + "removed": false + } + ], + "logsBloom": "0x00000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000080000000000000000000000000000000000000000000000400000000000000000000000000000000000100000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0xfdd99b31e9c74b3a795cdb33f78775ecdeeba4708f5fba20b1124f9504a56de2", + "transactionIndex": "0x1b", + "blockHash": "0x5efe54ee4caa20117d27b95517f609d523efbd65094105559fdf8d4d751795fc", + "blockNumber": "0x375ddd", + "gasUsed": "0x4095a3", + "effectiveGasPrice": "0x412902f0", + "from": "0x8c1a617bdb47342f9c17ac8750e0b070c372c721", + "to": null, + "contractAddress": "0xb4ac39aadc3130fef3f348ece8d033540df12089" + }, + { + "status": "0x1", + "cumulativeGasUsed": "0xc57f00", + "logs": [ + { + "address": "0x210303565cbf0b8c0d2837523816f815f02ad5eb", + "topics": [ + "0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000000000ff", + "blockHash": "0x5efe54ee4caa20117d27b95517f609d523efbd65094105559fdf8d4d751795fc", + "blockNumber": "0x375ddd", + "blockTimestamp": "0x6aa92fd4", + "transactionHash": "0xe38abd2d3a322fca54cfd48c79b950861d77218ce460cde4cc912bf820f15ea5", + "transactionIndex": "0x1c", + "logIndex": "0xde", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000800000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000", + "type": "0x2", + "transactionHash": "0xe38abd2d3a322fca54cfd48c79b950861d77218ce460cde4cc912bf820f15ea5", + "transactionIndex": "0x1c", + "blockHash": "0x5efe54ee4caa20117d27b95517f609d523efbd65094105559fdf8d4d751795fc", + "blockNumber": "0x375ddd", + "gasUsed": "0x25ed54", + "effectiveGasPrice": "0x412902f0", + "from": "0x8c1a617bdb47342f9c17ac8750e0b070c372c721", + "to": null, + "contractAddress": "0x210303565cbf0b8c0d2837523816f815f02ad5eb" + }, + { + "status": "0x1", + "cumulativeGasUsed": "0xdff7fa", + "logs": [ + { + "address": "0xbee0c6dd082d7a483da4bd6e56c7e5292bda7ce8", + "topics": [ + "0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000000000ff", + "blockHash": "0x5efe54ee4caa20117d27b95517f609d523efbd65094105559fdf8d4d751795fc", + "blockNumber": "0x375ddd", + "blockTimestamp": "0x6aa92fd4", + "transactionHash": "0xa1fca6a9e84770700bd5057e298017184563dd0bd2456493bd96556460f83ccf", + "transactionIndex": "0x1d", + "logIndex": "0xdf", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000", + "type": "0x2", + "transactionHash": "0xa1fca6a9e84770700bd5057e298017184563dd0bd2456493bd96556460f83ccf", + "transactionIndex": "0x1d", + "blockHash": "0x5efe54ee4caa20117d27b95517f609d523efbd65094105559fdf8d4d751795fc", + "blockNumber": "0x375ddd", + "gasUsed": "0x1a78fa", + "effectiveGasPrice": "0x412902f0", + "from": "0x8c1a617bdb47342f9c17ac8750e0b070c372c721", + "to": null, + "contractAddress": "0xbee0c6dd082d7a483da4bd6e56c7e5292bda7ce8" + }, + { + "status": "0x1", + "cumulativeGasUsed": "0xe7fa4a", + "logs": [ + { + "address": "0x30e172aac675c9fe5a64792f92c9fd4d3e7ca9da", + "topics": [ + "0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f2d2c097be80fb87844b7e259ef67efb98b26f87", + "blockHash": "0x5efe54ee4caa20117d27b95517f609d523efbd65094105559fdf8d4d751795fc", + "blockNumber": "0x375ddd", + "blockTimestamp": "0x6aa92fd4", + "transactionHash": "0xf32775a863c6228e847e0e6c3d070b5b4cc9067391b0ee9f825c7edae8d0ff8a", + "transactionIndex": "0x1e", + "logIndex": "0xe0", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000002000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000400000000000000000000000000000100000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0xf32775a863c6228e847e0e6c3d070b5b4cc9067391b0ee9f825c7edae8d0ff8a", + "transactionIndex": "0x1e", + "blockHash": "0x5efe54ee4caa20117d27b95517f609d523efbd65094105559fdf8d4d751795fc", + "blockNumber": "0x375ddd", + "gasUsed": "0x80250", + "effectiveGasPrice": "0x412902f0", + "from": "0x8c1a617bdb47342f9c17ac8750e0b070c372c721", + "to": null, + "contractAddress": "0x30e172aac675c9fe5a64792f92c9fd4d3e7ca9da" + } + ], + "libraries": [], + "pending": [], + "returns": {}, + "timestamp": 1789472725854, + "chain": 560048, + "commit": "3685850" +} \ No newline at end of file diff --git a/active/evm/tasks/2026-09-14-cobalt-upgrade/records/DeployCobaltProofImpls.s.sol/560048/run-1789472750703.json b/active/evm/tasks/2026-09-14-cobalt-upgrade/records/DeployCobaltProofImpls.s.sol/560048/run-1789472750703.json new file mode 100644 index 00000000..36ed1bd3 --- /dev/null +++ b/active/evm/tasks/2026-09-14-cobalt-upgrade/records/DeployCobaltProofImpls.s.sol/560048/run-1789472750703.json @@ -0,0 +1,108 @@ +{ + "transactions": [ + { + "hash": "0x0bd7e6005a11f556741d5626de3034ee7ef73b87b074f988777fc46f56769b4b", + "transactionType": "CREATE", + "contractName": "ProtocolVersions", + "contractAddress": "0x30adfdab722d36b26f12f562d7cadf4cd8831c58", + "function": null, + "arguments": null, + "transaction": { + "from": "0x8c1a617bdb47342f9c17ac8750e0b070c372c721", + "gas": "0x201046", + "value": "0x0", + "input": "0x60a060405234801561001057600080fd5b50600160805261001e610023565b6100e3565b600054610100900460ff161561008f5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811610156100e1576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b608051611bf6610105600039600081816101ba01526109ce0152611bf66000f3fe608060405234801561001057600080fd5b50600436106101365760003560e01c8063723d0096116100b2578063a2e62b5a11610081578063bcebe34b11610066578063bcebe34b1461013b578063dad544e0146102da578063f1149db8146102e257600080fd5b8063a2e62b5a146102a7578063a9679058146102ba57600080fd5b8063723d00961461025957806384dfa8931461026e57806387f6a390146102815780639259fa6b1461029457600080fd5b806337a329b0116101095780633e47158c116100ee5780633e47158c146101e457806354fd4d50146102115780635c4d37d21461025057600080fd5b806337a329b0146101a057806338d38c97146101b357600080fd5b80630c014f101461013b5780631589cfab1461016257806326fadbe21461018357806328c802cd14610198575b600080fd5b610144610e1081565b60405167ffffffffffffffff90911681526020015b60405180910390f35b610175610170366004611851565b6102f5565b604051908152602001610159565b61018b6104d4565b604051610159919061187b565b610175610560565b6101756101ae3660046118c9565b6105cd565b60405160ff7f0000000000000000000000000000000000000000000000000000000000000000168152602001610159565b6101ec610607565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610159565b604080518082018252600581527f312e302e300000000000000000000000000000000000000000000000000000006020820152905161015991906118e2565b61017560035481565b61026c6102673660046118c9565b610812565b005b61026c61027c366004611955565b610879565b61026c61028f3660046119a3565b6109cc565b61026c6102a2366004611955565b610df1565b6101756102b5366004611a31565b610fb4565b6004546101ec9073ffffffffffffffffffffffffffffffffffffffff1681565b6101ec6110bb565b61026c6102f0366004611a4c565b611138565b60006102ff6111ce565b60025460000361033b576040517f02600eca00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60015467ffffffffffffffff841615801590610375575061035e610e1042611a98565b67ffffffffffffffff168467ffffffffffffffff16105b156103bd576040517f32bb9c6f00000000000000000000000000000000000000000000000000000000815267ffffffffffffffff851660048201526024015b60405180910390fd5b6103c78185611226565b6001805480820182557fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf66004820401805460039092166008026101000a67ffffffffffffffff02199091169055600280549091018155600090815260405182917fc8d4579ff78c4e70e6ae3acbb4858a04ea798b4e8efff9ff7a8c8775d7b2c85891a28367ffffffffffffffff1660000361046a5761046581611320565b610474565b6104748185611433565b82156104cd576fffffffffffffffffffffffffffffffff8311156104c4576040517f43fab7ae00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6104cd836114d7565b9392505050565b6060600180548060200260200160405190810160405280929190818152602001828054801561055657602002820191906000526020600020906000905b82829054906101000a900467ffffffffffffffff1667ffffffffffffffff16815260200190600801906020826007010492830192600103820291508084116105115790505b5050505050905090565b60025460009080820361059f576040517f02600eca00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60026105ac600183611ac4565b815481106105bc576105bc611adb565b906000526020600020015491505090565b60006105d88261150a565b60026105e5836001611b0a565b815481106105f5576105f5611adb565b90600052602060002001549050919050565b6000806106327fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b905073ffffffffffffffffffffffffffffffffffffffff81161561065557919050565b6040518060400160405280601a81526020017f4f564d5f4c3143726f7373446f6d61696e4d657373656e6765720000000000008152505160026106989190611b22565b604080513060208201526000918101919091527f4f564d5f4c3143726f7373446f6d61696e4d657373656e67657200000000000091909117906106f3906060015b604051602081830303815290604052805190602001205490565b1461072a576040517f54e433cd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805130602082015260019181019190915260009061074c906060016106d9565b905073ffffffffffffffffffffffffffffffffffffffff8116156107e0578073ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107d99190611b5f565b9250505090565b6040517f332144db00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61081a6111ce565b80158061083657506fffffffffffffffffffffffffffffffff81115b1561086d576040517f43fab7ae00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610876816114d7565b50565b6108816111ce565b61088a8261150a565b60006001838154811061089f5761089f611adb565b6000918252602090912060048204015460039091166008026101000a900467ffffffffffffffff9081169150821681036108d857505050565b67ffffffffffffffff8116156108f2576108f28382611548565b67ffffffffffffffff8216158015906109295750610912610e1042611a98565b67ffffffffffffffff168267ffffffffffffffff16105b1561096c576040517f32bb9c6f00000000000000000000000000000000000000000000000000000000815267ffffffffffffffff831660048201526024016103b4565b67ffffffffffffffff8216158061098b575067ffffffffffffffff8116155b156109995761099983611613565b67ffffffffffffffff8216156109bd576109b38383611226565b6109bd83836116bb565b6109c78383611433565b505050565b7f0000000000000000000000000000000000000000000000000000000000000000600054610100900460ff16158015610a0c575060005460ff8083169116105b610a98576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016103b4565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001660ff831617610100179055610ad16117b3565b811580610aed57506fffffffffffffffffffffffffffffffff82115b15610b24576040517f43fab7ae00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002805460018101825560009182527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace018190555b83811015610d0a576000858583818110610b7557610b75611adb565b9050602002016020810190610b8a9190611a31565b90504267ffffffffffffffff168167ffffffffffffffff16118015610bcd5750610bb6610e1042611a98565b67ffffffffffffffff168167ffffffffffffffff16105b15610c10576040517f32bb9c6f00000000000000000000000000000000000000000000000000000000815267ffffffffffffffff821660048201526024016103b4565b610c1a8282611226565b6001805480820182557fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf66004820401805460039092166008026101000a67ffffffffffffffff8181021990931692851602919091179055600280549091018155600090815260405183917fc8d4579ff78c4e70e6ae3acbb4858a04ea798b4e8efff9ff7a8c8775d7b2c85891a267ffffffffffffffff811615610cf75760405167ffffffffffffffff8216815282907f48496c9e95bc0f6dd82bee879408724c3b1a356b8a6d9c3fbffe270b247207919060200160405180910390a25b5080610d0281611b7c565b915050610b59565b50610d156000611320565b610d1e826114d7565b600480547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff87169081179091556040516000907fb1c6dde58c72ae176c3481e130f3af63d9d7f9edc52f9c07ab80840f85f442ea908290a3600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050565b60045473ffffffffffffffffffffffffffffffffffffffff163314610e42576040517f13e7d9b400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610e4b8261150a565b600060018381548110610e6057610e60611adb565b60009182526020822060048204015460039091166008026101000a900467ffffffffffffffff169150819003610ec5576040517f52f383b6000000000000000000000000000000000000000000000000000000008152600481018490526024016103b4565b610ecf8382611548565b8067ffffffffffffffff168267ffffffffffffffff1611610f30576040517f64fc743100000000000000000000000000000000000000000000000000000000815267ffffffffffffffff8083166004830152831660248201526044016103b4565b6000610f3e610e1042611a98565b90508067ffffffffffffffff168367ffffffffffffffff161015610f9a576040517f32bb9c6f00000000000000000000000000000000000000000000000000000000815267ffffffffffffffff841660048201526024016103b4565b610fa484846116bb565b610fae8484611433565b50505050565b6002546000908103610ff2576040517f02600eca00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001545b80156110a6576000600161100a8184611ac4565b8154811061101a5761101a611adb565b6000918252602090912060048204015460039091166008026101000a900467ffffffffffffffff169050801580159061106757508367ffffffffffffffff168167ffffffffffffffff1611155b15611093576002828154811061107f5761107f611adb565b906000526020600020015492505050919050565b508061109e81611bb4565b915050610ff6565b5060026000815481106105f5576105f5611adb565b60006110c5610607565b73ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561110f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111339190611b5f565b905090565b6111406111ce565b60045460405173ffffffffffffffffffffffffffffffffffffffff8084169216907fb1c6dde58c72ae176c3481e130f3af63d9d7f9edc52f9c07ab80840f85f442ea90600090a3600480547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b336111d76110bb565b73ffffffffffffffffffffffffffffffffffffffff1614611224576040517f7f12c64b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b8067ffffffffffffffff1660000361123c575050565b815b80156109c757600060016112528184611ac4565b8154811061126257611262611adb565b6000918252602090912060048204015460039091166008026101000a900467ffffffffffffffff169050801561130d578067ffffffffffffffff168367ffffffffffffffff161015610fae57836112ba600184611ac4565b6040517fcb986e280000000000000000000000000000000000000000000000000000000081526004810192909252602482015267ffffffffffffffff8083166044830152841660648201526084016103b4565b508061131881611bb4565b91505061123e565b60015460028054600091908490811061133b5761133b611adb565b6000918252602090912001549050825b828110156114025781816001838154811061136857611368611adb565b600091825260209182902060048204015460408051938401959095529382019290925260039091166008026101000a90910467ffffffffffffffff1660608201526080016040516020818303038152906040528051906020012091508160028260016113d49190611b0a565b815481106113e4576113e4611adb565b600091825260209091200155806113fa81611b7c565b91505061134b565b5060405181907f3ce196af7f202b9a61978967a766a54245d6588745bc8f76226360f5a87085ea90600090a2505050565b806001838154811061144757611447611adb565b90600052602060002090600491828204019190066008026101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550817f48496c9e95bc0f6dd82bee879408724c3b1a356b8a6d9c3fbffe270b24720791826040516114c2919067ffffffffffffffff91909116815260200190565b60405180910390a26114d382611320565b5050565b600381905560405181907fafb29e5c7f4fc4818c2ffe01313f20873fbb8d3ecb8c231226be562b9a11e57f90600090a250565b6001548110610876576040517fded31283000000000000000000000000000000000000000000000000000000008152600481018290526024016103b4565b8067ffffffffffffffff164267ffffffffffffffff16106115a8576040517f9f927e2c0000000000000000000000000000000000000000000000000000000081526004810183905267ffffffffffffffff821660248201526044016103b4565b67ffffffffffffffff81166115bf610e1042611a98565b67ffffffffffffffff16106114d3576040517fb18153c80000000000000000000000000000000000000000000000000000000081526004810183905267ffffffffffffffff821660248201526044016103b4565b6000611620826001611b0a565b90505b6001548110156114d3576001818154811061164057611640611adb565b6000918252602090912060048204015460039091166008026101000a900467ffffffffffffffff16156116a9576040517f212e820300000000000000000000000000000000000000000000000000000000815260048101839052602481018290526044016103b4565b806116b381611b7c565b915050611623565b8067ffffffffffffffff166000036116d1575050565b60006116de836001611b0a565b90505b6001548110156109c75760006001828154811061170057611700611adb565b6000918252602090912060048204015460039091166008026101000a900467ffffffffffffffff16905080156117a0578067ffffffffffffffff168367ffffffffffffffff161115610fae576040517f76b91f41000000000000000000000000000000000000000000000000000000008152600481018590526024810183905267ffffffffffffffff8085166044830152821660648201526084016103b4565b50806117ab81611b7c565b9150506116e1565b336117bc610607565b73ffffffffffffffffffffffffffffffffffffffff16141580156117fd5750336117e46110bb565b73ffffffffffffffffffffffffffffffffffffffff1614155b15611224576040517fc4050a2600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b803567ffffffffffffffff8116811461184c57600080fd5b919050565b6000806040838503121561186457600080fd5b61186d83611834565b946020939093013593505050565b6020808252825182820181905260009190848201906040850190845b818110156118bd57835167ffffffffffffffff1683529284019291840191600101611897565b50909695505050505050565b6000602082840312156118db57600080fd5b5035919050565b600060208083528351808285015260005b8181101561190f578581018301518582016040015282016118f3565b81811115611921576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b6000806040838503121561196857600080fd5b8235915061197860208401611834565b90509250929050565b73ffffffffffffffffffffffffffffffffffffffff8116811461087657600080fd5b600080600080606085870312156119b957600080fd5b84356119c481611981565b9350602085013567ffffffffffffffff808211156119e157600080fd5b818701915087601f8301126119f557600080fd5b813581811115611a0457600080fd5b8860208260051b8501011115611a1957600080fd5b95986020929092019750949560400135945092505050565b600060208284031215611a4357600080fd5b6104cd82611834565b600060208284031215611a5e57600080fd5b81356104cd81611981565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600067ffffffffffffffff808316818516808303821115611abb57611abb611a69565b01949350505050565b600082821015611ad657611ad6611a69565b500390565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008219821115611b1d57611b1d611a69565b500190565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615611b5a57611b5a611a69565b500290565b600060208284031215611b7157600080fd5b81516104cd81611981565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611bad57611bad611a69565b5060010190565b600081611bc357611bc3611a69565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff019056fea164736f6c634300080f000a", + "nonce": "0xb6", + "chainId": "0x88bb0" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x28e7e9d1df559939ea55a4c814edb7c7a959ff938d931f6c08025d685ca03c6f", + "transactionType": "CREATE", + "contractName": "AggregateVerifier", + "contractAddress": "0x2504b1c3b78b2711e24eadf7ea077b0ca1b91859", + "function": null, + "arguments": [ + "621", + "0xbFB20170B82C474b136bc5a062aca47A3Cb8cF68", + "0x5af90fdE02b46e202F6232b3eDE25b3F602AC673", + "0x42FA446d95A5B61A7bE02949042954a60315Fb0f", + "0x5B997cD8fAFA026882AEc7D0558c9cc47221F84e", + "0xe8dc2300cf325b2527cbfa5e664a70acc40a9f2fc0617bd35cdfa61652a5fc30", + "(0x7713943c2c2412314b135c5606cdb3923a54f7555d91d9f31c2f64e34e16f2f4, 0x002663a1072dc1e1938e13d3b269fff88e843eb4ef76d6c6953dde4f5152973b)", + "0xd14ddabfc0ad1dd737d6e5917cf271fd479bd539c9b3d85a602589c679a9983a", + "763360", + "600", + "30", + "(0x30e172aaC675c9fe5A64792F92C9fD4d3E7cA9Da, 0, 1782348588, 2)" + ], + "transaction": { + "from": "0x8c1a617bdb47342f9c17ac8750e0b070c372c721", + "gas": "0x529563", + "value": "0x0", + "input": "0x6102c06040523480156200001257600080fd5b506040516200514238038062005142833981016040819052620000359162000333565b82158062000041575081155b806200005757506200005482846200041e565b15155b15620000845760405163462b853960e11b8152600481018490526024810183905260440160405180910390fd5b80606001516001600160401b0316600003620000b357604051637ccf8b6960e01b815260040160405180910390fd5b63ffffffff8c16610280526001600160a01b038b1660808190526040805163f2b4e61760e01b8152905163f2b4e617916004808201926020929091908290030181865afa15801562000109573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200012f919062000435565b6001600160a01b0390811660a0528a811660c05289811660e05288811661012052610100889052865161014052602087810151610160526101808790526101a08690528201516101c05260408201516001600160401b039081166101e052606083015116610200526102208490526102408390528151166102a052620001b4620001e5565b620001c190602062000472565b620001ce90608e62000494565b6102605250620004c69a5050505050505050505050565b60006102405161022051620001fb9190620004af565b905090565b6001600160a01b03811681146200021657600080fd5b50565b8051620002268162000200565b919050565b6000604082840312156200023e57600080fd5b604080519081016001600160401b03811182821017156200026f57634e487b7160e01b600052604160045260246000fd5b604052825181526020928301519281019290925250919050565b80516001600160401b03811681146200022657600080fd5b600060808284031215620002b457600080fd5b604051608081016001600160401b0381118282101715620002e557634e487b7160e01b600052604160045260246000fd5b80604052508091508251620002fa8162000200565b815260208381015190820152620003146040840162000289565b6040820152620003276060840162000289565b60608201525092915050565b6000806000806000806000806000806000806102008d8f0312156200035757600080fd5b8c5163ffffffff811681146200036c57600080fd5b9b506200037c60208e0162000219565b9a506200038c60408e0162000219565b99506200039c60608e0162000219565b9850620003ac60808e0162000219565b975060a08d01519650620003c48e60c08f016200022b565b95506101008d015194506101208d015193506101408d015192506101608d01519150620003f68e6101808f01620002a1565b90509295989b509295989b509295989b565b634e487b7160e01b600052601260045260246000fd5b60008262000430576200043062000408565b500690565b6000602082840312156200044857600080fd5b8151620004558162000200565b9392505050565b634e487b7160e01b600052601160045260246000fd5b60008160001904831182151516156200048f576200048f6200045c565b500290565b60008219821115620004aa57620004aa6200045c565b500190565b600082620004c157620004c162000408565b500490565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516101c0516101e05161020051610220516102405161026051610280516102a051614a74620006ce60003960008181610b280152611d52015260008181610b9601528181611e340152612f2e015260006116060152600081816108800152818161255601528181613ca20152613cdd01526000818161065a015281816119a701528181611a0801526125770152600081816103a101528181611bbe0152611c720152600081816109d801528181611be20152611c9e015260008181610d1601528181611b0b01528181611b600152611b9301526000610970015260008181610cc201528181613e4d015261402b015260008181610a0c015261412b0152600081816109a4015261404c015260008181610abc0152818161285f0152818161335f01526140fa01526000818161045701528181613e6e0152613f72015260008181610507015281816128fd015281816132700152613f43015260008181610c3601528181610f2b0152818161106001526121440152600061093c0152600081816107de015281816117380152818161190501528181611e5c015281816122a8015281816123f9015281816124e001528181612fa701528181613078015281816131300152818161344901528181613502015281816135b901526136720152614a746000f3fe60806040526004361061038a5760003560e01c80636dc86e81116101dc578063addecc0611610102578063c26783e9116100a0578063d28cb06f1161006f578063d28cb06f14610cb0578063e41f96ad14610ce4578063f629dbb514610d04578063fa24f74314610d3857600080fd5b8063c26783e914610c24578063cf09e0d014610c58578063cfcf984b14610c79578063d1ee5e4b14610c9957600080fd5b8063b97cb80f116100dc578063b97cb80f14610b5f578063bbdc02db14610b7f578063bcef3b5514610bc0578063bdb337d114610c0057600080fd5b8063addecc0614610ade578063aef2f96e14610b16578063b74df35a14610b4a57600080fd5b80638417d3c21161017a5780639730163d116101495780639730163d14610a2e5780639840fd8414610a4457806399735e3214610a6a5780639ded395214610aaa57600080fd5b80638417d3c21461095e57806387d34f1614610992578063895dbafe146109c6578063908cb80e146109fa57600080fd5b8063786b844b116101b6578063786b844b146108cc5780637a6bc9e1146108e157806380f323a71461091457806382ff53a11461092a57600080fd5b80636dc86e811461086e57806370872aa5146108a257806374f8bf32146108b757600080fd5b806328c802cd116102c157806349edf35a1161025f5780635c0cba331161022e5780635c0cba33146107cf578063609d3334146108025780636361506d1461081757806364d121361461085757600080fd5b806349edf35a146107235780634e95eb581461074357806354fd4d501461075957806357da950e1461079f57600080fd5b806337b1b2291161029b57806337b1b2291461067c5780633fada3fd146106bc5780634224b1e7146106ee578063423161821461070157600080fd5b806328c802cd1461061c578063324a13c91461063257806335c4377b1461064857600080fd5b80631f8375741161032e578063250e69bd11610308578063250e69bd1461059157806325fc2ace146105d15780632810e1d6146105e65780632845e5bb146105fb57600080fd5b80631f837574146104f5578063200d2ed21461052957806323edb2e01461056457600080fd5b806310fbee281161036a57806310fbee28146104875780631333db2e1461049c57806319effeb4146104b35780631ee5d7c8146104e057600080fd5b80622134cc1461038f578062821de3146103e15780630183fd4414610445575b600080fd5b34801561039b57600080fd5b506103c37f000000000000000000000000000000000000000000000000000000000000000081565b60405167ffffffffffffffff90911681526020015b60405180910390f35b3480156103ed57600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036074013560601c5b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016103d8565b34801561045157600080fd5b506104797f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020016103d8565b34801561049357600080fd5b50610479600181565b3480156104a857600080fd5b506104b1610d61565b005b3480156104bf57600080fd5b506000546103c39068010000000000000000900467ffffffffffffffff1681565b3480156104ec57600080fd5b506104206111bf565b34801561050157600080fd5b506104207f000000000000000000000000000000000000000000000000000000000000000081565b34801561053557600080fd5b5060005461055790700100000000000000000000000000000000900460ff1681565b6040516103d891906143ee565b34801561057057600080fd5b506003546104209073ffffffffffffffffffffffffffffffffffffffff1681565b34801561059d57600080fd5b506000546105c1907201000000000000000000000000000000000000900460ff1681565b60405190151581526020016103d8565b3480156105dd57600080fd5b50600154610479565b3480156105f257600080fd5b50610557611203565b34801561060757600080fd5b506007546103c39067ffffffffffffffff1681565b34801561062857600080fd5b5061047960085481565b34801561063e57600080fd5b5061047960055481565b34801561065457600080fd5b506104797f000000000000000000000000000000000000000000000000000000000000000081565b34801561068857600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90033560601c610420565b3480156106c857600080fd5b506003546105c19074010000000000000000000000000000000000000000900460ff1681565b6104b16106fc366004614451565b61157b565b34801561070d57600080fd5b506107166121c6565b6040516103d89190614509565b34801561072f57600080fd5b5061047961073e366004614523565b6121e5565b34801561074f57600080fd5b5061047961010081565b34801561076557600080fd5b5060408051808201909152600581527f302e322e300000000000000000000000000000000000000000000000000000006020820152610716565b3480156107ab57600080fd5b506001546002546107ba919082565b604080519283526020830191909152016103d8565b3480156107db57600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610420565b34801561080e57600080fd5b50610716612275565b34801561082357600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360340135610479565b34801561086357600080fd5b506103c36201518081565b34801561087a57600080fd5b506104797f000000000000000000000000000000000000000000000000000000000000000081565b3480156108ae57600080fd5b50600254610479565b3480156108c357600080fd5b5061042061229a565b3480156108d857600080fd5b506104b16122a6565b3480156108ed57600080fd5b506003546105c1907501000000000000000000000000000000000000000000900460ff1681565b34801561092057600080fd5b5061047960045481565b34801561093657600080fd5b506104207f000000000000000000000000000000000000000000000000000000000000000081565b34801561096a57600080fd5b506104797f000000000000000000000000000000000000000000000000000000000000000081565b34801561099e57600080fd5b506104797f000000000000000000000000000000000000000000000000000000000000000081565b3480156109d257600080fd5b506103c37f000000000000000000000000000000000000000000000000000000000000000081565b348015610a0657600080fd5b506104797f000000000000000000000000000000000000000000000000000000000000000081565b348015610a3a57600080fd5b50610479611fff81565b348015610a5057600080fd5b5061042071f90827f1c53a10cb7a02335b17532000293581565b348015610a7657600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360540135610479565b348015610ab657600080fd5b506104207f000000000000000000000000000000000000000000000000000000000000000081565b348015610aea57600080fd5b50600754610b049068010000000000000000900460ff1681565b60405160ff90911681526020016103d8565b348015610b2257600080fd5b506104207f000000000000000000000000000000000000000000000000000000000000000081565b348015610b5657600080fd5b5061047961254f565b348015610b6b57600080fd5b506104b1610b7a36600461453c565b61259b565b348015610b8b57600080fd5b5060405163ffffffff7f00000000000000000000000000000000000000000000000000000000000000001681526020016103d8565b348015610bcc57600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360140135610479565b348015610c0c57600080fd5b506007544267ffffffffffffffff90911611156105c1565b348015610c3057600080fd5b506104207f000000000000000000000000000000000000000000000000000000000000000081565b348015610c6457600080fd5b506000546103c39067ffffffffffffffff1681565b348015610c8557600080fd5b506104b1610c94366004614451565b612986565b348015610ca557600080fd5b506103c36206978081565b348015610cbc57600080fd5b506104797f000000000000000000000000000000000000000000000000000000000000000081565b348015610cf057600080fd5b506104b1610cff36600461453c565b612b47565b348015610d1057600080fd5b506104797f000000000000000000000000000000000000000000000000000000000000000081565b348015610d4457600080fd5b50610d4d612f27565b6040516103d89392919061458d565b905090565b600268929eee149b4bd212685403610d815763ab143c066000526004601cfd5b600268929eee149b4bd21268556003547501000000000000000000000000000000000000000000900460ff1615610de4576040517f17bfe5f700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60075467ffffffffffffffff90811614610e595760005468010000000000000000900467ffffffffffffffff1667ffffffffffffffff16600003610e54576040517fc105260a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610eb6565b60005467ffffffffffffffff16610e7390621275006145ea565b67ffffffffffffffff16421015610eb6576040517f04643c3900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60035474010000000000000000000000000000000000000000900460ff16610fce57600354600480546040517f7eee288d00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9384169281019290925260248201527f000000000000000000000000000000000000000000000000000000000000000090911690637eee288d90604401600060405180830381600087803b158015610f7157600080fd5b505af1158015610f85573d6000803e3d6000fd5b5050600380547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674010000000000000000000000000000000000000000179055506111b09050565b6003805475010000000000000000000000000000000000000000007fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff821617909155600480546040517ff3fef3a300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9384169281019290925260248201527f00000000000000000000000000000000000000000000000000000000000000009091169063f3fef3a390604401600060405180830381600087803b1580156110a657600080fd5b505af11580156110ba573d6000803e3d6000fd5b50506003546004546040516000945073ffffffffffffffffffffffffffffffffffffffff9092169250908381818185875af1925050503d806000811461111c576040519150601f19603f3d011682016040523d82523d6000602084013e611121565b606091505b505090508061115c576040517f83e6cc6b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60035460045460405190815273ffffffffffffffffffffffffffffffffffffffff909116907f87e12c2565042763daa6bf5842ed2b6447f17f7e28f9a4905fe3959581396ead9060200160405180910390a2505b600168929eee149b4bd2126855565b6000600681805b60018111156111d7576111d76143bf565b815260208101919091526040016000205473ffffffffffffffffffffffffffffffffffffffff16919050565b600080600054700100000000000000000000000000000000900460ff166002811115611231576112316143bf565b14611268576040517ff1a9458100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000611272612f8e565b90506000816002811115611288576112886143bf565b036112bf576040517f92c506ae00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60018160028111156112d3576112d36143bf565b0361131857600080547fffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff167001000000000000000000000000000000001790556114cc565b611320613223565b15611344575050600054700100000000000000000000000000000000900460ff1690565b6007544267ffffffffffffffff909116111561138c576040517f04643c3900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60075460016801000000000000000090910460ff1610156113d9576040517f344de4bf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6005541561149057600080547fffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff167001000000000000000000000000000000001781556001905260066020527f3e5fec24aa4dc4e5aee2e025e51e1392c72a2500577559fae9665c6d52bd6a3154600380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9092169190911790556114cc565b600080547fffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff167002000000000000000000000000000000001790555b600080547fffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff16680100000000000000004267ffffffffffffffff160217908190556040517f5e186f09b9c93491f14e277eea7faa5de6a2d4bda75a79af7a3684fbfb42da60916115549170010000000000000000000000000000000090910460ff16906143ee565b60405180910390a15050600054700100000000000000000000000000000000900460ff1690565b60005471010000000000000000000000000000000000900460ff16156115cd576040517f0dc149f000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000602060016115dd8483614616565b6115e7919061462e565b6115f19190614674565b6115fc906020614688565b905060008161162c7f00000000000000000000000000000000000000000000000000000000000000006040614616565b6116369190614616565b905080361461164d57639824bdab6000526004601cfd5b611684367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036014013590565b90565b61169b600161169161254f565b61073e919061462e565b14611721576116ad600161169161254f565b6116e1367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036014013590565b6040517ff33fa6cf000000000000000000000000000000000000000000000000000000008152600481019290925260248201526044015b60405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036074013560601c1461190357367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036074013560601c6117c881613401565b6117fe576040517f346119f700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604051806040016040528061187b8373ffffffffffffffffffffffffffffffffffffffff1663bcef3b556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611857573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061168191906146c5565b81526020018273ffffffffffffffffffffffffffffffffffffffff166399735e326040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118ef91906146c5565b90528051600155602001516002555061199e565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663664ed8306040518163ffffffff1660e01b81526004016040805180830381865afa15801561196d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061199191906146de565b8051600155602001516002555b6002546119cc907f000000000000000000000000000000000000000000000000000000000000000090614616565b367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036054013514611a9657600254611a2d907f000000000000000000000000000000000000000000000000000000000000000090614616565b367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c9003605401356040517f087b2d7600000000000000000000000000000000000000000000000000000000815260048101929092526024820152604401611718565b600080547fffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffff1671010000000000000000000000000000000000178155611b0760547ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe369081013560f01c9003013590565b90507f0000000000000000000000000000000000000000000000000000000000000000811015611b8c576040517fa70efcf7000000000000000000000000000000000000000000000000000000008152600481018290527f00000000000000000000000000000000000000000000000000000000000000006024820152604401611718565b6000611bb87f00000000000000000000000000000000000000000000000000000000000000008361462e565b905060007f0000000000000000000000000000000000000000000000000000000000000000611c0f7f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff614754565b611c19919061477d565b67ffffffffffffffff16905080821115611c62576040517fa1d6b34700000000000000000000000000000000000000000000000000000000815260048101849052602401611718565b6000611c9867ffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001684614688565b611cc2907f00000000000000000000000000000000000000000000000000000000000000006145ea565b9050428167ffffffffffffffff161115611d1a576040517f3680a67800000000000000000000000000000000000000000000000000000000815267ffffffffffffffff82166004820152426024820152604401611718565b6040517fa2e62b5a00000000000000000000000000000000000000000000000000000000815267ffffffffffffffff821660048201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063a2e62b5a90602401602060405180830381865afa158015611dae573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dd291906146c5565b600855600080547fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000164267ffffffffffffffff16179055604080517f3c9f397c00000000000000000000000000000000000000000000000000000000815290517f000000000000000000000000000000000000000000000000000000000000000063ffffffff16917f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1691633c9f397c916004808201926020929091908290030181865afa158015611ebd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ee191906147a4565b600080547fffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffff1663ffffffff92909216929092147201000000000000000000000000000000000000021781556007805467ffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000090911617905588888281611f7057611f706147ca565b919091013560f81c90506001811115611f8b57611f8b6143bf565b90506000611f9d602160018b8d6147f9565b611fa691614823565b90506000611fb8604160218c8e6147f9565b611fc191614823565b9050611fcd8282613770565b612084611fdd8b6041818f6147f9565b85367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90033560601c60015487905b600254612049367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036014013590565b367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036054013561207f6121c6565b6139c8565b6120bb83367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90033560601c613a9a565b600380547fffffffffffffffffffffffff0000000000000000000000000000000000000000167ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe369081013560f01c90033560601c179055346004818155604080517fd0e30db000000000000000000000000000000000000000000000000000000000815290517f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169363d0e30db093909280820192600092909182900301818588803b1580156121a057600080fd5b505af11580156121b4573d6000803e3d6000fd5b50505050505050505050505050505050565b6060610d5c60886121d561254f565b6121e0906020614688565b613ba4565b60006121ef61254f565b8210612227576040517fa6c661fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61226f612235836020614688565b612240906088614616565b367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c9003013590565b92915050565b6060610d5c605461228461254f565b61228f906020614688565b6121e0906034614616565b600060068160016111c6565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612311573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612335919061485f565b1561236c576040517f379a7ed900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005468010000000000000000900467ffffffffffffffff1667ffffffffffffffff166000036123c8576040517fc105260a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f0314d2b30000000000000000000000000000000000000000000000000000000081523060048201526000907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690630314d2b390602401602060405180830381865afa158015612455573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612479919061485f565b9050806124b2576040517f4851bd9b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f17cf21a90000000000000000000000000000000000000000000000000000000081523060048201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906317cf21a990602401600060405180830381600087803b15801561253957600080fd5b505af192505050801561254a575060015b505b50565b6000610d5c7f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000614674565b60008054700100000000000000000000000000000000900460ff1660028111156125c7576125c76143bf565b146125fe576040517ff1a9458100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600084846000818110612613576126136147ca565b919091013560f81c9050600181111561262e5761262e6143bf565b90506000600681836001811115612647576126476143bf565b6001811115612658576126586143bf565b815260208101919091526040016000205473ffffffffffffffffffffffffffffffffffffffff16036126b857806040517f25822d380000000000000000000000000000000000000000000000000000000081526004016117189190614881565b600554156127705760016005546126cf919061462e565b8314612707576040517fa6c661fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612710836121e5565b821461272057816116e1846121e5565b6001816001811115612734576127346143bf565b1461276b576040517f69ed70ab00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61277a565b61277a8383613bf6565b600080600061278886613c77565b9194509250905061280061279f886001818c6147f9565b86336127d5367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036034013590565b88888c898e6040516020016127ec91815260200190565b6040516020818303038152906040526139c8565b61280984613d10565b604080518781526020810187905233917f5a8d9d181e6a59fe5477a50721401b6332a810b9183e15ac62d386379a05a717910160405180910390a26001846001811115612858576128586143bf565b036128e2577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ece20f366040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156128c557600080fd5b505af11580156128d9573d6000803e3d6000fd5b5050505061297c565b60008460018111156128f6576128f66143bf565b0361297c577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ece20f366040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561296357600080fd5b505af1158015612977573d6000803e3d6000fd5b505050505b5050505050505050565b60008054700100000000000000000000000000000000900460ff1660028111156129b2576129b26143bf565b146129e9576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6007544267ffffffffffffffff90911611612a30576040517fdf469ccb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600082826000818110612a4557612a456147ca565b919091013560f81c90506001811115612a6057612a606143bf565b90506000600681836001811115612a7957612a796143bf565b6001811115612a8a57612a8a6143bf565b815260208101919091526040016000205473ffffffffffffffffffffffffffffffffffffffff1614612aea57806040517f7141297a0000000000000000000000000000000000000000000000000000000081526004016117189190614881565b612b38612afa83600181876147f9565b8333612b30367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036034013590565b600154612012565b612b428133613a9a565b505050565b60008054700100000000000000000000000000000000900460ff166002811115612b7357612b736143bf565b14612baa576040517ff1a9458100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612bb330613401565b612be9576040517f57e25a0900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001612bf3612f8e565b6002811115612c0457612c046143bf565b03612c3b576040517f346119f700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000805260066020527f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f85473ffffffffffffffffffffffffffffffffffffffff16612cb55760006040517f25822d380000000000000000000000000000000000000000000000000000000081526004016117189190614881565b600160005260066020527f3e5fec24aa4dc4e5aee2e025e51e1392c72a2500577559fae9665c6d52bd6a315473ffffffffffffffffffffffffffffffffffffffff1615612d315760016040517f7141297a0000000000000000000000000000000000000000000000000000000081526004016117189190614881565b600084846000818110612d4657612d466147ca565b919091013560f81c90506001811115612d6157612d616143bf565b90506001816001811115612d7757612d776143bf565b14612dae576040517f69ed70ab00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612db88383613bf6565b6000806000612dc686613c77565b91945092509050612ddd61279f886001818c6147f9565b3360066000866001811115612df457612df46143bf565b6001811115612e0557612e056143bf565b815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600760088282829054906101000a900460ff16612e709190614895565b92506101000a81548160ff021916908360ff1602179055506206978067ffffffffffffffff1642612ea19190614616565b600780547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001667ffffffffffffffff92909216919091179055612ee5866001614616565b60055560405186815233907f7a180232c19fd38c83e493856a42688c477bae7e82039103b2c1ea6a6162e5299060200160405180910390a25050505050505050565b60008060607f0000000000000000000000000000000000000000000000000000000000000000367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360140135612f83612275565b925092509250909192565b600073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036074013560601c1461321d576000367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036074013560601c6040517f34a346ea00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff80831660048301529192507f0000000000000000000000000000000000000000000000000000000000000000909116906334a346ea90602401602060405180830381865afa1580156130c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130e5919061485f565b8061319b57506040517f5958a19300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82811660048301527f00000000000000000000000000000000000000000000000000000000000000001690635958a19390602401602060405180830381865afa158015613177573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061319b919061485f565b156131a857600191505090565b8073ffffffffffffffffffffffffffffffffffffffff1663200d2ed26040518163ffffffff1660e01b8152600401602060405180830381865afa1580156131f3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061321791906148ba565b91505090565b50600290565b600080805260066020527f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f85473ffffffffffffffffffffffffffffffffffffffff16158015906132fd57507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f9df65eb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156132d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132fd919061485f565b156133125761330c6000613d10565b50600190565b600160005260066020527f3e5fec24aa4dc4e5aee2e025e51e1392c72a2500577559fae9665c6d52bd6a315473ffffffffffffffffffffffffffffffffffffffff16158015906133ec57507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f9df65eb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156133c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133ec919061485f565b156133fb5761330c6001613d10565b50600090565b6040517fee658e4500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82811660048301526000917f00000000000000000000000000000000000000000000000000000000000000009091169063ee658e4590602401602060405180830381865afa158015613492573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134b6919061485f565b801561356d57506040517f04e50fed00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83811660048301527f000000000000000000000000000000000000000000000000000000000000000016906304e50fed90602401602060405180830381865afa158015613549573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061356d919061485f565b801561362657506040517f34a346ea00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83811660048301527f000000000000000000000000000000000000000000000000000000000000000016906334a346ea90602401602060405180830381865afa158015613600573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613624919061485f565b155b80156136df57506040517f5958a19300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83811660048301527f00000000000000000000000000000000000000000000000000000000000000001690635958a19390602401602060405180830381865afa1580156136b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136dd919061485f565b155b801561226f575060018273ffffffffffffffffffffffffffffffffffffffff1663200d2ed26040518163ffffffff1660e01b8152600401602060405180830381865afa158015613733573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061375791906148ba565b6002811115613768576137686143bf565b141592915050565b4381106137b2576040517f25bfb0a400000000000000000000000000000000000000000000000000000000815260048101829052436024820152604401611718565b6000806137bf834361462e565b905061010081116137d3578240915061393f565b611fff81116139045760008071f90827f1c53a10cb7a02335b17532000293573ffffffffffffffffffffffffffffffffffffffff168560405160200161381b91815260200190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815290829052613853916148db565b600060405180830381855afa9150503d806000811461388e576040519150601f19603f3d011682016040523d82523d6000602084013e613893565b606091505b50915091508115806138a757508051602014155b156138e7576040517f0f0b8f8100000000000000000000000000000000000000000000000000000000815260048101869052436024820152604401611718565b808060200190518101906138fb91906146c5565b9350505061393f565b6040517f0f0b8f8100000000000000000000000000000000000000000000000000000000815260048101849052436024820152604401611718565b8161397f576040517f0f0b8f8100000000000000000000000000000000000000000000000000000000815260048101849052436024820152604401611718565b8382146139c2576040517f80b1ae510000000000000000000000000000000000000000000000000000000081526004810185905260248101839052604401611718565b50505050565b6001891015613a03576040517f09bde33900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000886001811115613a1757613a176143bf565b03613a3257613a2d8a8a89898989898989613e42565b613a8e565b6001886001811115613a4657613a466143bf565b03613a5c57613a2d8a8a89898989898989614020565b6040517f69ed70ab00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505050505050505050565b8060066000846001811115613ab157613ab16143bf565b6001811115613ac257613ac26143bf565b815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600760088282829054906101000a900460ff16613b2d9190614895565b92506101000a81548160ff021916908360ff160217905550613b4d6141cc565b816001811115613b5f57613b5f6143bf565b60405173ffffffffffffffffffffffffffffffffffffffff8316907f62f393acfb3d3425116fe9be7a6509a4b652bda54fdac2df2b7273135ecd58e790600090a35050565b604051818152367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90038284820160208401378260208301016000815260208101604052505092915050565b613bfe61254f565b8210613c36576040517fa6c661fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80613c40836121e5565b0361254a576040517fbbcafae600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008080808415613c9557613c9061073e60018761462e565b613c99565b6001545b90506000613cc77f000000000000000000000000000000000000000000000000000000000000000087614688565b600254613cd49190614616565b90506000613d027f0000000000000000000000000000000000000000000000000000000000000000836145ea565b929791965091945092505050565b60066000826001811115613d2657613d266143bf565b6001811115613d3757613d376143bf565b8152602081019190915260400160002080547fffffffffffffffffffffffff00000000000000000000000000000000000000001690556001816001811115613d8157613d816143bf565b03613d8c5760006005555b60075468010000000000000000900460ff16600003613dd7576040517f344de4bf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600780547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60ff6801000000000000000080840482169290920116027fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff90911617905561254c6142b4565b6000878787878787877f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000600854604051602001613ea99a999897969594939291906148f7565b6040516020818303038152906040528051906020012090506000888b8b604051602001613ed8939291906149a5565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290527fab750e75000000000000000000000000000000000000000000000000000000008252915073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063ab750e7590613f9c9084907f00000000000000000000000000000000000000000000000000000000000000009087906004016149e4565b602060405180830381865afa158015613fb9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613fdd919061485f565b614013576040517f09bde33900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050505050505050505050565b6000878787878787877f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006008546040516020016140879a999897969594939291906148f7565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529082905280516020909101207fab750e75000000000000000000000000000000000000000000000000000000008252915073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063ab750e7590614155908d908d907f0000000000000000000000000000000000000000000000000000000000000000908790600401614a09565b602060405180830381865afa158015614172573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614196919061485f565b613a8e576040517f09bde33900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006141d661436c565b90507fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000167ffffffffffffffff82160161423e5750600780547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001667ffffffffffffffff179055565b600061424a82426145ea565b6007549091506142779067ffffffffffffffff808416911667ffffffffffffffff16808218908211021890565b600780547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001667ffffffffffffffff929092169190911790555050565b60006142be61436c565b90507fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000167ffffffffffffffff8216016143265750600780547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001667ffffffffffffffff179055565b61433081426145ea565b600780547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001667ffffffffffffffff9290921691909117905550565b60075460009060026801000000000000000090910460ff161061439157506201518090565b60075468010000000000000000900460ff166001036143b257506206978090565b5067ffffffffffffffff90565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6020810160038310614402576144026143bf565b91905290565b60008083601f84011261441a57600080fd5b50813567ffffffffffffffff81111561443257600080fd5b60208301915083602082850101111561444a57600080fd5b9250929050565b6000806020838503121561446457600080fd5b823567ffffffffffffffff81111561447b57600080fd5b61448785828601614408565b90969095509350505050565b60005b838110156144ae578181015183820152602001614496565b838111156139c25750506000910152565b600081518084526144d7816020860160208601614493565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60208152600061451c60208301846144bf565b9392505050565b60006020828403121561453557600080fd5b5035919050565b6000806000806060858703121561455257600080fd5b843567ffffffffffffffff81111561456957600080fd5b61457587828801614408565b90989097506020870135966040013595509350505050565b63ffffffff841681528260208201526060604082015260006145b260608301846144bf565b95945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600067ffffffffffffffff80831681851680830382111561460d5761460d6145bb565b01949350505050565b60008219821115614629576146296145bb565b500190565b600082821015614640576146406145bb565b500390565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60008261468357614683614645565b500490565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156146c0576146c06145bb565b500290565b6000602082840312156146d757600080fd5b5051919050565b6000604082840312156146f057600080fd5b6040516040810181811067ffffffffffffffff8211171561473a577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604052825181526020928301519281019290925250919050565b600067ffffffffffffffff83811690831681811015614775576147756145bb565b039392505050565b600067ffffffffffffffff8084168061479857614798614645565b92169190910492915050565b6000602082840312156147b657600080fd5b815163ffffffff8116811461451c57600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000808585111561480957600080fd5b8386111561481657600080fd5b5050820193919092039150565b8035602083101561226f577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602084900360031b1b1692915050565b60006020828403121561487157600080fd5b8151801515811461451c57600080fd5b6020810160028310614402576144026143bf565b600060ff821660ff84168060ff038211156148b2576148b26145bb565b019392505050565b6000602082840312156148cc57600080fd5b81516003811061451c57600080fd5b600082516148ed818460208701614493565b9190910192915050565b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008b60601b16815289601482015288603482015260007fffffffffffffffff000000000000000000000000000000000000000000000000808a60c01b16605484015288605c840152808860c01b16607c84015250855161497e816084850160208a01614493565b608492019182019490945260a481019290925260c482015260e40198975050505050505050565b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008460601b168152818360148301376000910160140190815292915050565b6060815260006149f760608301866144bf565b60208301949094525060400152919050565b6060815283606082015283856080830137600060808583010152600060807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f87011683010190508360208301528260408301529594505050505056fea164736f6c634300080f000a000000000000000000000000000000000000000000000000000000000000026d000000000000000000000000bfb20170b82c474b136bc5a062aca47a3cb8cf680000000000000000000000005af90fde02b46e202f6232b3ede25b3f602ac67300000000000000000000000042fa446d95a5b61a7be02949042954a60315fb0f0000000000000000000000005b997cd8fafa026882aec7d0558c9cc47221f84ee8dc2300cf325b2527cbfa5e664a70acc40a9f2fc0617bd35cdfa61652a5fc307713943c2c2412314b135c5606cdb3923a54f7555d91d9f31c2f64e34e16f2f4002663a1072dc1e1938e13d3b269fff88e843eb4ef76d6c6953dde4f5152973bd14ddabfc0ad1dd737d6e5917cf271fd479bd539c9b3d85a602589c679a9983a00000000000000000000000000000000000000000000000000000000000ba5e00000000000000000000000000000000000000000000000000000000000000258000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000030e172aac675c9fe5a64792f92c9fd4d3e7ca9da0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006a3c7b2c0000000000000000000000000000000000000000000000000000000000000002", + "nonce": "0xb7", + "chainId": "0x88bb0" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0x18aa0f", + "logs": [ + { + "address": "0x30adfdab722d36b26f12f562d7cadf4cd8831c58", + "topics": [ + "0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000000000ff", + "blockHash": "0x13b641702df1d4e8f177d5fe5aee3991bb7daab31d0dc1920e425da3a3ed9995", + "blockNumber": "0x375dde", + "blockTimestamp": "0x6aa92fe0", + "transactionHash": "0x0bd7e6005a11f556741d5626de3034ee7ef73b87b074f988777fc46f56769b4b", + "transactionIndex": "0x0", + "logIndex": "0x0", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000100004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x0bd7e6005a11f556741d5626de3034ee7ef73b87b074f988777fc46f56769b4b", + "transactionIndex": "0x0", + "blockHash": "0x13b641702df1d4e8f177d5fe5aee3991bb7daab31d0dc1920e425da3a3ed9995", + "blockNumber": "0x375dde", + "gasUsed": "0x18aa0f", + "effectiveGasPrice": "0x3d5f243f", + "from": "0x8c1a617bdb47342f9c17ac8750e0b070c372c721", + "to": null, + "contractAddress": "0x30adfdab722d36b26f12f562d7cadf4cd8831c58" + }, + { + "status": "0x1", + "cumulativeGasUsed": "0x5d8de6", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x28e7e9d1df559939ea55a4c814edb7c7a959ff938d931f6c08025d685ca03c6f", + "transactionIndex": "0x14", + "blockHash": "0xbab7877ee3d4d4d026c849dbf5af3979777acbfe876120fe40bbabc3f4a52a4c", + "blockNumber": "0x375ddf", + "gasUsed": "0x3f869b", + "effectiveGasPrice": "0x448a04dc", + "from": "0x8c1a617bdb47342f9c17ac8750e0b070c372c721", + "to": null, + "contractAddress": "0x2504b1c3b78b2711e24eadf7ea077b0ca1b91859" + } + ], + "libraries": [], + "pending": [], + "returns": {}, + "timestamp": 1789472750703, + "chain": 560048, + "commit": "3685850" +} \ No newline at end of file diff --git a/active/evm/tasks/2026-09-14-cobalt-upgrade/records/ExecuteCobaltUpgrade.s.sol/560048/run-1789494949901.json b/active/evm/tasks/2026-09-14-cobalt-upgrade/records/ExecuteCobaltUpgrade.s.sol/560048/run-1789494949901.json new file mode 100644 index 00000000..6b761872 --- /dev/null +++ b/active/evm/tasks/2026-09-14-cobalt-upgrade/records/ExecuteCobaltUpgrade.s.sol/560048/run-1789494949901.json @@ -0,0 +1,90 @@ +{ + "transactions": [ + { + "hash": "0xabfb3ed6b24334891957b4f0c22273b06392132288862ca8235b13af0a47d667", + "transactionType": "CALL", + "contractName": null, + "contractAddress": "0x856611ed7e07d83243b15e93f6321f2df6865852", + "function": "execTransaction(address,uint256,bytes,uint8,uint256,uint256,uint256,address,address,bytes)", + "arguments": [ + "0x3d59999977e0896ee1f8783bB8251DF16fb483E9", + "0", + "0xd4d9bdcd296f6841292d3bead1cd264327f33e03195aa2543cb3470d2051765dad385e2d", + "0", + "0", + "0", + "0", + "0x0000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000", + "0xc937c4cb92b3960cbb975e22075a1ecd08eeaf712d6f5b7864ec350ec6e1d5c9500b857f3b12249eaf88f0e728c4fc4ae98f1a22396419a9df32db6fafb2e12b1b003985e433248e8c1cfd30b74c088bdf1e2385cfa88b3fec5c9d244a50d13d3f0f8a719f08c098af5bae9935f9106f973bdcf931ca3bbd9ec917c81ccff55e111b7cef1405650cb5c70bb2bc8294c8318286872e8ac170dc7ca84f3b539f617a1466cf6c4e9ede9ce188061130e446dab1a19e42e022dd3a66d9ea9420b32e49851b" + ], + "transaction": { + "from": "0x8c1a617bdb47342f9c17ac8750e0b070c372c721", + "to": "0x856611ed7e07d83243b15e93f6321f2df6865852", + "gas": "0x20381", + "value": "0x0", + "input": "0x6a7612020000000000000000000000003d59999977e0896ee1f8783bb8251df16fb483e90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001a00000000000000000000000000000000000000000000000000000000000000024d4d9bdcd296f6841292d3bead1cd264327f33e03195aa2543cb3470d2051765dad385e2d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c3c937c4cb92b3960cbb975e22075a1ecd08eeaf712d6f5b7864ec350ec6e1d5c9500b857f3b12249eaf88f0e728c4fc4ae98f1a22396419a9df32db6fafb2e12b1b003985e433248e8c1cfd30b74c088bdf1e2385cfa88b3fec5c9d244a50d13d3f0f8a719f08c098af5bae9935f9106f973bdcf931ca3bbd9ec917c81ccff55e111b7cef1405650cb5c70bb2bc8294c8318286872e8ac170dc7ca84f3b539f617a1466cf6c4e9ede9ce188061130e446dab1a19e42e022dd3a66d9ea9420b32e49851b0000000000000000000000000000000000000000000000000000000000", + "nonce": "0xb8", + "chainId": "0x88bb0" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0xd44ae", + "logs": [ + { + "address": "0x3d59999977e0896ee1f8783bb8251df16fb483e9", + "topics": [ + "0xf2a0eb156472d1440255b0d7c1e19cc07115d1051fe605b0dce69acfec884d9c", + "0x296f6841292d3bead1cd264327f33e03195aa2543cb3470d2051765dad385e2d", + "0x000000000000000000000000856611ed7e07d83243b15e93f6321f2df6865852" + ], + "data": "0x", + "blockHash": "0xb651707d3333a1c86e5ef653c83a81ff2661e419b6c97ed9a551c806df7f763e", + "blockNumber": "0x37644c", + "blockTimestamp": "0x6aa986a4", + "transactionHash": "0xabfb3ed6b24334891957b4f0c22273b06392132288862ca8235b13af0a47d667", + "transactionIndex": "0x17", + "logIndex": "0xf", + "removed": false + }, + { + "address": "0x856611ed7e07d83243b15e93f6321f2df6865852", + "topics": [ + "0x442e715f626346e8c54381002da614f62bee8d27386535b2521ec8540898556e", + "0x9006779dd18a15e0b992092195360fc5c78e75f32c2824e7ebe28be76c916350" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockHash": "0xb651707d3333a1c86e5ef653c83a81ff2661e419b6c97ed9a551c806df7f763e", + "blockNumber": "0x37644c", + "blockTimestamp": "0x6aa986a4", + "transactionHash": "0xabfb3ed6b24334891957b4f0c22273b06392132288862ca8235b13af0a47d667", + "transactionIndex": "0x17", + "logIndex": "0x10", + "removed": false + } + ], + "logsBloom": "0x00000000400000000000200000000200000004000000000000000000040000001001000000000000000000000000000000000040000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000800000000000000000000000000000000000000000000000000000000000000000000200000000000008000000000000000000000000000000000000000000000000040000004000000200000000080000000000000000000000000000008000000000000000000000000000000000000000000000004000000000000000000000000000000000000000200000000100000000000000000", + "type": "0x2", + "transactionHash": "0xabfb3ed6b24334891957b4f0c22273b06392132288862ca8235b13af0a47d667", + "transactionIndex": "0x17", + "blockHash": "0xb651707d3333a1c86e5ef653c83a81ff2661e419b6c97ed9a551c806df7f763e", + "blockNumber": "0x37644c", + "gasUsed": "0x17538", + "effectiveGasPrice": "0x475d4d34", + "from": "0x8c1a617bdb47342f9c17ac8750e0b070c372c721", + "to": "0x856611ed7e07d83243b15e93f6321f2df6865852", + "contractAddress": null + } + ], + "libraries": [], + "pending": [], + "returns": {}, + "timestamp": 1789494949901, + "chain": 560048, + "commit": "748d651" +} \ No newline at end of file diff --git a/active/evm/tasks/2026-09-14-cobalt-upgrade/records/ExecuteCobaltUpgrade.s.sol/560048/run-1789494998746.json b/active/evm/tasks/2026-09-14-cobalt-upgrade/records/ExecuteCobaltUpgrade.s.sol/560048/run-1789494998746.json new file mode 100644 index 00000000..8e16ba82 --- /dev/null +++ b/active/evm/tasks/2026-09-14-cobalt-upgrade/records/ExecuteCobaltUpgrade.s.sol/560048/run-1789494998746.json @@ -0,0 +1,90 @@ +{ + "transactions": [ + { + "hash": "0x01f2422ea1aab02df51e3a40257de2a56caa0704dcd1d20f6eb37109cd4b0cb2", + "transactionType": "CALL", + "contractName": null, + "contractAddress": "0xc4c0ad998b5dfa4cf4b298970f21b9015a5ee7ba", + "function": "execTransaction(address,uint256,bytes,uint8,uint256,uint256,uint256,address,address,bytes)", + "arguments": [ + "0x3d59999977e0896ee1f8783bB8251DF16fb483E9", + "0", + "0xd4d9bdcd296f6841292d3bead1cd264327f33e03195aa2543cb3470d2051765dad385e2d", + "0", + "0", + "0", + "0", + "0x0000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000", + "0x27d6597072c7ef3763db1a4371ea2ee198aeebef8dc9148983e9a901a591ce2f100257738eec79d2dad15d21432ef16f1f57712f13cd8e5e16d4c6c87d6d98a51b" + ], + "transaction": { + "from": "0x8c1a617bdb47342f9c17ac8750e0b070c372c721", + "to": "0xc4c0ad998b5dfa4cf4b298970f21b9015a5ee7ba", + "gas": "0x1b752", + "value": "0x0", + "input": "0x6a7612020000000000000000000000003d59999977e0896ee1f8783bb8251df16fb483e90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001a00000000000000000000000000000000000000000000000000000000000000024d4d9bdcd296f6841292d3bead1cd264327f33e03195aa2543cb3470d2051765dad385e2d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004127d6597072c7ef3763db1a4371ea2ee198aeebef8dc9148983e9a901a591ce2f100257738eec79d2dad15d21432ef16f1f57712f13cd8e5e16d4c6c87d6d98a51b00000000000000000000000000000000000000000000000000000000000000", + "nonce": "0xb9", + "chainId": "0x88bb0" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0x132adc", + "logs": [ + { + "address": "0x3d59999977e0896ee1f8783bb8251df16fb483e9", + "topics": [ + "0xf2a0eb156472d1440255b0d7c1e19cc07115d1051fe605b0dce69acfec884d9c", + "0x296f6841292d3bead1cd264327f33e03195aa2543cb3470d2051765dad385e2d", + "0x000000000000000000000000c4c0ad998b5dfa4cf4b298970f21b9015a5ee7ba" + ], + "data": "0x", + "blockHash": "0x9dc30f644a7f2593745036d43499a8e4868ffd35ef7496ee3f629e9677524282", + "blockNumber": "0x37644f", + "blockTimestamp": "0x6aa986d4", + "transactionHash": "0x01f2422ea1aab02df51e3a40257de2a56caa0704dcd1d20f6eb37109cd4b0cb2", + "transactionIndex": "0x18", + "logIndex": "0x1c", + "removed": false + }, + { + "address": "0xc4c0ad998b5dfa4cf4b298970f21b9015a5ee7ba", + "topics": [ + "0x442e715f626346e8c54381002da614f62bee8d27386535b2521ec8540898556e", + "0x685271642434da15d061d92ec3f3f7f523696d6f8040e1f3c660ebfc2a8b750d" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockHash": "0x9dc30f644a7f2593745036d43499a8e4868ffd35ef7496ee3f629e9677524282", + "blockNumber": "0x37644f", + "blockTimestamp": "0x6aa986d4", + "transactionHash": "0x01f2422ea1aab02df51e3a40257de2a56caa0704dcd1d20f6eb37109cd4b0cb2", + "transactionIndex": "0x18", + "logIndex": "0x1d", + "removed": false + } + ], + "logsBloom": "0x00000000400000000000000000000000000004000000000000400000040000000001000000000000000000000000000000000000000000100000000000000000010000000000000000000000000000000000000800000000000000001000000008000000400000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000004000000200000000080000000000200000000000000000008000000000000000000000000000000000000000000000004000000000000000000000010000000000000000000000000100000000000000000", + "type": "0x2", + "transactionHash": "0x01f2422ea1aab02df51e3a40257de2a56caa0704dcd1d20f6eb37109cd4b0cb2", + "transactionIndex": "0x18", + "blockHash": "0x9dc30f644a7f2593745036d43499a8e4868ffd35ef7496ee3f629e9677524282", + "blockNumber": "0x37644f", + "gasUsed": "0x13e10", + "effectiveGasPrice": "0x3e4ef838", + "from": "0x8c1a617bdb47342f9c17ac8750e0b070c372c721", + "to": "0xc4c0ad998b5dfa4cf4b298970f21b9015a5ee7ba", + "contractAddress": null + } + ], + "libraries": [], + "pending": [], + "returns": {}, + "timestamp": 1789494998746, + "chain": 560048, + "commit": "748d651" +} \ No newline at end of file diff --git a/active/evm/tasks/2026-09-14-cobalt-upgrade/records/ExecuteCobaltUpgrade.s.sol/560048/run-1789495033098.json b/active/evm/tasks/2026-09-14-cobalt-upgrade/records/ExecuteCobaltUpgrade.s.sol/560048/run-1789495033098.json new file mode 100644 index 00000000..6ff15f24 --- /dev/null +++ b/active/evm/tasks/2026-09-14-cobalt-upgrade/records/ExecuteCobaltUpgrade.s.sol/560048/run-1789495033098.json @@ -0,0 +1,585 @@ +{ + "transactions": [ + { + "hash": "0x4c8ad9546c5fa21be5887a009c1509499381bf6da9349737b7999117b50d714a", + "transactionType": "CALL", + "contractName": null, + "contractAddress": "0x3d59999977e0896ee1f8783bb8251df16fb483e9", + "function": "execTransaction(address,uint256,bytes,uint8,uint256,uint256,uint256,address,address,bytes)", + "arguments": [ + "0xA8B8CA1d6F0F5Ce63dCEA9121A01b302c5801303", + "0", + "0x858cc8320000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000090000000000000000000000000000000000000000000000000000000000000009800000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000a80000000000000000000000000a8b8ca1d6f0f5ce63dcea9121a01b302c58013030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000007c482ad56cb0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000004e000000000000000000000000000000000000000000000000000000000000005c000000000000000000000000000000000000000000000000000000000000006a0000000000000000000000000f2d2c097be80fb87844b7e259ef67efb98b26f870000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000002c49623609d00000000000000000000000030e172aac675c9fe5a64792f92c9fd4d3e7ca9da00000000000000000000000030adfdab722d36b26f12f562d7cadf4cd8831c580000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000022487f6a390000000000000000000000000856611ed7e07d83243b15e93f6321f2df686585200000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000001000000030000000200000000000000000000000000000000000000000000000000000000000000000000000d000000000000000000000000000000000000000000000000000000006a3c7b2c000000000000000000000000000000000000000000000000000000006a3c7b2c000000000000000000000000000000000000000000000000000000006a3c7b2c000000000000000000000000000000000000000000000000000000006a3c7b2c000000000000000000000000000000000000000000000000000000006a3c7b2c000000000000000000000000000000000000000000000000000000006a3c7b2c000000000000000000000000000000000000000000000000000000006a3c7b2c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006a3c7b2c000000000000000000000000000000000000000000000000000000006a3c7b2c000000000000000000000000000000000000000000000000000000006a3c7c58000000000000000000000000000000000000000000000000000000006a3c7d84000000000000000000000000000000000000000000000000000000006aaabd000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f2d2c097be80fb87844b7e259ef67efb98b26f8700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000004499a88ec40000000000000000000000007e3b97c95c823f385ff6770411f6e12f8e09ac9b000000000000000000000000b4ac39aadc3130fef3f348ece8d033540df1208900000000000000000000000000000000000000000000000000000000000000000000000000000000f2d2c097be80fb87844b7e259ef67efb98b26f8700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000004499a88ec40000000000000000000000000a111c7980152bde41d71f48e2e1d8184f5f6187000000000000000000000000210303565cbf0b8c0d2837523816f815f02ad5eb00000000000000000000000000000000000000000000000000000000000000000000000000000000f2d2c097be80fb87844b7e259ef67efb98b26f8700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000004499a88ec4000000000000000000000000d930e0cebd52d7c77b8f900de242e818506c5474000000000000000000000000bee0c6dd082d7a483da4bd6e56c7e5292bda7ce800000000000000000000000000000000000000000000000000000000000000000000000000000000d930e0cebd52d7c77b8f900de242e818506c547400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000004414f6b1a3000000000000000000000000000000000000000000000000000000000000026d0000000000000000000000002504b1c3b78b2711e24eadf7ea077b0ca1b9185900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000", + "1", + "0", + "0", + "0", + "0x0000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000", + "0x000000000000000000000000856611ed7e07d83243b15e93f6321f2df6865852000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000c4c0ad998b5dfa4cf4b298970f21b9015a5ee7ba000000000000000000000000000000000000000000000000000000000000000001" + ], + "transaction": { + "from": "0x8c1a617bdb47342f9c17ac8750e0b070c372c721", + "to": "0x3d59999977e0896ee1f8783bb8251df16fb483e9", + "gas": "0xfe5f8", + "value": "0x0", + "input": "0x6a761202000000000000000000000000a8b8ca1d6f0f5ce63dcea9121a01b302c5801303000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001400000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cc00000000000000000000000000000000000000000000000000000000000000b44858cc8320000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000090000000000000000000000000000000000000000000000000000000000000009800000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000a80000000000000000000000000a8b8ca1d6f0f5ce63dcea9121a01b302c58013030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000007c482ad56cb0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000004e000000000000000000000000000000000000000000000000000000000000005c000000000000000000000000000000000000000000000000000000000000006a0000000000000000000000000f2d2c097be80fb87844b7e259ef67efb98b26f870000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000002c49623609d00000000000000000000000030e172aac675c9fe5a64792f92c9fd4d3e7ca9da00000000000000000000000030adfdab722d36b26f12f562d7cadf4cd8831c580000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000022487f6a390000000000000000000000000856611ed7e07d83243b15e93f6321f2df686585200000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000001000000030000000200000000000000000000000000000000000000000000000000000000000000000000000d000000000000000000000000000000000000000000000000000000006a3c7b2c000000000000000000000000000000000000000000000000000000006a3c7b2c000000000000000000000000000000000000000000000000000000006a3c7b2c000000000000000000000000000000000000000000000000000000006a3c7b2c000000000000000000000000000000000000000000000000000000006a3c7b2c000000000000000000000000000000000000000000000000000000006a3c7b2c000000000000000000000000000000000000000000000000000000006a3c7b2c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006a3c7b2c000000000000000000000000000000000000000000000000000000006a3c7b2c000000000000000000000000000000000000000000000000000000006a3c7c58000000000000000000000000000000000000000000000000000000006a3c7d84000000000000000000000000000000000000000000000000000000006aaabd000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f2d2c097be80fb87844b7e259ef67efb98b26f8700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000004499a88ec40000000000000000000000007e3b97c95c823f385ff6770411f6e12f8e09ac9b000000000000000000000000b4ac39aadc3130fef3f348ece8d033540df1208900000000000000000000000000000000000000000000000000000000000000000000000000000000f2d2c097be80fb87844b7e259ef67efb98b26f8700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000004499a88ec40000000000000000000000000a111c7980152bde41d71f48e2e1d8184f5f6187000000000000000000000000210303565cbf0b8c0d2837523816f815f02ad5eb00000000000000000000000000000000000000000000000000000000000000000000000000000000f2d2c097be80fb87844b7e259ef67efb98b26f8700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000004499a88ec4000000000000000000000000d930e0cebd52d7c77b8f900de242e818506c5474000000000000000000000000bee0c6dd082d7a483da4bd6e56c7e5292bda7ce800000000000000000000000000000000000000000000000000000000000000000000000000000000d930e0cebd52d7c77b8f900de242e818506c547400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000004414f6b1a3000000000000000000000000000000000000000000000000000000000000026d0000000000000000000000002504b1c3b78b2711e24eadf7ea077b0ca1b9185900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000082000000000000000000000000856611ed7e07d83243b15e93f6321f2df6865852000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000c4c0ad998b5dfa4cf4b298970f21b9015a5ee7ba000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000", + "nonce": "0xba", + "chainId": "0x88bb0" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0x12e16a", + "logs": [ + { + "address": "0x30e172aac675c9fe5a64792f92c9fd4d3e7ca9da", + "topics": [ + "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", + "0x00000000000000000000000030adfdab722d36b26f12f562d7cadf4cd8831c58" + ], + "data": "0x", + "blockHash": "0xf310a0097bcd11c40543a81a4d53d59e8b8faa39ed72f319eb886c9446873c98", + "blockNumber": "0x376452", + "blockTimestamp": "0x6aa986f8", + "transactionHash": "0x4c8ad9546c5fa21be5887a009c1509499381bf6da9349737b7999117b50d714a", + "transactionIndex": "0x5", + "logIndex": "0x14", + "removed": false + }, + { + "address": "0x30e172aac675c9fe5a64792f92c9fd4d3e7ca9da", + "topics": [ + "0xc8d4579ff78c4e70e6ae3acbb4858a04ea798b4e8efff9ff7a8c8775d7b2c858", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "data": "0x", + "blockHash": "0xf310a0097bcd11c40543a81a4d53d59e8b8faa39ed72f319eb886c9446873c98", + "blockNumber": "0x376452", + "blockTimestamp": "0x6aa986f8", + "transactionHash": "0x4c8ad9546c5fa21be5887a009c1509499381bf6da9349737b7999117b50d714a", + "transactionIndex": "0x5", + "logIndex": "0x15", + "removed": false + }, + { + "address": "0x30e172aac675c9fe5a64792f92c9fd4d3e7ca9da", + "topics": [ + "0x48496c9e95bc0f6dd82bee879408724c3b1a356b8a6d9c3fbffe270b24720791", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "data": "0x000000000000000000000000000000000000000000000000000000006a3c7b2c", + "blockHash": "0xf310a0097bcd11c40543a81a4d53d59e8b8faa39ed72f319eb886c9446873c98", + "blockNumber": "0x376452", + "blockTimestamp": "0x6aa986f8", + "transactionHash": "0x4c8ad9546c5fa21be5887a009c1509499381bf6da9349737b7999117b50d714a", + "transactionIndex": "0x5", + "logIndex": "0x16", + "removed": false + }, + { + "address": "0x30e172aac675c9fe5a64792f92c9fd4d3e7ca9da", + "topics": [ + "0xc8d4579ff78c4e70e6ae3acbb4858a04ea798b4e8efff9ff7a8c8775d7b2c858", + "0x0000000000000000000000000000000000000000000000000000000000000001" + ], + "data": "0x", + "blockHash": "0xf310a0097bcd11c40543a81a4d53d59e8b8faa39ed72f319eb886c9446873c98", + "blockNumber": "0x376452", + "blockTimestamp": "0x6aa986f8", + "transactionHash": "0x4c8ad9546c5fa21be5887a009c1509499381bf6da9349737b7999117b50d714a", + "transactionIndex": "0x5", + "logIndex": "0x17", + "removed": false + }, + { + "address": "0x30e172aac675c9fe5a64792f92c9fd4d3e7ca9da", + "topics": [ + "0x48496c9e95bc0f6dd82bee879408724c3b1a356b8a6d9c3fbffe270b24720791", + "0x0000000000000000000000000000000000000000000000000000000000000001" + ], + "data": "0x000000000000000000000000000000000000000000000000000000006a3c7b2c", + "blockHash": "0xf310a0097bcd11c40543a81a4d53d59e8b8faa39ed72f319eb886c9446873c98", + "blockNumber": "0x376452", + "blockTimestamp": "0x6aa986f8", + "transactionHash": "0x4c8ad9546c5fa21be5887a009c1509499381bf6da9349737b7999117b50d714a", + "transactionIndex": "0x5", + "logIndex": "0x18", + "removed": false + }, + { + "address": "0x30e172aac675c9fe5a64792f92c9fd4d3e7ca9da", + "topics": [ + "0xc8d4579ff78c4e70e6ae3acbb4858a04ea798b4e8efff9ff7a8c8775d7b2c858", + "0x0000000000000000000000000000000000000000000000000000000000000002" + ], + "data": "0x", + "blockHash": "0xf310a0097bcd11c40543a81a4d53d59e8b8faa39ed72f319eb886c9446873c98", + "blockNumber": "0x376452", + "blockTimestamp": "0x6aa986f8", + "transactionHash": "0x4c8ad9546c5fa21be5887a009c1509499381bf6da9349737b7999117b50d714a", + "transactionIndex": "0x5", + "logIndex": "0x19", + "removed": false + }, + { + "address": "0x30e172aac675c9fe5a64792f92c9fd4d3e7ca9da", + "topics": [ + "0x48496c9e95bc0f6dd82bee879408724c3b1a356b8a6d9c3fbffe270b24720791", + "0x0000000000000000000000000000000000000000000000000000000000000002" + ], + "data": "0x000000000000000000000000000000000000000000000000000000006a3c7b2c", + "blockHash": "0xf310a0097bcd11c40543a81a4d53d59e8b8faa39ed72f319eb886c9446873c98", + "blockNumber": "0x376452", + "blockTimestamp": "0x6aa986f8", + "transactionHash": "0x4c8ad9546c5fa21be5887a009c1509499381bf6da9349737b7999117b50d714a", + "transactionIndex": "0x5", + "logIndex": "0x1a", + "removed": false + }, + { + "address": "0x30e172aac675c9fe5a64792f92c9fd4d3e7ca9da", + "topics": [ + "0xc8d4579ff78c4e70e6ae3acbb4858a04ea798b4e8efff9ff7a8c8775d7b2c858", + "0x0000000000000000000000000000000000000000000000000000000000000003" + ], + "data": "0x", + "blockHash": "0xf310a0097bcd11c40543a81a4d53d59e8b8faa39ed72f319eb886c9446873c98", + "blockNumber": "0x376452", + "blockTimestamp": "0x6aa986f8", + "transactionHash": "0x4c8ad9546c5fa21be5887a009c1509499381bf6da9349737b7999117b50d714a", + "transactionIndex": "0x5", + "logIndex": "0x1b", + "removed": false + }, + { + "address": "0x30e172aac675c9fe5a64792f92c9fd4d3e7ca9da", + "topics": [ + "0x48496c9e95bc0f6dd82bee879408724c3b1a356b8a6d9c3fbffe270b24720791", + "0x0000000000000000000000000000000000000000000000000000000000000003" + ], + "data": "0x000000000000000000000000000000000000000000000000000000006a3c7b2c", + "blockHash": "0xf310a0097bcd11c40543a81a4d53d59e8b8faa39ed72f319eb886c9446873c98", + "blockNumber": "0x376452", + "blockTimestamp": "0x6aa986f8", + "transactionHash": "0x4c8ad9546c5fa21be5887a009c1509499381bf6da9349737b7999117b50d714a", + "transactionIndex": "0x5", + "logIndex": "0x1c", + "removed": false + }, + { + "address": "0x30e172aac675c9fe5a64792f92c9fd4d3e7ca9da", + "topics": [ + "0xc8d4579ff78c4e70e6ae3acbb4858a04ea798b4e8efff9ff7a8c8775d7b2c858", + "0x0000000000000000000000000000000000000000000000000000000000000004" + ], + "data": "0x", + "blockHash": "0xf310a0097bcd11c40543a81a4d53d59e8b8faa39ed72f319eb886c9446873c98", + "blockNumber": "0x376452", + "blockTimestamp": "0x6aa986f8", + "transactionHash": "0x4c8ad9546c5fa21be5887a009c1509499381bf6da9349737b7999117b50d714a", + "transactionIndex": "0x5", + "logIndex": "0x1d", + "removed": false + }, + { + "address": "0x30e172aac675c9fe5a64792f92c9fd4d3e7ca9da", + "topics": [ + "0x48496c9e95bc0f6dd82bee879408724c3b1a356b8a6d9c3fbffe270b24720791", + "0x0000000000000000000000000000000000000000000000000000000000000004" + ], + "data": "0x000000000000000000000000000000000000000000000000000000006a3c7b2c", + "blockHash": "0xf310a0097bcd11c40543a81a4d53d59e8b8faa39ed72f319eb886c9446873c98", + "blockNumber": "0x376452", + "blockTimestamp": "0x6aa986f8", + "transactionHash": "0x4c8ad9546c5fa21be5887a009c1509499381bf6da9349737b7999117b50d714a", + "transactionIndex": "0x5", + "logIndex": "0x1e", + "removed": false + }, + { + "address": "0x30e172aac675c9fe5a64792f92c9fd4d3e7ca9da", + "topics": [ + "0xc8d4579ff78c4e70e6ae3acbb4858a04ea798b4e8efff9ff7a8c8775d7b2c858", + "0x0000000000000000000000000000000000000000000000000000000000000005" + ], + "data": "0x", + "blockHash": "0xf310a0097bcd11c40543a81a4d53d59e8b8faa39ed72f319eb886c9446873c98", + "blockNumber": "0x376452", + "blockTimestamp": "0x6aa986f8", + "transactionHash": "0x4c8ad9546c5fa21be5887a009c1509499381bf6da9349737b7999117b50d714a", + "transactionIndex": "0x5", + "logIndex": "0x1f", + "removed": false + }, + { + "address": "0x30e172aac675c9fe5a64792f92c9fd4d3e7ca9da", + "topics": [ + "0x48496c9e95bc0f6dd82bee879408724c3b1a356b8a6d9c3fbffe270b24720791", + "0x0000000000000000000000000000000000000000000000000000000000000005" + ], + "data": "0x000000000000000000000000000000000000000000000000000000006a3c7b2c", + "blockHash": "0xf310a0097bcd11c40543a81a4d53d59e8b8faa39ed72f319eb886c9446873c98", + "blockNumber": "0x376452", + "blockTimestamp": "0x6aa986f8", + "transactionHash": "0x4c8ad9546c5fa21be5887a009c1509499381bf6da9349737b7999117b50d714a", + "transactionIndex": "0x5", + "logIndex": "0x20", + "removed": false + }, + { + "address": "0x30e172aac675c9fe5a64792f92c9fd4d3e7ca9da", + "topics": [ + "0xc8d4579ff78c4e70e6ae3acbb4858a04ea798b4e8efff9ff7a8c8775d7b2c858", + "0x0000000000000000000000000000000000000000000000000000000000000006" + ], + "data": "0x", + "blockHash": "0xf310a0097bcd11c40543a81a4d53d59e8b8faa39ed72f319eb886c9446873c98", + "blockNumber": "0x376452", + "blockTimestamp": "0x6aa986f8", + "transactionHash": "0x4c8ad9546c5fa21be5887a009c1509499381bf6da9349737b7999117b50d714a", + "transactionIndex": "0x5", + "logIndex": "0x21", + "removed": false + }, + { + "address": "0x30e172aac675c9fe5a64792f92c9fd4d3e7ca9da", + "topics": [ + "0x48496c9e95bc0f6dd82bee879408724c3b1a356b8a6d9c3fbffe270b24720791", + "0x0000000000000000000000000000000000000000000000000000000000000006" + ], + "data": "0x000000000000000000000000000000000000000000000000000000006a3c7b2c", + "blockHash": "0xf310a0097bcd11c40543a81a4d53d59e8b8faa39ed72f319eb886c9446873c98", + "blockNumber": "0x376452", + "blockTimestamp": "0x6aa986f8", + "transactionHash": "0x4c8ad9546c5fa21be5887a009c1509499381bf6da9349737b7999117b50d714a", + "transactionIndex": "0x5", + "logIndex": "0x22", + "removed": false + }, + { + "address": "0x30e172aac675c9fe5a64792f92c9fd4d3e7ca9da", + "topics": [ + "0xc8d4579ff78c4e70e6ae3acbb4858a04ea798b4e8efff9ff7a8c8775d7b2c858", + "0x0000000000000000000000000000000000000000000000000000000000000007" + ], + "data": "0x", + "blockHash": "0xf310a0097bcd11c40543a81a4d53d59e8b8faa39ed72f319eb886c9446873c98", + "blockNumber": "0x376452", + "blockTimestamp": "0x6aa986f8", + "transactionHash": "0x4c8ad9546c5fa21be5887a009c1509499381bf6da9349737b7999117b50d714a", + "transactionIndex": "0x5", + "logIndex": "0x23", + "removed": false + }, + { + "address": "0x30e172aac675c9fe5a64792f92c9fd4d3e7ca9da", + "topics": [ + "0xc8d4579ff78c4e70e6ae3acbb4858a04ea798b4e8efff9ff7a8c8775d7b2c858", + "0x0000000000000000000000000000000000000000000000000000000000000008" + ], + "data": "0x", + "blockHash": "0xf310a0097bcd11c40543a81a4d53d59e8b8faa39ed72f319eb886c9446873c98", + "blockNumber": "0x376452", + "blockTimestamp": "0x6aa986f8", + "transactionHash": "0x4c8ad9546c5fa21be5887a009c1509499381bf6da9349737b7999117b50d714a", + "transactionIndex": "0x5", + "logIndex": "0x24", + "removed": false + }, + { + "address": "0x30e172aac675c9fe5a64792f92c9fd4d3e7ca9da", + "topics": [ + "0x48496c9e95bc0f6dd82bee879408724c3b1a356b8a6d9c3fbffe270b24720791", + "0x0000000000000000000000000000000000000000000000000000000000000008" + ], + "data": "0x000000000000000000000000000000000000000000000000000000006a3c7b2c", + "blockHash": "0xf310a0097bcd11c40543a81a4d53d59e8b8faa39ed72f319eb886c9446873c98", + "blockNumber": "0x376452", + "blockTimestamp": "0x6aa986f8", + "transactionHash": "0x4c8ad9546c5fa21be5887a009c1509499381bf6da9349737b7999117b50d714a", + "transactionIndex": "0x5", + "logIndex": "0x25", + "removed": false + }, + { + "address": "0x30e172aac675c9fe5a64792f92c9fd4d3e7ca9da", + "topics": [ + "0xc8d4579ff78c4e70e6ae3acbb4858a04ea798b4e8efff9ff7a8c8775d7b2c858", + "0x0000000000000000000000000000000000000000000000000000000000000009" + ], + "data": "0x", + "blockHash": "0xf310a0097bcd11c40543a81a4d53d59e8b8faa39ed72f319eb886c9446873c98", + "blockNumber": "0x376452", + "blockTimestamp": "0x6aa986f8", + "transactionHash": "0x4c8ad9546c5fa21be5887a009c1509499381bf6da9349737b7999117b50d714a", + "transactionIndex": "0x5", + "logIndex": "0x26", + "removed": false + }, + { + "address": "0x30e172aac675c9fe5a64792f92c9fd4d3e7ca9da", + "topics": [ + "0x48496c9e95bc0f6dd82bee879408724c3b1a356b8a6d9c3fbffe270b24720791", + "0x0000000000000000000000000000000000000000000000000000000000000009" + ], + "data": "0x000000000000000000000000000000000000000000000000000000006a3c7b2c", + "blockHash": "0xf310a0097bcd11c40543a81a4d53d59e8b8faa39ed72f319eb886c9446873c98", + "blockNumber": "0x376452", + "blockTimestamp": "0x6aa986f8", + "transactionHash": "0x4c8ad9546c5fa21be5887a009c1509499381bf6da9349737b7999117b50d714a", + "transactionIndex": "0x5", + "logIndex": "0x27", + "removed": false + }, + { + "address": "0x30e172aac675c9fe5a64792f92c9fd4d3e7ca9da", + "topics": [ + "0xc8d4579ff78c4e70e6ae3acbb4858a04ea798b4e8efff9ff7a8c8775d7b2c858", + "0x000000000000000000000000000000000000000000000000000000000000000a" + ], + "data": "0x", + "blockHash": "0xf310a0097bcd11c40543a81a4d53d59e8b8faa39ed72f319eb886c9446873c98", + "blockNumber": "0x376452", + "blockTimestamp": "0x6aa986f8", + "transactionHash": "0x4c8ad9546c5fa21be5887a009c1509499381bf6da9349737b7999117b50d714a", + "transactionIndex": "0x5", + "logIndex": "0x28", + "removed": false + }, + { + "address": "0x30e172aac675c9fe5a64792f92c9fd4d3e7ca9da", + "topics": [ + "0x48496c9e95bc0f6dd82bee879408724c3b1a356b8a6d9c3fbffe270b24720791", + "0x000000000000000000000000000000000000000000000000000000000000000a" + ], + "data": "0x000000000000000000000000000000000000000000000000000000006a3c7c58", + "blockHash": "0xf310a0097bcd11c40543a81a4d53d59e8b8faa39ed72f319eb886c9446873c98", + "blockNumber": "0x376452", + "blockTimestamp": "0x6aa986f8", + "transactionHash": "0x4c8ad9546c5fa21be5887a009c1509499381bf6da9349737b7999117b50d714a", + "transactionIndex": "0x5", + "logIndex": "0x29", + "removed": false + }, + { + "address": "0x30e172aac675c9fe5a64792f92c9fd4d3e7ca9da", + "topics": [ + "0xc8d4579ff78c4e70e6ae3acbb4858a04ea798b4e8efff9ff7a8c8775d7b2c858", + "0x000000000000000000000000000000000000000000000000000000000000000b" + ], + "data": "0x", + "blockHash": "0xf310a0097bcd11c40543a81a4d53d59e8b8faa39ed72f319eb886c9446873c98", + "blockNumber": "0x376452", + "blockTimestamp": "0x6aa986f8", + "transactionHash": "0x4c8ad9546c5fa21be5887a009c1509499381bf6da9349737b7999117b50d714a", + "transactionIndex": "0x5", + "logIndex": "0x2a", + "removed": false + }, + { + "address": "0x30e172aac675c9fe5a64792f92c9fd4d3e7ca9da", + "topics": [ + "0x48496c9e95bc0f6dd82bee879408724c3b1a356b8a6d9c3fbffe270b24720791", + "0x000000000000000000000000000000000000000000000000000000000000000b" + ], + "data": "0x000000000000000000000000000000000000000000000000000000006a3c7d84", + "blockHash": "0xf310a0097bcd11c40543a81a4d53d59e8b8faa39ed72f319eb886c9446873c98", + "blockNumber": "0x376452", + "blockTimestamp": "0x6aa986f8", + "transactionHash": "0x4c8ad9546c5fa21be5887a009c1509499381bf6da9349737b7999117b50d714a", + "transactionIndex": "0x5", + "logIndex": "0x2b", + "removed": false + }, + { + "address": "0x30e172aac675c9fe5a64792f92c9fd4d3e7ca9da", + "topics": [ + "0xc8d4579ff78c4e70e6ae3acbb4858a04ea798b4e8efff9ff7a8c8775d7b2c858", + "0x000000000000000000000000000000000000000000000000000000000000000c" + ], + "data": "0x", + "blockHash": "0xf310a0097bcd11c40543a81a4d53d59e8b8faa39ed72f319eb886c9446873c98", + "blockNumber": "0x376452", + "blockTimestamp": "0x6aa986f8", + "transactionHash": "0x4c8ad9546c5fa21be5887a009c1509499381bf6da9349737b7999117b50d714a", + "transactionIndex": "0x5", + "logIndex": "0x2c", + "removed": false + }, + { + "address": "0x30e172aac675c9fe5a64792f92c9fd4d3e7ca9da", + "topics": [ + "0x48496c9e95bc0f6dd82bee879408724c3b1a356b8a6d9c3fbffe270b24720791", + "0x000000000000000000000000000000000000000000000000000000000000000c" + ], + "data": "0x000000000000000000000000000000000000000000000000000000006aaabd00", + "blockHash": "0xf310a0097bcd11c40543a81a4d53d59e8b8faa39ed72f319eb886c9446873c98", + "blockNumber": "0x376452", + "blockTimestamp": "0x6aa986f8", + "transactionHash": "0x4c8ad9546c5fa21be5887a009c1509499381bf6da9349737b7999117b50d714a", + "transactionIndex": "0x5", + "logIndex": "0x2d", + "removed": false + }, + { + "address": "0x30e172aac675c9fe5a64792f92c9fd4d3e7ca9da", + "topics": [ + "0x3ce196af7f202b9a61978967a766a54245d6588745bc8f76226360f5a87085ea", + "0xf79cbe9afb777dd098279ee69b442ffa04d8f8c9d6314ff21747452be3315773" + ], + "data": "0x", + "blockHash": "0xf310a0097bcd11c40543a81a4d53d59e8b8faa39ed72f319eb886c9446873c98", + "blockNumber": "0x376452", + "blockTimestamp": "0x6aa986f8", + "transactionHash": "0x4c8ad9546c5fa21be5887a009c1509499381bf6da9349737b7999117b50d714a", + "transactionIndex": "0x5", + "logIndex": "0x2e", + "removed": false + }, + { + "address": "0x30e172aac675c9fe5a64792f92c9fd4d3e7ca9da", + "topics": [ + "0xafb29e5c7f4fc4818c2ffe01313f20873fbb8d3ecb8c231226be562b9a11e57f", + "0x0000000000000000000000000000000000000001000000030000000200000000" + ], + "data": "0x", + "blockHash": "0xf310a0097bcd11c40543a81a4d53d59e8b8faa39ed72f319eb886c9446873c98", + "blockNumber": "0x376452", + "blockTimestamp": "0x6aa986f8", + "transactionHash": "0x4c8ad9546c5fa21be5887a009c1509499381bf6da9349737b7999117b50d714a", + "transactionIndex": "0x5", + "logIndex": "0x2f", + "removed": false + }, + { + "address": "0x30e172aac675c9fe5a64792f92c9fd4d3e7ca9da", + "topics": [ + "0xb1c6dde58c72ae176c3481e130f3af63d9d7f9edc52f9c07ab80840f85f442ea", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x000000000000000000000000856611ed7e07d83243b15e93f6321f2df6865852" + ], + "data": "0x", + "blockHash": "0xf310a0097bcd11c40543a81a4d53d59e8b8faa39ed72f319eb886c9446873c98", + "blockNumber": "0x376452", + "blockTimestamp": "0x6aa986f8", + "transactionHash": "0x4c8ad9546c5fa21be5887a009c1509499381bf6da9349737b7999117b50d714a", + "transactionIndex": "0x5", + "logIndex": "0x30", + "removed": false + }, + { + "address": "0x30e172aac675c9fe5a64792f92c9fd4d3e7ca9da", + "topics": [ + "0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000001", + "blockHash": "0xf310a0097bcd11c40543a81a4d53d59e8b8faa39ed72f319eb886c9446873c98", + "blockNumber": "0x376452", + "blockTimestamp": "0x6aa986f8", + "transactionHash": "0x4c8ad9546c5fa21be5887a009c1509499381bf6da9349737b7999117b50d714a", + "transactionIndex": "0x5", + "logIndex": "0x31", + "removed": false + }, + { + "address": "0x7e3b97c95c823f385ff6770411f6e12f8e09ac9b", + "topics": [ + "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", + "0x000000000000000000000000b4ac39aadc3130fef3f348ece8d033540df12089" + ], + "data": "0x", + "blockHash": "0xf310a0097bcd11c40543a81a4d53d59e8b8faa39ed72f319eb886c9446873c98", + "blockNumber": "0x376452", + "blockTimestamp": "0x6aa986f8", + "transactionHash": "0x4c8ad9546c5fa21be5887a009c1509499381bf6da9349737b7999117b50d714a", + "transactionIndex": "0x5", + "logIndex": "0x32", + "removed": false + }, + { + "address": "0x0a111c7980152bde41d71f48e2e1d8184f5f6187", + "topics": [ + "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", + "0x000000000000000000000000210303565cbf0b8c0d2837523816f815f02ad5eb" + ], + "data": "0x", + "blockHash": "0xf310a0097bcd11c40543a81a4d53d59e8b8faa39ed72f319eb886c9446873c98", + "blockNumber": "0x376452", + "blockTimestamp": "0x6aa986f8", + "transactionHash": "0x4c8ad9546c5fa21be5887a009c1509499381bf6da9349737b7999117b50d714a", + "transactionIndex": "0x5", + "logIndex": "0x33", + "removed": false + }, + { + "address": "0xd930e0cebd52d7c77b8f900de242e818506c5474", + "topics": [ + "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", + "0x000000000000000000000000bee0c6dd082d7a483da4bd6e56c7e5292bda7ce8" + ], + "data": "0x", + "blockHash": "0xf310a0097bcd11c40543a81a4d53d59e8b8faa39ed72f319eb886c9446873c98", + "blockNumber": "0x376452", + "blockTimestamp": "0x6aa986f8", + "transactionHash": "0x4c8ad9546c5fa21be5887a009c1509499381bf6da9349737b7999117b50d714a", + "transactionIndex": "0x5", + "logIndex": "0x34", + "removed": false + }, + { + "address": "0xd930e0cebd52d7c77b8f900de242e818506c5474", + "topics": [ + "0xff513d80e2c7fa487608f70a618dfbc0cf415699dc69588c747e8c71566c88de", + "0x0000000000000000000000002504b1c3b78b2711e24eadf7ea077b0ca1b91859", + "0x000000000000000000000000000000000000000000000000000000000000026d" + ], + "data": "0x", + "blockHash": "0xf310a0097bcd11c40543a81a4d53d59e8b8faa39ed72f319eb886c9446873c98", + "blockNumber": "0x376452", + "blockTimestamp": "0x6aa986f8", + "transactionHash": "0x4c8ad9546c5fa21be5887a009c1509499381bf6da9349737b7999117b50d714a", + "transactionIndex": "0x5", + "logIndex": "0x35", + "removed": false + }, + { + "address": "0x3d59999977e0896ee1f8783bb8251df16fb483e9", + "topics": [ + "0x442e715f626346e8c54381002da614f62bee8d27386535b2521ec8540898556e", + "0x296f6841292d3bead1cd264327f33e03195aa2543cb3470d2051765dad385e2d" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockHash": "0xf310a0097bcd11c40543a81a4d53d59e8b8faa39ed72f319eb886c9446873c98", + "blockNumber": "0x376452", + "blockTimestamp": "0x6aa986f8", + "transactionHash": "0x4c8ad9546c5fa21be5887a009c1509499381bf6da9349737b7999117b50d714a", + "transactionIndex": "0x5", + "logIndex": "0x36", + "removed": false + } + ], + "logsBloom": "0x040000004005000000000040000002004000060000000000000000800400000000210100000822000000002020000020000010000604811040210000002c00000200b800041000000000000000000200000000000004400000080000000000000a000000020000000000000000052800000000000000000000002800000010000080010400404000010000000000001000001800000080000400000000088000000002000000100400000140000404000000200000800080002200080004400040080020000008008000000000040000002200008000000000400100000064200000000100000000000000000080000020200200008000040000002000800100", + "type": "0x2", + "transactionHash": "0x4c8ad9546c5fa21be5887a009c1509499381bf6da9349737b7999117b50d714a", + "transactionIndex": "0x5", + "blockHash": "0xf310a0097bcd11c40543a81a4d53d59e8b8faa39ed72f319eb886c9446873c98", + "blockNumber": "0x376452", + "gasUsed": "0xb8296", + "effectiveGasPrice": "0x440171b8", + "from": "0x8c1a617bdb47342f9c17ac8750e0b070c372c721", + "to": "0x3d59999977e0896ee1f8783bb8251df16fb483e9", + "contractAddress": null + } + ], + "libraries": [], + "pending": [], + "returns": {}, + "timestamp": 1789495033098, + "chain": 560048, + "commit": "748d651" +} \ No newline at end of file diff --git a/active/evm/tasks/2026-09-14-cobalt-upgrade/script/DeployCobaltCoreImpls.s.sol b/active/evm/tasks/2026-09-14-cobalt-upgrade/script/DeployCobaltCoreImpls.s.sol new file mode 100644 index 00000000..224b74f8 --- /dev/null +++ b/active/evm/tasks/2026-09-14-cobalt-upgrade/script/DeployCobaltCoreImpls.s.sol @@ -0,0 +1,95 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.15; + +import {Script, console} from "forge-std/Script.sol"; + +import {DisputeGameFactory} from "@base-contracts/src/L1/proofs/DisputeGameFactory.sol"; +import {OptimismPortal2} from "@base-contracts/src/L1/OptimismPortal2.sol"; +import {Proxy} from "@base-contracts/src/universal/Proxy.sol"; +import {SystemConfig} from "@base-contracts/src/L1/SystemConfig.sol"; + +/// @notice Deploys the Cobalt implementations that base/contracts compiles at 5000 optimizer runs, +/// plus the proxy that will front the new ProtocolVersions registry. +/// @dev The ProtocolVersions proxy is deployed here, ahead of the implementations in +/// DeployCobaltProofImpls, because AggregateVerifier takes its address as a constructor +/// immutable. The proxy is left pointing at no implementation; the upgrade transaction +/// atomically sets the implementation and initializes it via ProxyAdmin.upgradeAndCall. +contract DeployCobaltCoreImpls is Script { + address internal immutable l1ProxyAdmin; + address internal immutable optimismPortal; + /// @dev Copied from the live portal so the redeploy cannot change the delay. + uint256 internal immutable proofMaturityDelaySeconds; + string internal addressesJson; + + DisputeGameFactory public disputeGameFactoryImpl; + OptimismPortal2 public optimismPortalImpl; + Proxy public protocolVersionsProxy; + SystemConfig public systemConfigImpl; + + constructor() { + l1ProxyAdmin = vm.envAddress("L1_PROXY_ADMIN"); + optimismPortal = vm.envAddress("OPTIMISM_PORTAL"); + proofMaturityDelaySeconds = OptimismPortal2(payable(optimismPortal)).proofMaturityDelaySeconds(); + addressesJson = vm.envString("ADDRESSES_JSON"); + } + + function setUp() public view { + require(l1ProxyAdmin.code.length != 0, "proxy admin not deployed"); + require(optimismPortal.code.length != 0, "optimism portal not deployed"); + } + + function run() external { + vm.startBroadcast(); + + optimismPortalImpl = new OptimismPortal2(proofMaturityDelaySeconds); + systemConfigImpl = new SystemConfig(); + disputeGameFactoryImpl = new DisputeGameFactory(); + protocolVersionsProxy = new Proxy(l1ProxyAdmin); + + vm.stopBroadcast(); + + _postCheck(); + _writeAddresses(); + } + + function _postCheck() internal view { + require(address(optimismPortalImpl).code.length != 0, "portal implementation not deployed"); + require(address(systemConfigImpl).code.length != 0, "system config implementation not deployed"); + require(address(disputeGameFactoryImpl).code.length != 0, "dispute game factory implementation not deployed"); + require(address(protocolVersionsProxy).code.length != 0, "protocol versions proxy not deployed"); + + require( + optimismPortalImpl.proofMaturityDelaySeconds() == proofMaturityDelaySeconds, "portal proof delay mismatch" + ); + require(keccak256(bytes(optimismPortalImpl.version())) == keccak256(bytes("6.0.0")), "portal version mismatch"); + // Zeronet runs a patched SystemConfig that raises MAX_GAS_LIMIT to 2e9. The patch carries a + // build-suffixed semver so a stock build cannot be deployed here by mistake. + require( + keccak256(bytes(systemConfigImpl.version())) == keccak256(bytes("3.14.0+max-gas-limit-2000M")), + "system config patch not applied" + ); + require( + keccak256(bytes(disputeGameFactoryImpl.version())) == keccak256(bytes("1.5.0")), + "dispute game factory version mismatch" + ); + } + + function _writeAddresses() internal { + console.log("OptimismPortal2 impl: ", address(optimismPortalImpl)); + console.log("SystemConfig impl: ", address(systemConfigImpl)); + console.log("DisputeGameFactory impl: ", address(disputeGameFactoryImpl)); + console.log("ProtocolVersions proxy: ", address(protocolVersionsProxy)); + + vm.writeJson(vm.toString(address(optimismPortalImpl)), addressesJson, ".optimismPortalImpl"); + vm.writeJson(vm.toString(address(systemConfigImpl)), addressesJson, ".systemConfigImpl"); + vm.writeJson(vm.toString(address(disputeGameFactoryImpl)), addressesJson, ".disputeGameFactoryImpl"); + vm.writeJson(vm.toString(address(protocolVersionsProxy)), addressesJson, ".protocolVersionsProxy"); + + // Recorded so `make verify-core` does not have to rebuild the encoding from + // values the script resolved itself. + vm.writeJson( + vm.toString(abi.encode(proofMaturityDelaySeconds)), addressesJson, ".optimismPortalImplConstructorArgs" + ); + vm.writeJson(vm.toString(abi.encode(l1ProxyAdmin)), addressesJson, ".protocolVersionsProxyConstructorArgs"); + } +} diff --git a/active/evm/tasks/2026-09-14-cobalt-upgrade/script/DeployCobaltProofImpls.s.sol b/active/evm/tasks/2026-09-14-cobalt-upgrade/script/DeployCobaltProofImpls.s.sol new file mode 100644 index 00000000..4bcbc061 --- /dev/null +++ b/active/evm/tasks/2026-09-14-cobalt-upgrade/script/DeployCobaltProofImpls.s.sol @@ -0,0 +1,207 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.15; + +import {Script, console} from "forge-std/Script.sol"; + +import {IAnchorStateRegistry} from "interfaces/L1/proofs/IAnchorStateRegistry.sol"; +import {IDelayedWETH} from "interfaces/L1/proofs/IDelayedWETH.sol"; +import {IDisputeGameFactory} from "interfaces/L1/proofs/IDisputeGameFactory.sol"; +import {IProtocolVersions} from "interfaces/L1/IProtocolVersions.sol"; +import {IVerifier} from "interfaces/L1/proofs/IVerifier.sol"; + +import {AggregateVerifier} from "@base-contracts/src/L1/proofs/AggregateVerifier.sol"; +import {GameType} from "@base-contracts/src/libraries/bridge/Types.sol"; +import {ProtocolVersions} from "@base-contracts/src/L1/ProtocolVersions.sol"; + +/// @notice Deploys the Cobalt implementations that base/contracts compiles at 999999 optimizer runs. +/// @dev AggregateVerifier binds PROTOCOL_VERSIONS as a constructor immutable, so it must be +/// redeployed for the registry to take effect and the proxy from DeployCobaltCoreImpls must +/// already exist. Only the proof program hashes and the schedule config are supplied; every +/// other constructor argument is read back from the implementation currently registered in the +/// factory, so the redeploy cannot silently change them. Note that the pinned commit leaves +/// AggregateVerifier at 0.1.0, the same version the live implementation reports, so version +/// alone cannot distinguish the two. +contract DeployCobaltProofImpls is Script { + /// @notice Game type of the aggregate proof game. + GameType internal constant AGGREGATE_VERIFIER_GAME_TYPE = GameType.wrap(621); + + // Supplied by the task. + bytes32 internal immutable teeImageHash; + bytes32 internal immutable zkRangeHash; + bytes32 internal immutable zkAggregateHash; + uint256 internal immutable l2GenesisBlockNumber; + uint64 internal immutable l2GenesisTimestamp; + uint64 internal immutable l2BlockTime; + address internal immutable protocolVersionsProxy; + + // Copied from the live implementation registered for game type 621. + address internal immutable liveAggregateVerifier; + IAnchorStateRegistry internal immutable anchorStateRegistry; + IDelayedWETH internal immutable delayedWeth; + address internal immutable teeVerifier; + address internal immutable zkVerifier; + bytes32 internal immutable configHash; + uint256 internal immutable l2ChainId; + uint256 internal immutable blockInterval; + uint256 internal immutable intermediateBlockInterval; + + string internal addressesJson; + + AggregateVerifier public aggregateVerifier; + ProtocolVersions public protocolVersionsImpl; + + constructor() { + // envOr rather than envBytes32 so that the blank placeholders the task ships with + // surface as the actionable requires in setUp rather than an env parse failure. + teeImageHash = vm.envOr("AGGREGATE_VERIFIER_TEE_IMAGE_HASH", bytes32(0)); + zkRangeHash = vm.envOr("AGGREGATE_VERIFIER_ZK_RANGE_HASH", bytes32(0)); + zkAggregateHash = vm.envOr("AGGREGATE_VERIFIER_ZK_AGGREGATE_HASH", bytes32(0)); + l2GenesisBlockNumber = vm.envUint("L2_GENESIS_BLOCK_NUMBER"); + l2GenesisTimestamp = uint64(vm.envUint("L2_GENESIS_TIMESTAMP")); + l2BlockTime = uint64(vm.envUint("L2_BLOCK_TIME")); + + addressesJson = vm.envString("ADDRESSES_JSON"); + protocolVersionsProxy = vm.parseJsonAddress(vm.readFile(addressesJson), ".protocolVersionsProxy"); + + address factory = vm.envAddress("DISPUTE_GAME_FACTORY_PROXY"); + liveAggregateVerifier = address(IDisputeGameFactory(factory).gameImpls(AGGREGATE_VERIFIER_GAME_TYPE)); + + AggregateVerifier live = AggregateVerifier(liveAggregateVerifier); + anchorStateRegistry = live.anchorStateRegistry(); + delayedWeth = live.DELAYED_WETH(); + teeVerifier = address(live.TEE_VERIFIER()); + zkVerifier = address(live.ZK_VERIFIER()); + configHash = live.CONFIG_HASH(); + l2ChainId = live.L2_CHAIN_ID(); + blockInterval = live.BLOCK_INTERVAL(); + intermediateBlockInterval = live.INTERMEDIATE_BLOCK_INTERVAL(); + } + + function setUp() public view { + require(protocolVersionsProxy.code.length != 0, "protocol versions proxy not deployed"); + require(liveAggregateVerifier != address(0), "no aggregate verifier registered for game type 621"); + require( + GameType.unwrap(AggregateVerifier(liveAggregateVerifier).gameType()) + == GameType.unwrap(AGGREGATE_VERIFIER_GAME_TYPE), + "live aggregate verifier game type mismatch" + ); + + // Left blank in the task config until the proof programs are released. + require(teeImageHash != bytes32(0), "AGGREGATE_VERIFIER_TEE_IMAGE_HASH not set"); + require(zkRangeHash != bytes32(0), "AGGREGATE_VERIFIER_ZK_RANGE_HASH not set"); + require(zkAggregateHash != bytes32(0), "AGGREGATE_VERIFIER_ZK_AGGREGATE_HASH not set"); + } + + function run() external { + vm.startBroadcast(); + + protocolVersionsImpl = new ProtocolVersions(); + aggregateVerifier = new AggregateVerifier({ + gameType_: AGGREGATE_VERIFIER_GAME_TYPE, + anchorStateRegistry_: anchorStateRegistry, + delayedWETH: delayedWeth, + teeVerifier: IVerifier(teeVerifier), + zkVerifier: IVerifier(zkVerifier), + teeImageHash: teeImageHash, + zkHashes: AggregateVerifier.ZkHashes({rangeHash: zkRangeHash, aggregateHash: zkAggregateHash}), + configHash: configHash, + l2ChainId: l2ChainId, + blockInterval: blockInterval, + intermediateBlockInterval: intermediateBlockInterval, + scheduleConfig: AggregateVerifier.ScheduleConfig({ + protocolVersions: IProtocolVersions(protocolVersionsProxy), + genesisBlockNumber: l2GenesisBlockNumber, + genesisTimestamp: l2GenesisTimestamp, + blockTime: l2BlockTime + }) + }); + + vm.stopBroadcast(); + + _postCheck(); + _writeAddresses(); + } + + function _postCheck() internal view { + require(address(protocolVersionsImpl).code.length != 0, "protocol versions implementation not deployed"); + require(address(aggregateVerifier).code.length != 0, "aggregate verifier not deployed"); + + require( + keccak256(bytes(protocolVersionsImpl.version())) == keccak256(bytes("1.0.0")), + "protocol versions version mismatch" + ); + require(protocolVersionsImpl.initVersion() == 1, "protocol versions init version mismatch"); + + require( + keccak256(bytes(aggregateVerifier.version())) == keccak256(bytes("0.2.0")), + "aggregate verifier version mismatch" + ); + require(address(aggregateVerifier) != liveAggregateVerifier, "aggregate verifier was not redeployed"); + require( + address(aggregateVerifier.PROTOCOL_VERSIONS()) == protocolVersionsProxy, + "aggregate verifier protocol versions mismatch" + ); + + // The new proof program hashes. + require(aggregateVerifier.TEE_IMAGE_HASH() == teeImageHash, "aggregate verifier tee image hash mismatch"); + require(aggregateVerifier.ZK_RANGE_HASH() == zkRangeHash, "aggregate verifier zk range hash mismatch"); + require( + aggregateVerifier.ZK_AGGREGATE_HASH() == zkAggregateHash, "aggregate verifier zk aggregate hash mismatch" + ); + + // Everything carried over from the live implementation. + require( + address(aggregateVerifier.anchorStateRegistry()) == address(anchorStateRegistry), + "aggregate verifier anchor state registry mismatch" + ); + require( + address(aggregateVerifier.DELAYED_WETH()) == address(delayedWeth), + "aggregate verifier delayed weth mismatch" + ); + require(address(aggregateVerifier.TEE_VERIFIER()) == teeVerifier, "aggregate verifier tee verifier mismatch"); + require(address(aggregateVerifier.ZK_VERIFIER()) == zkVerifier, "aggregate verifier zk verifier mismatch"); + require(aggregateVerifier.CONFIG_HASH() == configHash, "aggregate verifier config hash mismatch"); + require(aggregateVerifier.L2_CHAIN_ID() == l2ChainId, "aggregate verifier l2 chain id mismatch"); + require(aggregateVerifier.BLOCK_INTERVAL() == blockInterval, "aggregate verifier block interval mismatch"); + require( + aggregateVerifier.INTERMEDIATE_BLOCK_INTERVAL() == intermediateBlockInterval, + "aggregate verifier intermediate block interval mismatch" + ); + } + + function _writeAddresses() internal { + console.log("ProtocolVersions impl: ", address(protocolVersionsImpl)); + console.log("AggregateVerifier: ", address(aggregateVerifier)); + + vm.writeJson(vm.toString(address(protocolVersionsImpl)), addressesJson, ".protocolVersionsImpl"); + vm.writeJson(vm.toString(address(aggregateVerifier)), addressesJson, ".aggregateVerifier"); + + // Recorded so `make verify-proofs` does not have to rebuild the encoding from + // values the script read off chain. + vm.writeJson( + vm.toString( + abi.encode( + AGGREGATE_VERIFIER_GAME_TYPE, + anchorStateRegistry, + delayedWeth, + teeVerifier, + zkVerifier, + teeImageHash, + AggregateVerifier.ZkHashes({rangeHash: zkRangeHash, aggregateHash: zkAggregateHash}), + configHash, + l2ChainId, + blockInterval, + intermediateBlockInterval, + AggregateVerifier.ScheduleConfig({ + protocolVersions: IProtocolVersions(protocolVersionsProxy), + genesisBlockNumber: l2GenesisBlockNumber, + genesisTimestamp: l2GenesisTimestamp, + blockTime: l2BlockTime + }) + ) + ), + addressesJson, + ".aggregateVerifierConstructorArgs" + ); + } +} diff --git a/active/evm/tasks/2026-09-14-cobalt-upgrade/script/ExecuteCobaltUpgrade.s.sol b/active/evm/tasks/2026-09-14-cobalt-upgrade/script/ExecuteCobaltUpgrade.s.sol new file mode 100644 index 00000000..8743385a --- /dev/null +++ b/active/evm/tasks/2026-09-14-cobalt-upgrade/script/ExecuteCobaltUpgrade.s.sol @@ -0,0 +1,343 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.15; + +import {Vm} from "forge-std/Vm.sol"; + +import {MultisigScript, Enum} from "@base-contracts/scripts/universal/MultisigScript.sol"; +import {Simulation} from "@base-contracts/scripts/universal/Simulation.sol"; + +interface IProxyAdmin { + function owner() external view returns (address); + function upgrade(address payable proxy, address implementation) external; + function upgradeAndCall(address payable proxy, address implementation, bytes memory data) external payable; +} + +interface IProtocolVersions { + function initialize(address incidentResponder, uint64[] calldata initialSchedule, uint256 minimumProtocolVersion) + external; + function getSchedule() external view returns (uint64[] memory); + function incidentResponder() external view returns (address); + function minimumProtocolVersion() external view returns (uint256); + function scheduleId() external view returns (bytes32); + function version() external view returns (string memory); +} + +interface IDisputeGameFactory { + function gameCount() external view returns (uint256); + function gameImpls(uint32 gameType) external view returns (address); + function owner() external view returns (address); + function setImplementation(uint32 gameType, address impl) external; + function version() external view returns (string memory); +} + +interface IAggregateVerifier { + function PROTOCOL_VERSIONS() external view returns (address); + function version() external view returns (string memory); +} + +interface ISystemConfig { + function gasLimit() external view returns (uint64); + function paused() external view returns (bool); + function version() external view returns (string memory); +} + +interface IVersioned { + function version() external view returns (string memory); +} + +/// @notice Executes the Cobalt L1 upgrade on a Base chain. +/// @dev Bundles the three Cobalt contract changes into a single ProxyAdmin-owner transaction: +/// dynamic upgrades (a new ProtocolVersions registry plus the AggregateVerifier that binds it), +/// the EthLockbox removal (OptimismPortal2 and SystemConfig), and CREATE2 dispute game proxies +/// (DisputeGameFactory). +contract ExecuteCobaltUpgrade is MultisigScript { + /// @notice EIP-1967 implementation slot. + bytes32 internal constant IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc; + + /// @notice Storage slot the removed `ethLockbox` address occupied on OptimismPortal2. The + /// Cobalt implementation replaces it with a spacer, so the stored value must survive + /// the upgrade untouched. + bytes32 internal constant PORTAL_ETH_LOCKBOX_SLOT = bytes32(uint256(63)); + + /// @notice Game type of the aggregate proof game. + uint32 internal constant AGGREGATE_VERIFIER_GAME_TYPE = 621; + + address internal immutable ownerSafe; + address internal immutable proxyAdmin; + address internal immutable optimismPortal; + address internal immutable systemConfig; + address internal immutable disputeGameFactory; + + address internal immutable oldOptimismPortalImpl; + address internal immutable oldSystemConfigImpl; + address internal immutable oldDisputeGameFactoryImpl; + address internal immutable oldAggregateVerifier; + + address internal immutable newOptimismPortalImpl; + address internal immutable newSystemConfigImpl; + address internal immutable newDisputeGameFactoryImpl; + address internal immutable newAggregateVerifier; + address internal immutable protocolVersionsProxy; + address internal immutable protocolVersionsImpl; + + address internal immutable protocolVersionsIncidentResponder; + uint256 internal immutable protocolVersionsMinimumProtocolVersion; + + /// @dev Solidity has no immutable arrays, so the imported activation schedule is read from the + /// environment into storage during construction. + uint64[] internal protocolVersionsInitialSchedule; + + /// @dev Live state captured at construction and re-asserted after the upgrade. + uint256 internal immutable portalBalanceBefore; + bytes32 internal immutable portalLockboxSlotBefore; + uint64 internal immutable gasLimitBefore; + uint256 internal immutable gameCountBefore; + bool internal immutable pausedBefore; + + constructor() { + ownerSafe = vm.envAddress("PROXY_ADMIN_OWNER"); + proxyAdmin = vm.envAddress("L1_PROXY_ADMIN"); + optimismPortal = vm.envAddress("OPTIMISM_PORTAL"); + systemConfig = vm.envAddress("SYSTEM_CONFIG"); + disputeGameFactory = vm.envAddress("DISPUTE_GAME_FACTORY_PROXY"); + + oldOptimismPortalImpl = vm.envAddress("OLD_OPTIMISM_PORTAL_IMPL"); + oldSystemConfigImpl = vm.envAddress("OLD_SYSTEM_CONFIG_IMPL"); + oldDisputeGameFactoryImpl = vm.envAddress("OLD_DISPUTE_GAME_FACTORY_IMPL"); + oldAggregateVerifier = vm.envAddress("OLD_AGGREGATE_VERIFIER"); + + newOptimismPortalImpl = vm.envAddress("NEW_OPTIMISM_PORTAL_IMPL"); + newSystemConfigImpl = vm.envAddress("NEW_SYSTEM_CONFIG_IMPL"); + newDisputeGameFactoryImpl = vm.envAddress("NEW_DISPUTE_GAME_FACTORY_IMPL"); + newAggregateVerifier = vm.envAddress("NEW_AGGREGATE_VERIFIER"); + protocolVersionsProxy = vm.envAddress("PROTOCOL_VERSIONS_PROXY"); + protocolVersionsImpl = vm.envAddress("PROTOCOL_VERSIONS_IMPL"); + + protocolVersionsIncidentResponder = vm.envAddress("PROTOCOL_VERSIONS_INCIDENT_RESPONDER"); + protocolVersionsMinimumProtocolVersion = vm.envUint("PROTOCOL_VERSIONS_MINIMUM_PROTOCOL_VERSION"); + + uint256[] memory schedule = vm.envUint("PROTOCOL_VERSIONS_INITIAL_SCHEDULE", ","); + for (uint256 i = 0; i < schedule.length; i++) { + require(schedule[i] <= type(uint64).max, "schedule timestamp exceeds uint64"); + protocolVersionsInitialSchedule.push(uint64(schedule[i])); + } + + portalBalanceBefore = optimismPortal.balance; + portalLockboxSlotBefore = vm.load(optimismPortal, PORTAL_ETH_LOCKBOX_SLOT); + gasLimitBefore = ISystemConfig(systemConfig).gasLimit(); + gameCountBefore = IDisputeGameFactory(disputeGameFactory).gameCount(); + pausedBefore = ISystemConfig(systemConfig).paused(); + } + + function setUp() public view { + _preCheck(); + } + + function _buildCalls() internal view override returns (Call[] memory) { + Call[] memory calls = new Call[](5); + + // Dynamic upgrades: point the new proxy at the registry implementation and seed the + // activation schedule atomically. `initialize` is `reinitializer(1)` and the proxy has + // never been initialized, so this must be `upgradeAndCall` rather than a bare upgrade. + calls[0] = Call({ + operation: Enum.Operation.Call, + target: proxyAdmin, + data: abi.encodeCall( + IProxyAdmin.upgradeAndCall, + ( + payable(protocolVersionsProxy), + protocolVersionsImpl, + abi.encodeCall( + IProtocolVersions.initialize, + ( + protocolVersionsIncidentResponder, + protocolVersionsInitialSchedule, + protocolVersionsMinimumProtocolVersion + ) + ) + ) + ), + value: 0 + }); + + // EthLockbox removal. Both implementations are already at their current init version and + // the upgrade adds no state, so they are upgrade-only. + calls[1] = Call({ + operation: Enum.Operation.Call, + target: proxyAdmin, + data: abi.encodeCall(IProxyAdmin.upgrade, (payable(optimismPortal), newOptimismPortalImpl)), + value: 0 + }); + calls[2] = Call({ + operation: Enum.Operation.Call, + target: proxyAdmin, + data: abi.encodeCall(IProxyAdmin.upgrade, (payable(systemConfig), newSystemConfigImpl)), + value: 0 + }); + + // CREATE2 dispute game proxies. + calls[3] = Call({ + operation: Enum.Operation.Call, + target: proxyAdmin, + data: abi.encodeCall(IProxyAdmin.upgrade, (payable(disputeGameFactory), newDisputeGameFactoryImpl)), + value: 0 + }); + + // Register the AggregateVerifier that binds the new registry. This is `onlyOwner` on the + // factory itself, not a ProxyAdmin call, and the factory owner is the same Safe. + calls[4] = Call({ + operation: Enum.Operation.Call, + target: disputeGameFactory, + data: abi.encodeCall( + IDisputeGameFactory.setImplementation, (AGGREGATE_VERIFIER_GAME_TYPE, newAggregateVerifier) + ), + value: 0 + }); + + return calls; + } + + function _preCheck() internal view { + require(IProxyAdmin(proxyAdmin).owner() == ownerSafe, "proxy admin owner mismatch"); + require(IDisputeGameFactory(disputeGameFactory).owner() == ownerSafe, "dispute game factory owner mismatch"); + + require(_implementation(optimismPortal) == oldOptimismPortalImpl, "unexpected live portal implementation"); + require(_implementation(systemConfig) == oldSystemConfigImpl, "unexpected live system config implementation"); + require( + _implementation(disputeGameFactory) == oldDisputeGameFactoryImpl, + "unexpected live dispute game factory implementation" + ); + require( + IDisputeGameFactory(disputeGameFactory).gameImpls(AGGREGATE_VERIFIER_GAME_TYPE) == oldAggregateVerifier, + "unexpected live aggregate verifier" + ); + + // The Cobalt portal drops every lockbox code path without migrating custody, so ETH held in + // a live lockbox would be stranded. Zeronet never set one; this refuses to proceed anywhere + // that did. + (bool ok, bytes memory raw) = optimismPortal.staticcall(abi.encodeWithSignature("ethLockbox()")); + require(!ok || abi.decode(raw, (address)) == address(0), "portal still uses an ETHLockbox"); + + // The new registry must be an uninitialized proxy under the same ProxyAdmin. + require(protocolVersionsProxy.code.length != 0, "protocol versions proxy not deployed"); + require(_implementation(protocolVersionsProxy) == address(0), "protocol versions proxy already upgraded"); + require(_admin(protocolVersionsProxy) == proxyAdmin, "protocol versions proxy admin mismatch"); + + require( + keccak256(bytes(IVersioned(protocolVersionsImpl).version())) == keccak256(bytes("1.0.0")), + "protocol versions implementation version mismatch" + ); + require( + keccak256(bytes(IVersioned(newOptimismPortalImpl).version())) == keccak256(bytes("6.0.0")), + "portal implementation version mismatch" + ); + require( + keccak256(bytes(IVersioned(newSystemConfigImpl).version())) + == keccak256(bytes("3.14.0+max-gas-limit-2000M")), + "system config implementation is not the patched build" + ); + require( + keccak256(bytes(IVersioned(newDisputeGameFactoryImpl).version())) == keccak256(bytes("1.5.0")), + "dispute game factory implementation version mismatch" + ); + require( + keccak256(bytes(IAggregateVerifier(newAggregateVerifier).version())) == keccak256(bytes("0.2.0")), + "aggregate verifier version mismatch" + ); + require(newAggregateVerifier != oldAggregateVerifier, "aggregate verifier was not redeployed"); + require( + IAggregateVerifier(newAggregateVerifier).PROTOCOL_VERSIONS() == protocolVersionsProxy, + "aggregate verifier is not bound to the new registry" + ); + + require(protocolVersionsMinimumProtocolVersion != 0, "minimum protocol version not set"); + require(protocolVersionsMinimumProtocolVersion <= type(uint128).max, "minimum protocol version too large"); + } + + function _postCheck(Vm.AccountAccess[] memory, Simulation.Payload memory) internal view override { + require(_implementation(optimismPortal) == newOptimismPortalImpl, "portal implementation not updated"); + require(_implementation(systemConfig) == newSystemConfigImpl, "system config implementation not updated"); + require( + _implementation(disputeGameFactory) == newDisputeGameFactoryImpl, + "dispute game factory implementation not updated" + ); + require( + _implementation(protocolVersionsProxy) == protocolVersionsImpl, + "protocol versions implementation not updated" + ); + + // Each changed contract bumps its semver, so reading version() back through the proxy + // confirms it is serving the new code rather than just pointing at it. + require( + keccak256(bytes(IVersioned(optimismPortal).version())) == keccak256(bytes("6.0.0")), + "portal not serving the new implementation" + ); + require( + keccak256(bytes(IDisputeGameFactory(disputeGameFactory).version())) == keccak256(bytes("1.5.0")), + "dispute game factory not serving the new implementation" + ); + + // Dynamic upgrades: the registry is live and committed to the imported schedule. + IProtocolVersions registry = IProtocolVersions(protocolVersionsProxy); + require(keccak256(bytes(registry.version())) == keccak256(bytes("1.0.0")), "registry version mismatch"); + require(registry.incidentResponder() == protocolVersionsIncidentResponder, "registry responder mismatch"); + require( + registry.minimumProtocolVersion() == protocolVersionsMinimumProtocolVersion, + "registry minimum protocol version mismatch" + ); + + uint64[] memory schedule = registry.getSchedule(); + require(schedule.length == protocolVersionsInitialSchedule.length, "registry schedule length mismatch"); + for (uint256 i = 0; i < schedule.length; i++) { + require(schedule[i] == protocolVersionsInitialSchedule[i], "registry schedule entry mismatch"); + } + require(registry.scheduleId() == _expectedScheduleId(), "registry schedule commitment mismatch"); + + // CREATE2 dispute games: the factory keeps its full history and serves the new verifier. + require( + IDisputeGameFactory(disputeGameFactory).gameImpls(AGGREGATE_VERIFIER_GAME_TYPE) == newAggregateVerifier, + "aggregate verifier not registered" + ); + require( + keccak256(bytes(IAggregateVerifier(newAggregateVerifier).version())) == keccak256(bytes("0.2.0")), + "registered aggregate verifier is not the new build" + ); + require(IDisputeGameFactory(disputeGameFactory).gameCount() == gameCountBefore, "game count changed"); + + // EthLockbox removal must not move ETH, disturb the now-spacer slot, or change pause state. + require(optimismPortal.balance == portalBalanceBefore, "portal balance changed"); + require(vm.load(optimismPortal, PORTAL_ETH_LOCKBOX_SLOT) == portalLockboxSlotBefore, "portal slot 63 changed"); + require(ISystemConfig(systemConfig).paused() == pausedBefore, "pause state changed"); + require(ISystemConfig(systemConfig).gasLimit() == gasLimitBefore, "gas limit changed"); + require( + keccak256(bytes(ISystemConfig(systemConfig).version())) == keccak256(bytes("3.14.0+max-gas-limit-2000M")), + "system config lost the max gas limit patch" + ); + } + + /// @dev Recomputes the registry hash chain so the commitment is derived from the schedule this + /// script submitted rather than a pasted constant. + function _expectedScheduleId() internal view returns (bytes32) { + bytes32 link = bytes32(0); + for (uint256 i = 0; i < protocolVersionsInitialSchedule.length; i++) { + link = keccak256(abi.encode(link, i, protocolVersionsInitialSchedule[i])); + } + return link; + } + + function _implementation(address proxy) internal view returns (address) { + return address(uint160(uint256(vm.load(proxy, IMPLEMENTATION_SLOT)))); + } + + function _admin(address proxy) internal view returns (address) { + // EIP-1967 admin slot. + return + address( + uint160(uint256(vm.load(proxy, 0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103))) + ); + } + + function _ownerSafe() internal view override returns (address) { + return ownerSafe; + } +}