diff --git a/.github/workflows/validate-common-scripts.yml b/.github/workflows/validate-common-scripts.yml index 817b67b2..4dfbd1ed 100644 --- a/.github/workflows/validate-common-scripts.yml +++ b/.github/workflows/validate-common-scripts.yml @@ -14,10 +14,10 @@ concurrency: cancel-in-progress: true env: - # base-contracts v8.2.1 — the version the active/evm shared Foundry project + # base/contracts releases/v8.3.0 — the version the active/evm shared Foundry project # (active/evm/foundry.toml) and script/common/ are written against. Bump this # together with the task .env pins when moving to a newer base-contracts. - BASE_CONTRACTS_COMMIT: f3a33c8577c8ca1e037b45e822bfcb75f099270b + BASE_CONTRACTS_COMMIT: 385f21a41f277d287db92fffe88dca41299162ea jobs: validate-common: diff --git a/active/evm/script/common/verifier-update/DeployAggregateVerifier.s.sol b/active/evm/script/common/verifier-update/DeployAggregateVerifier.s.sol index d8958252..a35eaa58 100644 --- a/active/evm/script/common/verifier-update/DeployAggregateVerifier.s.sol +++ b/active/evm/script/common/verifier-update/DeployAggregateVerifier.s.sol @@ -6,6 +6,7 @@ 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"; @@ -35,6 +36,10 @@ contract DeployAggregateVerifier is Script { uint256 internal immutable currentL2ChainId; uint256 internal immutable currentBlockInterval; uint256 internal immutable currentIntermediateBlockInterval; + IProtocolVersions internal immutable currentProtocolVersions; + uint256 internal immutable currentL2GenesisBlockNumber; + uint64 internal immutable currentL2GenesisTimestamp; + uint64 internal immutable currentL2BlockTime; // Deployment output written to addresses.json. address public aggregateVerifier; @@ -58,6 +63,10 @@ contract DeployAggregateVerifier is Script { currentL2ChainId = currentAggregate.L2_CHAIN_ID(); currentBlockInterval = currentAggregate.BLOCK_INTERVAL(); currentIntermediateBlockInterval = currentAggregate.INTERMEDIATE_BLOCK_INTERVAL(); + currentProtocolVersions = currentAggregate.PROTOCOL_VERSIONS(); + currentL2GenesisBlockNumber = currentAggregate.L2_GENESIS_BLOCK_NUMBER(); + currentL2GenesisTimestamp = currentAggregate.L2_GENESIS_TIMESTAMP(); + currentL2BlockTime = currentAggregate.L2_BLOCK_TIME(); } function setUp() public view { @@ -92,7 +101,13 @@ contract DeployAggregateVerifier is Script { configHash: currentConfigHash, l2ChainId: currentL2ChainId, blockInterval: currentBlockInterval, - intermediateBlockInterval: currentIntermediateBlockInterval + intermediateBlockInterval: currentIntermediateBlockInterval, + scheduleConfig: AggregateVerifier.ScheduleConfig({ + protocolVersions: currentProtocolVersions, + genesisBlockNumber: currentL2GenesisBlockNumber, + genesisTimestamp: currentL2GenesisTimestamp, + blockTime: currentL2BlockTime + }) }) ); @@ -126,6 +141,10 @@ contract DeployAggregateVerifier is Script { av.INTERMEDIATE_BLOCK_INTERVAL() == currentIntermediateBlockInterval, "aggregate intermediate interval mismatch" ); + require(address(av.PROTOCOL_VERSIONS()) == address(currentProtocolVersions), "aggregate registry mismatch"); + require(av.L2_GENESIS_BLOCK_NUMBER() == currentL2GenesisBlockNumber, "aggregate genesis block mismatch"); + require(av.L2_GENESIS_TIMESTAMP() == currentL2GenesisTimestamp, "aggregate genesis timestamp mismatch"); + require(av.L2_BLOCK_TIME() == currentL2BlockTime, "aggregate l2 block time mismatch"); } function _writeAddresses() internal { @@ -136,5 +155,30 @@ contract DeployAggregateVerifier is Script { vm.serializeAddress({objectKey: root, valueKey: "aggregateVerifier", value: aggregateVerifier}); string memory path = vm.envString("ADDRESSES_JSON"); vm.writeJson({json: json, path: path}); + vm.writeJson( + vm.toString( + abi.encode( + currentGameType, + currentAnchorStateRegistry, + currentDelayedWeth, + IVerifier(currentTeeVerifier), + IVerifier(currentZkVerifier), + teeImageHashEnv, + AggregateVerifier.ZkHashes({rangeHash: zkRangeHashEnv, aggregateHash: zkAggregateHashEnv}), + currentConfigHash, + currentL2ChainId, + currentBlockInterval, + currentIntermediateBlockInterval, + AggregateVerifier.ScheduleConfig({ + protocolVersions: currentProtocolVersions, + genesisBlockNumber: currentL2GenesisBlockNumber, + genesisTimestamp: currentL2GenesisTimestamp, + blockTime: currentL2BlockTime + }) + ) + ), + path, + ".aggregateVerifierConstructorArgs" + ); } } diff --git a/active/evm/script/common/verifier-update/UpdateVerifierHashes.s.sol b/active/evm/script/common/verifier-update/UpdateVerifierHashes.s.sol index be68f9e4..b2265fc8 100644 --- a/active/evm/script/common/verifier-update/UpdateVerifierHashes.s.sol +++ b/active/evm/script/common/verifier-update/UpdateVerifierHashes.s.sol @@ -9,9 +9,11 @@ import {AggregateVerifier} from "@base-contracts/src/L1/proofs/AggregateVerifier import {GameType} from "@base-contracts/src/libraries/bridge/Types.sol"; interface IDisputeGameFactoryAdmin { + function gameArgs(GameType gameType) external view returns (bytes memory); + function gameCount() external view returns (uint256); function owner() external view returns (address); function gameImpls(GameType gameType) external view returns (address); - function setImplementation(GameType gameType, address impl, bytes calldata args) external; + function setImplementation(GameType gameType, address impl) external; } /// @notice Updates the live multiproof implementation in the DisputeGameFactory to @@ -32,6 +34,7 @@ contract UpdateVerifierHashes is MultisigScript { // Deployment output produced by the EOA script and read from addresses.json. address internal immutable nextAggregateVerifier; GameType internal immutable nextGameType; + uint256 internal immutable gameCountBefore; constructor() { ownerSafeEnv = vm.envAddress("PROXY_ADMIN_OWNER"); @@ -48,6 +51,7 @@ contract UpdateVerifierHashes is MultisigScript { nextAggregateVerifier = vm.parseJsonAddress({json: json, key: ".aggregateVerifier"}); nextGameType = AggregateVerifier(nextAggregateVerifier).gameType(); + gameCountBefore = IDisputeGameFactoryAdmin(disputeGameFactoryProxyEnv).gameCount(); } function setUp() public view { @@ -58,6 +62,14 @@ contract UpdateVerifierHashes is MultisigScript { require(teeImageHashEnv != bytes32(0), "tee image hash not set"); require(zkRangeHashEnv != bytes32(0), "zk range hash not set"); require(zkAggregateHashEnv != bytes32(0), "zk aggregate hash not set"); + require( + keccak256(bytes(AggregateVerifier(nextAggregateVerifier).version())) == keccak256(bytes("0.2.0")), + "next aggregate verifier version mismatch" + ); + require( + IDisputeGameFactoryAdmin(disputeGameFactoryProxyEnv).gameArgs(gameTypeEnv).length == 0, + "aggregate game args not empty" + ); AggregateVerifier currentAggregate = AggregateVerifier(currentAggregateVerifier); AggregateVerifier nextAggregate = AggregateVerifier(nextAggregateVerifier); @@ -68,6 +80,11 @@ contract UpdateVerifierHashes is MultisigScript { require(GameType.unwrap(nextGameType) == GameType.unwrap(gameTypeEnv), "next game type mismatch"); _assertUpdatedHashes(nextAggregate); + require( + teeImageHashEnv != currentAggregate.TEE_IMAGE_HASH() || zkRangeHashEnv != currentAggregate.ZK_RANGE_HASH() + || zkAggregateHashEnv != currentAggregate.ZK_AGGREGATE_HASH(), + "all hashes are identical to the current aggregate verifier" + ); _assertImmutableContinuity(currentAggregate, nextAggregate); } @@ -77,7 +94,7 @@ contract UpdateVerifierHashes is MultisigScript { calls[0] = Call({ operation: Enum.Operation.Call, target: disputeGameFactoryProxyEnv, - data: abi.encodeCall(IDisputeGameFactoryAdmin.setImplementation, (nextGameType, nextAggregateVerifier, "")), + data: abi.encodeCall(IDisputeGameFactoryAdmin.setImplementation, (nextGameType, nextAggregateVerifier)), value: 0 }); @@ -90,6 +107,8 @@ contract UpdateVerifierHashes is MultisigScript { AggregateVerifier nextAggregate = AggregateVerifier(nextAggregateVerifier); require(dgf.gameImpls(nextGameType) == nextAggregateVerifier, "dgf aggregate verifier mismatch"); + require(dgf.gameCount() == gameCountBefore, "game count changed"); + require(dgf.gameArgs(nextGameType).length == 0, "aggregate game args changed"); _assertUpdatedHashes(nextAggregate); _assertImmutableContinuity(currentAggregate, nextAggregate); @@ -135,6 +154,21 @@ contract UpdateVerifierHashes is MultisigScript { nextAggregate.INTERMEDIATE_BLOCK_INTERVAL() == currentAggregate.INTERMEDIATE_BLOCK_INTERVAL(), "next aggregate intermediate interval mismatch" ); + require( + address(nextAggregate.PROTOCOL_VERSIONS()) == address(currentAggregate.PROTOCOL_VERSIONS()), + "next aggregate registry mismatch" + ); + require( + nextAggregate.L2_GENESIS_BLOCK_NUMBER() == currentAggregate.L2_GENESIS_BLOCK_NUMBER(), + "next aggregate genesis block mismatch" + ); + require( + nextAggregate.L2_GENESIS_TIMESTAMP() == currentAggregate.L2_GENESIS_TIMESTAMP(), + "next aggregate genesis timestamp mismatch" + ); + require( + nextAggregate.L2_BLOCK_TIME() == currentAggregate.L2_BLOCK_TIME(), "next aggregate l2 block time mismatch" + ); } function _ownerSafe() internal view override returns (address) { diff --git a/archive/evm/2026-09-16-update-cobalt-verifier-hashes/FACILITATOR.md b/archive/evm/2026-09-16-update-cobalt-verifier-hashes/FACILITATOR.md new file mode 100644 index 00000000..7e03dc09 --- /dev/null +++ b/archive/evm/2026-09-16-update-cobalt-verifier-hashes/FACILITATOR.md @@ -0,0 +1,106 @@ +# Update Cobalt Verifier Hashes — Facilitator Guide + +This task redeploys Zeronet's game type 621 `AggregateVerifier` with updated proof program hashes +and registers it in the `DisputeGameFactory`. The three hashes are constructor immutables, so they +cannot be changed on the existing verifier. + +Replace `` with the rollout network, for example `zeronet`. Every command requires +`TASK_NETWORK` explicitly. Run everything from this directory +(`active/evm/tasks/2026-09-16-update-cobalt-verifier-hashes/`). + +## 1. Install dependencies + +```bash +make TASK_NETWORK= deps +``` + +This installs the `base/contracts` commit and dependencies used by the Cobalt deployment. The new +`AggregateVerifier` is compiled with the same 999999 optimizer runs and bytecode settings as the +verifier deployed by the original Cobalt task. + +## 2. Review the network config + +Open `config//.env` and confirm: + +- `GAME_TYPE` is 621 and resolves to the expected current `AggregateVerifier`. +- `TEE_IMAGE_HASH` is the PCR0 of the intended Nitro enclave image. +- `ZK_RANGE_HASH` is the intended SP1 range verification key. +- `ZK_AGGREGATE_HASH` is the intended SP1 aggregation verification key. + +The configured Zeronet changes are: + +| Hash | Current verifier | New verifier | +| --- | --- | --- | +| TEE image | `0xe8dc2300cf325b2527cbfa5e664a70acc40a9f2fc0617bd35cdfa61652a5fc30` | `0xb3d3746cf4b830046e9196dc196244d69fd96d3d436bd45ab84e35a9236f351f` | +| ZK range | `0x7713943c2c2412314b135c5606cdb3923a54f7555d91d9f31c2f64e34e16f2f4` | `0x776848834e7efcb029c48cf7215175b77098e8db28f27d2b074a64106f1c2b16` | +| ZK aggregation | `0x002663a1072dc1e1938e13d3b269fff88e843eb4ef76d6c6953dde4f5152973b` | `0x002663a1072dc1e1938e13d3b269fff88e843eb4ef76d6c6953dde4f5152973b` | + +The aggregation key intentionally stays unchanged. The deploy script refuses to run if any new +hash is zero or all three hashes match the current verifier. Confirm and record the exact +`base/base` release or commit used to produce the TEE measurement and ZK keys before deployment. + +## 3. Deploy and verify + +```bash +make TASK_NETWORK= deploy +VERIFIER_API_KEY= make TASK_NETWORK= verify +``` + +The shared deploy script reads every unchanged constructor value from the currently registered verifier: + +- game type, anchor state registry, delayed WETH, TEE verifier, and ZK verifier; +- config hash, L2 chain ID, block intervals; +- `ProtocolVersions` registry; and +- L2 genesis block, genesis timestamp, and block time. + +Only the three configured proof program hashes are supplied independently. The script checks every +copied immutable after deployment and writes the new verifier address and encoded constructor +arguments to `config//addresses.json`. + +Commit `config//addresses.json` and the task-scoped `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`. +For Zeronet, remove the generated `taskOriginConfig` and add +`"skipTaskOriginValidation": true` at the JSON root before committing the files. + +## 5. Collect signatures and execute + +The `DisputeGameFactory` owner is the same 2-of-2 Safe used by the Cobalt upgrade, so the Coinbase +multisig and Security Council each approve their 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 pre- and postconditions and reverts instead of registering an unexpected +verifier. + +## What the transaction does + +One call from the `DisputeGameFactory` owner Safe: + +```text +DisputeGameFactory.setImplementation(621, newAggregateVerifier) +``` + +This changes the implementation used when creating new game type 621 games. Existing games remain +bound to the implementation with which they were created. The task also asserts that the game +count and game constructor arguments do not change. + +## Worth re-checking before signing + +- **The version string remains `0.2.0`.** Confirm the new verifier by its address and the three hash + getters rather than by `version()` alone. +- **Only the proof program hashes should change.** All other constructor immutables are copied from + the live verifier and checked after deployment and registration. +- **The old verifier remains deployed.** The factory mapping changes for new games; this task does + not alter or migrate existing games. diff --git a/archive/evm/2026-09-16-update-cobalt-verifier-hashes/Makefile b/archive/evm/2026-09-16-update-cobalt-verifier-hashes/Makefile new file mode 100644 index 00000000..7a0f00e6 --- /dev/null +++ b/archive/evm/2026-09-16-update-cobalt-verifier-hashes/Makefile @@ -0,0 +1,101 @@ +include ../../../../Makefile +include $(REPO_ROOT)/Multisig.mk + +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) + +TASK_DIR := tasks/2026-09-16-update-cobalt-verifier-hashes +ADDRESSES_JSON := $(CURDIR)/config/$(TASK_NETWORK)/addresses.json +FORGE_ADDRESSES_JSON := $(TASK_DIR)/config/$(TASK_NETWORK)/addresses.json +DEPLOY_SCRIPT := script/common/verifier-update/DeployAggregateVerifier.s.sol:DeployAggregateVerifier +UPDATE_SCRIPT := script/common/verifier-update/UpdateVerifierHashes.s.sol:UpdateVerifierHashes +SCRIPT_NAME := $(UPDATE_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_AGGREGATE_VERIFIER = $(shell jq -er '.aggregateVerifier' $(ADDRESSES_JSON) 2>/dev/null) +AGGREGATE_VERIFIER_CTOR_ARGS = $(shell jq -er '.aggregateVerifierConstructorArgs' $(ADDRESSES_JSON) 2>/dev/null) + +HASH_ENV = DISPUTE_GAME_FACTORY_PROXY=$(DISPUTE_GAME_FACTORY_PROXY) \ + GAME_TYPE=$(GAME_TYPE) \ + TEE_IMAGE_HASH=$(TEE_IMAGE_HASH) \ + ZK_RANGE_HASH=$(ZK_RANGE_HASH) \ + ZK_AGGREGATE_HASH=$(ZK_AGGREGATE_HASH) \ + ADDRESSES_JSON=$(FORGE_ADDRESSES_JSON) + +UPDATE_ENV = PROXY_ADMIN_OWNER=$(PROXY_ADMIN_OWNER) $(HASH_ENV) + +.PHONY: deps +deps: task-extra-deps + +.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 + +COBALT_BUILD = FOUNDRY_OPTIMIZER=true FOUNDRY_OPTIMIZER_RUNS=999999 \ + FOUNDRY_BYTECODE_HASH=none FOUNDRY_EVM_VERSION=cancun + +.PHONY: deploy +deploy: + @test -f "$(ADDRESSES_JSON)" || echo '{}' > "$(ADDRESSES_JSON)" + cd $(PROJECT_DIR) && $(HASH_ENV) $(COBALT_BUILD) \ + $(MISE_EXEC) forge script --rpc-url $(L1_RPC_URL) $(DEPLOY_SCRIPT) \ + --ledger --hd-paths $(LEDGER_HD_PATH) --broadcast -vvvv + +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_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 +verify: +ifndef VERIFIER_API_KEY + $(error VERIFIER_API_KEY is not set) +endif + @set -e; $(LINK_VERIFY_DEPS); \ + cd $(PROJECT_DIR); \ + RUST_LOG=off $(COBALT_BUILD) \ + $(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) + +.PHONY: gen-validation-cb +gen-validation-cb: deps-signer-tool + $(call GEN_VALIDATION,$(UPDATE_SCRIPT),$(CB_MULTISIG),$(CB_SENDER),base-signer.json,$(UPDATE_ENV)) + +.PHONY: gen-validation-sc +gen-validation-sc: deps-signer-tool + $(call GEN_VALIDATION,$(UPDATE_SCRIPT),$(BASE_SECURITY_COUNCIL),$(SC_SENDER),security-council-signer.json,$(UPDATE_ENV)) + +.PHONY: approve-cb +approve-cb: + export $(UPDATE_ENV); $(call MULTISIG_APPROVE,$(CB_MULTISIG),$(SIGNATURES)) + +.PHONY: approve-sc +approve-sc: + export $(UPDATE_ENV); $(call MULTISIG_APPROVE,$(BASE_SECURITY_COUNCIL),$(SIGNATURES)) + +.PHONY: execute +execute: + export $(UPDATE_ENV); $(call MULTISIG_EXECUTE,0x) diff --git a/archive/evm/2026-09-16-update-cobalt-verifier-hashes/config/zeronet/.env b/archive/evm/2026-09-16-update-cobalt-verifier-hashes/config/zeronet/.env new file mode 100644 index 00000000..72e98619 --- /dev/null +++ b/archive/evm/2026-09-16-update-cobalt-verifier-hashes/config/zeronet/.env @@ -0,0 +1,7 @@ +# https://github.com/base/contracts/commits/releases/v8.3.0/ +BASE_CONTRACTS_COMMIT=385f21a41f277d287db92fffe88dca41299162ea + +GAME_TYPE=621 +TEE_IMAGE_HASH=0xb3d3746cf4b830046e9196dc196244d69fd96d3d436bd45ab84e35a9236f351f +ZK_RANGE_HASH=0x776848834e7efcb029c48cf7215175b77098e8db28f27d2b074a64106f1c2b16 +ZK_AGGREGATE_HASH=0x002663a1072dc1e1938e13d3b269fff88e843eb4ef76d6c6953dde4f5152973b diff --git a/archive/evm/2026-09-16-update-cobalt-verifier-hashes/config/zeronet/README.md b/archive/evm/2026-09-16-update-cobalt-verifier-hashes/config/zeronet/README.md new file mode 100644 index 00000000..27c258ea --- /dev/null +++ b/archive/evm/2026-09-16-update-cobalt-verifier-hashes/config/zeronet/README.md @@ -0,0 +1,31 @@ +# Update Cobalt Verifier Hashes + +Status: [EXECUTED](https://hoodi.etherscan.io/tx/0x4558683a4689db8d1924af4a8be6562c8aaa1ef485e1f645298bfb506e83900e) + +## Description + +Redeploys Zeronet's game type 621 `AggregateVerifier` with updated TEE and ZK proof program hashes, +then registers it in the `DisputeGameFactory`. Every other constructor value is copied from the +currently registered verifier. + +No ETH moves and existing dispute games are unchanged. + +## Targets + +| Contract | Address | +| -- | -- | +| `DisputeGameFactory` proxy | `0xd930E0CebD52d7C77b8f900De242e818506C5474` | +| Current `AggregateVerifier` | `0x2504B1c3B78B2711e24eadF7eA077b0cA1b91859` | +| New `AggregateVerifier` | `0x90ab3A3a747a60EF56919574dA1766F20ACEe21C` | + +The new verifier was [deployed](https://hoodi.etherscan.io/tx/0xc9559e196f8cdf49bbeb87fe16e6434dc1cef4e6397a476ce80ee658ce9bb81c). + +## Sign + +From the repository root: + +```bash +make sign-task +``` + +Select this Zeronet task, sign, and send the signature to the facilitator. diff --git a/archive/evm/2026-09-16-update-cobalt-verifier-hashes/config/zeronet/addresses.json b/archive/evm/2026-09-16-update-cobalt-verifier-hashes/config/zeronet/addresses.json new file mode 100644 index 00000000..4e63f2d9 --- /dev/null +++ b/archive/evm/2026-09-16-update-cobalt-verifier-hashes/config/zeronet/addresses.json @@ -0,0 +1,4 @@ +{ + "aggregateVerifier": "0x90ab3A3a747a60EF56919574dA1766F20ACEe21C", + "aggregateVerifierConstructorArgs": "0x000000000000000000000000000000000000000000000000000000000000026d000000000000000000000000bfb20170b82c474b136bc5a062aca47a3cb8cf680000000000000000000000005af90fde02b46e202f6232b3ede25b3f602ac67300000000000000000000000042fa446d95a5b61a7be02949042954a60315fb0f0000000000000000000000005b997cd8fafa026882aec7d0558c9cc47221f84eb3d3746cf4b830046e9196dc196244d69fd96d3d436bd45ab84e35a9236f351f776848834e7efcb029c48cf7215175b77098e8db28f27d2b074a64106f1c2b16002663a1072dc1e1938e13d3b269fff88e843eb4ef76d6c6953dde4f5152973bd14ddabfc0ad1dd737d6e5917cf271fd479bd539c9b3d85a602589c679a9983a00000000000000000000000000000000000000000000000000000000000ba5e00000000000000000000000000000000000000000000000000000000000000258000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000030e172aac675c9fe5a64792f92c9fd4d3e7ca9da0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006a3c7b2c0000000000000000000000000000000000000000000000000000000000000002" +} \ No newline at end of file diff --git a/archive/evm/2026-09-16-update-cobalt-verifier-hashes/config/zeronet/validations/base-signer.json b/archive/evm/2026-09-16-update-cobalt-verifier-hashes/config/zeronet/validations/base-signer.json new file mode 100644 index 00000000..a2aaaedb --- /dev/null +++ b/archive/evm/2026-09-16-update-cobalt-verifier-hashes/config/zeronet/validations/base-signer.json @@ -0,0 +1,92 @@ +{ + "cmd": "PROXY_ADMIN_OWNER=0x3d59999977e0896ee1f8783bb8251df16fb483e9 DISPUTE_GAME_FACTORY_PROXY=0xd930e0cebd52d7c77b8f900de242e818506c5474 GAME_TYPE=621 TEE_IMAGE_HASH=0xb3d3746cf4b830046e9196dc196244d69fd96d3d436bd45ab84e35a9236f351f ZK_RANGE_HASH=0x776848834e7efcb029c48cf7215175b77098e8db28f27d2b074a64106f1c2b16 ZK_AGGREGATE_HASH=0x002663a1072dc1e1938e13d3b269fff88e843eb4ef76d6c6953dde4f5152973b ADDRESSES_JSON=tasks/2026-09-16-update-cobalt-verifier-hashes/config/zeronet/addresses.json mise exec -- forge script --rpc-url https://c3-chainproxy-eth-hoodi-full-dev.cbhq.net script/common/verifier-update/UpdateVerifierHashes.s.sol:UpdateVerifierHashes --sig sign(address[]) [0x856611ed7e07d83243b15e93f6321f2df6865852] --sender 0x2c1475476B586d66a85bC65A5aB396BBbAa4f3aD", + "ledgerId": 1, + "rpcUrl": "https://c3-chainproxy-eth-hoodi-full-dev.cbhq.net", + "expectedDomainAndMessageHashes": { + "address": "0x3d59999977e0896ee1f8783bB8251DF16fb483E9", + "domainHash": "0xc88eae2baaa4c8513a3d87913666de9463f106158aaf8be5cd31588215ccd5c4", + "messageHash": "0x89c2554e3b87c76c7511cb1397c0a2336725db77f81fc596f0dbb4843b64ba56" + }, + "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": "0xee872b31427905b76954b2c6fc4ca9897d7f4c83c2a1edf1d249c69d157c5485", + "value": "0x0000000000000000000000000000000000000000000000000000000000000001", + "description": "Simulates an approval from msg.sender in order for the task simulation to succeed.", + "allowDifference": false + } + ] + } + ], + "stateChanges": [ + { + "name": "Proxy Admin Owner - Zeronet", + "address": "0x3d59999977e0896ee1f8783bB8251DF16fb483E9", + "changes": [ + { + "key": "0x0000000000000000000000000000000000000000000000000000000000000005", + "before": "0x0000000000000000000000000000000000000000000000000000000000000018", + "after": "0x0000000000000000000000000000000000000000000000000000000000000019", + "description": "Increments the nonce", + "allowDifference": false + }, + { + "key": "0x24fa0a6079b99b3f796bab0656f01c3865b41c6c92376852b20ef39109a48a2a", + "before": "0x0000000000000000000000000000000000000000000000000000000000000000", + "after": "0x0000000000000000000000000000000000000000000000000000000000000001", + "description": "Records the nested Safe approval of the AggregateVerifier hash update transaction from the Coinbase signer Safe.", + "allowDifference": false + } + ] + }, + { + "name": "CB Signer Safe - Zeronet", + "address": "0x856611eD7E07D83243b15E93f6321f2df6865852", + "changes": [ + { + "key": "0x0000000000000000000000000000000000000000000000000000000000000005", + "before": "0x000000000000000000000000000000000000000000000000000000000000001f", + "after": "0x0000000000000000000000000000000000000000000000000000000000000020", + "description": "Increments the nonce", + "allowDifference": false + } + ] + }, + { + "name": "DisputeGameFactory - Zeronet", + "address": "0xD930e0cebD52D7C77b8F900dE242E818506C5474", + "changes": [ + { + "key": "0x32912047a4c082de3e601c4b381c2aa6252270818a4be33442b17fb41b6cf7d6", + "before": "0x0000000000000000000000002504b1c3b78b2711e24eadf7ea077b0ca1b91859", + "after": "0x00000000000000000000000090ab3a3a747a60ef56919574da1766f20acee21c", + "description": "Updates gameImpls[621] from 0x2504B1c3B78B2711e24eadF7eA077b0cA1b91859 to 0x90ab3A3a747a60EF56919574dA1766F20ACEe21C so new game type 621 games use the AggregateVerifier with the updated proof program hashes.", + "allowDifference": false + } + ] + } + ], + "balanceChanges": [], + "skipTaskOriginValidation": true +} diff --git a/archive/evm/2026-09-16-update-cobalt-verifier-hashes/config/zeronet/validations/security-council-signer.json b/archive/evm/2026-09-16-update-cobalt-verifier-hashes/config/zeronet/validations/security-council-signer.json new file mode 100644 index 00000000..6a20d204 --- /dev/null +++ b/archive/evm/2026-09-16-update-cobalt-verifier-hashes/config/zeronet/validations/security-council-signer.json @@ -0,0 +1,86 @@ +{ + "cmd": "PROXY_ADMIN_OWNER=0x3d59999977e0896ee1f8783bb8251df16fb483e9 DISPUTE_GAME_FACTORY_PROXY=0xd930e0cebd52d7c77b8f900de242e818506c5474 GAME_TYPE=621 TEE_IMAGE_HASH=0xb3d3746cf4b830046e9196dc196244d69fd96d3d436bd45ab84e35a9236f351f ZK_RANGE_HASH=0x776848834e7efcb029c48cf7215175b77098e8db28f27d2b074a64106f1c2b16 ZK_AGGREGATE_HASH=0x002663a1072dc1e1938e13d3b269fff88e843eb4ef76d6c6953dde4f5152973b ADDRESSES_JSON=tasks/2026-09-16-update-cobalt-verifier-hashes/config/zeronet/addresses.json mise exec -- forge script --rpc-url https://c3-chainproxy-eth-hoodi-full-dev.cbhq.net script/common/verifier-update/UpdateVerifierHashes.s.sol:UpdateVerifierHashes --sig sign(address[]) [0xC4c0aD998B5DfA4CF4B298970F21b9015a5eE7bA] --sender 0x2c1475476B586d66a85bC65A5aB396BBbAa4f3aD", + "ledgerId": 1, + "rpcUrl": "https://c3-chainproxy-eth-hoodi-full-dev.cbhq.net", + "expectedDomainAndMessageHashes": { + "address": "0x3d59999977e0896ee1f8783bB8251DF16fb483E9", + "domainHash": "0x1e2faea9157fbff31d9297595a71e2dedfeb1184207c07bb6bd64f807332a525", + "messageHash": "0x5a3d43e31e3b7e72131930b9dfcd1b38c8c3ad3ad8b57ccabd6b68a167dc02d5" + }, + "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": "0xc54de8403dab6d1411fd420cef72544601777c89b847554d84840c469330e5fe", + "value": "0x0000000000000000000000000000000000000000000000000000000000000001", + "description": "Simulates an approval from msg.sender in order for the task simulation to succeed.", + "allowDifference": false + } + ] + } + ], + "stateChanges": [ + { + "name": "Proxy Admin Owner - Zeronet", + "address": "0x3d59999977e0896ee1f8783bB8251DF16fb483E9", + "changes": [ + { + "key": "0x0000000000000000000000000000000000000000000000000000000000000005", + "before": "0x0000000000000000000000000000000000000000000000000000000000000018", + "after": "0x0000000000000000000000000000000000000000000000000000000000000019", + "description": "Increments the nonce", + "allowDifference": false + }, + { + "key": "0xe544e056caaf7574cda77dbd0bcdb5d26b416bba9eb80d6848f89dfbd971c398", + "before": "0x0000000000000000000000000000000000000000000000000000000000000000", + "after": "0x0000000000000000000000000000000000000000000000000000000000000001", + "description": "Records the nested Safe approval of the AggregateVerifier hash update transaction from the Security Council Safe.", + "allowDifference": false + } + ] + }, + { + "name": "Security Council Safe - Zeronet", + "address": "0xC4c0aD998B5DfA4CF4B298970F21b9015a5eE7bA", + "changes": [ + { + "key": "0x0000000000000000000000000000000000000000000000000000000000000005", + "before": "0x000000000000000000000000000000000000000000000000000000000000001b", + "after": "0x000000000000000000000000000000000000000000000000000000000000001c", + "description": "Increments the nonce", + "allowDifference": false + } + ] + }, + { + "name": "DisputeGameFactory - Zeronet", + "address": "0xD930e0cebD52D7C77b8F900dE242E818506C5474", + "changes": [ + { + "key": "0x32912047a4c082de3e601c4b381c2aa6252270818a4be33442b17fb41b6cf7d6", + "before": "0x0000000000000000000000002504b1c3b78b2711e24eadf7ea077b0ca1b91859", + "after": "0x00000000000000000000000090ab3a3a747a60ef56919574da1766f20acee21c", + "description": "Updates gameImpls[621] from 0x2504B1c3B78B2711e24eadF7eA077b0cA1b91859 to 0x90ab3A3a747a60EF56919574dA1766F20ACEe21C so new game type 621 games use the AggregateVerifier with the updated proof program hashes.", + "allowDifference": false + } + ] + } + ], + "balanceChanges": [], + "skipTaskOriginValidation": true +} diff --git a/archive/evm/2026-09-16-update-cobalt-verifier-hashes/records/DeployAggregateVerifier.s.sol/560048/run-1789581325124.json b/archive/evm/2026-09-16-update-cobalt-verifier-hashes/records/DeployAggregateVerifier.s.sol/560048/run-1789581325124.json new file mode 100644 index 00000000..4c95709f --- /dev/null +++ b/archive/evm/2026-09-16-update-cobalt-verifier-hashes/records/DeployAggregateVerifier.s.sol/560048/run-1789581325124.json @@ -0,0 +1,59 @@ +{ + "transactions": [ + { + "hash": "0xc9559e196f8cdf49bbeb87fe16e6434dc1cef4e6397a476ce80ee658ce9bb81c", + "transactionType": "CREATE", + "contractName": "AggregateVerifier", + "contractAddress": "0x90ab3a3a747a60ef56919574da1766f20acee21c", + "function": null, + "arguments": [ + "621", + "0xbFB20170B82C474b136bc5a062aca47A3Cb8cF68", + "0x5af90fdE02b46e202F6232b3eDE25b3F602AC673", + "0x42FA446d95A5B61A7bE02949042954a60315Fb0f", + "0x5B997cD8fAFA026882AEc7D0558c9cc47221F84e", + "0xb3d3746cf4b830046e9196dc196244d69fd96d3d436bd45ab84e35a9236f351f", + "(0x776848834e7efcb029c48cf7215175b77098e8db28f27d2b074a64106f1c2b16, 0x002663a1072dc1e1938e13d3b269fff88e843eb4ef76d6c6953dde4f5152973b)", + "0xd14ddabfc0ad1dd737d6e5917cf271fd479bd539c9b3d85a602589c679a9983a", + "763360", + "600", + "30", + "(0x30e172aaC675c9fe5A64792F92C9fD4d3E7cA9Da, 0, 1782348588, 2)" + ], + "transaction": { + "from": "0x2c1475476b586d66a85bc65a5ab396bbbaa4f3ad", + "gas": "0x529572", + "value": "0x0", + "input": "0x6102c06040523480156200001257600080fd5b506040516200514238038062005142833981016040819052620000359162000333565b82158062000041575081155b806200005757506200005482846200041e565b15155b15620000845760405163462b853960e11b8152600481018490526024810183905260440160405180910390fd5b80606001516001600160401b0316600003620000b357604051637ccf8b6960e01b815260040160405180910390fd5b63ffffffff8c16610280526001600160a01b038b1660808190526040805163f2b4e61760e01b8152905163f2b4e617916004808201926020929091908290030181865afa15801562000109573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200012f919062000435565b6001600160a01b0390811660a0528a811660c05289811660e05288811661012052610100889052865161014052602087810151610160526101808790526101a08690528201516101c05260408201516001600160401b039081166101e052606083015116610200526102208490526102408390528151166102a052620001b4620001e5565b620001c190602062000472565b620001ce90608e62000494565b6102605250620004c69a5050505050505050505050565b60006102405161022051620001fb9190620004af565b905090565b6001600160a01b03811681146200021657600080fd5b50565b8051620002268162000200565b919050565b6000604082840312156200023e57600080fd5b604080519081016001600160401b03811182821017156200026f57634e487b7160e01b600052604160045260246000fd5b604052825181526020928301519281019290925250919050565b80516001600160401b03811681146200022657600080fd5b600060808284031215620002b457600080fd5b604051608081016001600160401b0381118282101715620002e557634e487b7160e01b600052604160045260246000fd5b80604052508091508251620002fa8162000200565b815260208381015190820152620003146040840162000289565b6040820152620003276060840162000289565b60608201525092915050565b6000806000806000806000806000806000806102008d8f0312156200035757600080fd5b8c5163ffffffff811681146200036c57600080fd5b9b506200037c60208e0162000219565b9a506200038c60408e0162000219565b99506200039c60608e0162000219565b9850620003ac60808e0162000219565b975060a08d01519650620003c48e60c08f016200022b565b95506101008d015194506101208d015193506101408d015192506101608d01519150620003f68e6101808f01620002a1565b90509295989b509295989b509295989b565b634e487b7160e01b600052601260045260246000fd5b60008262000430576200043062000408565b500690565b6000602082840312156200044857600080fd5b8151620004558162000200565b9392505050565b634e487b7160e01b600052601160045260246000fd5b60008160001904831182151516156200048f576200048f6200045c565b500290565b60008219821115620004aa57620004aa6200045c565b500190565b600082620004c157620004c162000408565b500490565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516101c0516101e05161020051610220516102405161026051610280516102a051614a74620006ce60003960008181610b280152611d52015260008181610b9601528181611e340152612f2e015260006116060152600081816108800152818161255601528181613ca20152613cdd01526000818161065a015281816119a701528181611a0801526125770152600081816103a101528181611bbe0152611c720152600081816109d801528181611be20152611c9e015260008181610d1601528181611b0b01528181611b600152611b9301526000610970015260008181610cc201528181613e4d015261402b015260008181610a0c015261412b0152600081816109a4015261404c015260008181610abc0152818161285f0152818161335f01526140fa01526000818161045701528181613e6e0152613f72015260008181610507015281816128fd015281816132700152613f43015260008181610c3601528181610f2b0152818161106001526121440152600061093c0152600081816107de015281816117380152818161190501528181611e5c015281816122a8015281816123f9015281816124e001528181612fa701528181613078015281816131300152818161344901528181613502015281816135b901526136720152614a746000f3fe60806040526004361061038a5760003560e01c80636dc86e81116101dc578063addecc0611610102578063c26783e9116100a0578063d28cb06f1161006f578063d28cb06f14610cb0578063e41f96ad14610ce4578063f629dbb514610d04578063fa24f74314610d3857600080fd5b8063c26783e914610c24578063cf09e0d014610c58578063cfcf984b14610c79578063d1ee5e4b14610c9957600080fd5b8063b97cb80f116100dc578063b97cb80f14610b5f578063bbdc02db14610b7f578063bcef3b5514610bc0578063bdb337d114610c0057600080fd5b8063addecc0614610ade578063aef2f96e14610b16578063b74df35a14610b4a57600080fd5b80638417d3c21161017a5780639730163d116101495780639730163d14610a2e5780639840fd8414610a4457806399735e3214610a6a5780639ded395214610aaa57600080fd5b80638417d3c21461095e57806387d34f1614610992578063895dbafe146109c6578063908cb80e146109fa57600080fd5b8063786b844b116101b6578063786b844b146108cc5780637a6bc9e1146108e157806380f323a71461091457806382ff53a11461092a57600080fd5b80636dc86e811461086e57806370872aa5146108a257806374f8bf32146108b757600080fd5b806328c802cd116102c157806349edf35a1161025f5780635c0cba331161022e5780635c0cba33146107cf578063609d3334146108025780636361506d1461081757806364d121361461085757600080fd5b806349edf35a146107235780634e95eb581461074357806354fd4d501461075957806357da950e1461079f57600080fd5b806337b1b2291161029b57806337b1b2291461067c5780633fada3fd146106bc5780634224b1e7146106ee578063423161821461070157600080fd5b806328c802cd1461061c578063324a13c91461063257806335c4377b1461064857600080fd5b80631f8375741161032e578063250e69bd11610308578063250e69bd1461059157806325fc2ace146105d15780632810e1d6146105e65780632845e5bb146105fb57600080fd5b80631f837574146104f5578063200d2ed21461052957806323edb2e01461056457600080fd5b806310fbee281161036a57806310fbee28146104875780631333db2e1461049c57806319effeb4146104b35780631ee5d7c8146104e057600080fd5b80622134cc1461038f578062821de3146103e15780630183fd4414610445575b600080fd5b34801561039b57600080fd5b506103c37f000000000000000000000000000000000000000000000000000000000000000081565b60405167ffffffffffffffff90911681526020015b60405180910390f35b3480156103ed57600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036074013560601c5b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016103d8565b34801561045157600080fd5b506104797f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020016103d8565b34801561049357600080fd5b50610479600181565b3480156104a857600080fd5b506104b1610d61565b005b3480156104bf57600080fd5b506000546103c39068010000000000000000900467ffffffffffffffff1681565b3480156104ec57600080fd5b506104206111bf565b34801561050157600080fd5b506104207f000000000000000000000000000000000000000000000000000000000000000081565b34801561053557600080fd5b5060005461055790700100000000000000000000000000000000900460ff1681565b6040516103d891906143ee565b34801561057057600080fd5b506003546104209073ffffffffffffffffffffffffffffffffffffffff1681565b34801561059d57600080fd5b506000546105c1907201000000000000000000000000000000000000900460ff1681565b60405190151581526020016103d8565b3480156105dd57600080fd5b50600154610479565b3480156105f257600080fd5b50610557611203565b34801561060757600080fd5b506007546103c39067ffffffffffffffff1681565b34801561062857600080fd5b5061047960085481565b34801561063e57600080fd5b5061047960055481565b34801561065457600080fd5b506104797f000000000000000000000000000000000000000000000000000000000000000081565b34801561068857600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90033560601c610420565b3480156106c857600080fd5b506003546105c19074010000000000000000000000000000000000000000900460ff1681565b6104b16106fc366004614451565b61157b565b34801561070d57600080fd5b506107166121c6565b6040516103d89190614509565b34801561072f57600080fd5b5061047961073e366004614523565b6121e5565b34801561074f57600080fd5b5061047961010081565b34801561076557600080fd5b5060408051808201909152600581527f302e322e300000000000000000000000000000000000000000000000000000006020820152610716565b3480156107ab57600080fd5b506001546002546107ba919082565b604080519283526020830191909152016103d8565b3480156107db57600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610420565b34801561080e57600080fd5b50610716612275565b34801561082357600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360340135610479565b34801561086357600080fd5b506103c36201518081565b34801561087a57600080fd5b506104797f000000000000000000000000000000000000000000000000000000000000000081565b3480156108ae57600080fd5b50600254610479565b3480156108c357600080fd5b5061042061229a565b3480156108d857600080fd5b506104b16122a6565b3480156108ed57600080fd5b506003546105c1907501000000000000000000000000000000000000000000900460ff1681565b34801561092057600080fd5b5061047960045481565b34801561093657600080fd5b506104207f000000000000000000000000000000000000000000000000000000000000000081565b34801561096a57600080fd5b506104797f000000000000000000000000000000000000000000000000000000000000000081565b34801561099e57600080fd5b506104797f000000000000000000000000000000000000000000000000000000000000000081565b3480156109d257600080fd5b506103c37f000000000000000000000000000000000000000000000000000000000000000081565b348015610a0657600080fd5b506104797f000000000000000000000000000000000000000000000000000000000000000081565b348015610a3a57600080fd5b50610479611fff81565b348015610a5057600080fd5b5061042071f90827f1c53a10cb7a02335b17532000293581565b348015610a7657600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360540135610479565b348015610ab657600080fd5b506104207f000000000000000000000000000000000000000000000000000000000000000081565b348015610aea57600080fd5b50600754610b049068010000000000000000900460ff1681565b60405160ff90911681526020016103d8565b348015610b2257600080fd5b506104207f000000000000000000000000000000000000000000000000000000000000000081565b348015610b5657600080fd5b5061047961254f565b348015610b6b57600080fd5b506104b1610b7a36600461453c565b61259b565b348015610b8b57600080fd5b5060405163ffffffff7f00000000000000000000000000000000000000000000000000000000000000001681526020016103d8565b348015610bcc57600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360140135610479565b348015610c0c57600080fd5b506007544267ffffffffffffffff90911611156105c1565b348015610c3057600080fd5b506104207f000000000000000000000000000000000000000000000000000000000000000081565b348015610c6457600080fd5b506000546103c39067ffffffffffffffff1681565b348015610c8557600080fd5b506104b1610c94366004614451565b612986565b348015610ca557600080fd5b506103c36206978081565b348015610cbc57600080fd5b506104797f000000000000000000000000000000000000000000000000000000000000000081565b348015610cf057600080fd5b506104b1610cff36600461453c565b612b47565b348015610d1057600080fd5b506104797f000000000000000000000000000000000000000000000000000000000000000081565b348015610d4457600080fd5b50610d4d612f27565b6040516103d89392919061458d565b905090565b600268929eee149b4bd212685403610d815763ab143c066000526004601cfd5b600268929eee149b4bd21268556003547501000000000000000000000000000000000000000000900460ff1615610de4576040517f17bfe5f700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60075467ffffffffffffffff90811614610e595760005468010000000000000000900467ffffffffffffffff1667ffffffffffffffff16600003610e54576040517fc105260a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610eb6565b60005467ffffffffffffffff16610e7390621275006145ea565b67ffffffffffffffff16421015610eb6576040517f04643c3900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60035474010000000000000000000000000000000000000000900460ff16610fce57600354600480546040517f7eee288d00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9384169281019290925260248201527f000000000000000000000000000000000000000000000000000000000000000090911690637eee288d90604401600060405180830381600087803b158015610f7157600080fd5b505af1158015610f85573d6000803e3d6000fd5b5050600380547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674010000000000000000000000000000000000000000179055506111b09050565b6003805475010000000000000000000000000000000000000000007fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff821617909155600480546040517ff3fef3a300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9384169281019290925260248201527f00000000000000000000000000000000000000000000000000000000000000009091169063f3fef3a390604401600060405180830381600087803b1580156110a657600080fd5b505af11580156110ba573d6000803e3d6000fd5b50506003546004546040516000945073ffffffffffffffffffffffffffffffffffffffff9092169250908381818185875af1925050503d806000811461111c576040519150601f19603f3d011682016040523d82523d6000602084013e611121565b606091505b505090508061115c576040517f83e6cc6b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60035460045460405190815273ffffffffffffffffffffffffffffffffffffffff909116907f87e12c2565042763daa6bf5842ed2b6447f17f7e28f9a4905fe3959581396ead9060200160405180910390a2505b600168929eee149b4bd2126855565b6000600681805b60018111156111d7576111d76143bf565b815260208101919091526040016000205473ffffffffffffffffffffffffffffffffffffffff16919050565b600080600054700100000000000000000000000000000000900460ff166002811115611231576112316143bf565b14611268576040517ff1a9458100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000611272612f8e565b90506000816002811115611288576112886143bf565b036112bf576040517f92c506ae00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60018160028111156112d3576112d36143bf565b0361131857600080547fffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff167001000000000000000000000000000000001790556114cc565b611320613223565b15611344575050600054700100000000000000000000000000000000900460ff1690565b6007544267ffffffffffffffff909116111561138c576040517f04643c3900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60075460016801000000000000000090910460ff1610156113d9576040517f344de4bf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6005541561149057600080547fffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff167001000000000000000000000000000000001781556001905260066020527f3e5fec24aa4dc4e5aee2e025e51e1392c72a2500577559fae9665c6d52bd6a3154600380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9092169190911790556114cc565b600080547fffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff167002000000000000000000000000000000001790555b600080547fffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff16680100000000000000004267ffffffffffffffff160217908190556040517f5e186f09b9c93491f14e277eea7faa5de6a2d4bda75a79af7a3684fbfb42da60916115549170010000000000000000000000000000000090910460ff16906143ee565b60405180910390a15050600054700100000000000000000000000000000000900460ff1690565b60005471010000000000000000000000000000000000900460ff16156115cd576040517f0dc149f000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000602060016115dd8483614616565b6115e7919061462e565b6115f19190614674565b6115fc906020614688565b905060008161162c7f00000000000000000000000000000000000000000000000000000000000000006040614616565b6116369190614616565b905080361461164d57639824bdab6000526004601cfd5b611684367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036014013590565b90565b61169b600161169161254f565b61073e919061462e565b14611721576116ad600161169161254f565b6116e1367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036014013590565b6040517ff33fa6cf000000000000000000000000000000000000000000000000000000008152600481019290925260248201526044015b60405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036074013560601c1461190357367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036074013560601c6117c881613401565b6117fe576040517f346119f700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604051806040016040528061187b8373ffffffffffffffffffffffffffffffffffffffff1663bcef3b556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611857573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061168191906146c5565b81526020018273ffffffffffffffffffffffffffffffffffffffff166399735e326040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118ef91906146c5565b90528051600155602001516002555061199e565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663664ed8306040518163ffffffff1660e01b81526004016040805180830381865afa15801561196d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061199191906146de565b8051600155602001516002555b6002546119cc907f000000000000000000000000000000000000000000000000000000000000000090614616565b367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036054013514611a9657600254611a2d907f000000000000000000000000000000000000000000000000000000000000000090614616565b367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c9003605401356040517f087b2d7600000000000000000000000000000000000000000000000000000000815260048101929092526024820152604401611718565b600080547fffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffff1671010000000000000000000000000000000000178155611b0760547ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe369081013560f01c9003013590565b90507f0000000000000000000000000000000000000000000000000000000000000000811015611b8c576040517fa70efcf7000000000000000000000000000000000000000000000000000000008152600481018290527f00000000000000000000000000000000000000000000000000000000000000006024820152604401611718565b6000611bb87f00000000000000000000000000000000000000000000000000000000000000008361462e565b905060007f0000000000000000000000000000000000000000000000000000000000000000611c0f7f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff614754565b611c19919061477d565b67ffffffffffffffff16905080821115611c62576040517fa1d6b34700000000000000000000000000000000000000000000000000000000815260048101849052602401611718565b6000611c9867ffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001684614688565b611cc2907f00000000000000000000000000000000000000000000000000000000000000006145ea565b9050428167ffffffffffffffff161115611d1a576040517f3680a67800000000000000000000000000000000000000000000000000000000815267ffffffffffffffff82166004820152426024820152604401611718565b6040517fa2e62b5a00000000000000000000000000000000000000000000000000000000815267ffffffffffffffff821660048201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063a2e62b5a90602401602060405180830381865afa158015611dae573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dd291906146c5565b600855600080547fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000164267ffffffffffffffff16179055604080517f3c9f397c00000000000000000000000000000000000000000000000000000000815290517f000000000000000000000000000000000000000000000000000000000000000063ffffffff16917f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1691633c9f397c916004808201926020929091908290030181865afa158015611ebd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ee191906147a4565b600080547fffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffff1663ffffffff92909216929092147201000000000000000000000000000000000000021781556007805467ffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000090911617905588888281611f7057611f706147ca565b919091013560f81c90506001811115611f8b57611f8b6143bf565b90506000611f9d602160018b8d6147f9565b611fa691614823565b90506000611fb8604160218c8e6147f9565b611fc191614823565b9050611fcd8282613770565b612084611fdd8b6041818f6147f9565b85367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90033560601c60015487905b600254612049367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036014013590565b367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036054013561207f6121c6565b6139c8565b6120bb83367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90033560601c613a9a565b600380547fffffffffffffffffffffffff0000000000000000000000000000000000000000167ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe369081013560f01c90033560601c179055346004818155604080517fd0e30db000000000000000000000000000000000000000000000000000000000815290517f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169363d0e30db093909280820192600092909182900301818588803b1580156121a057600080fd5b505af11580156121b4573d6000803e3d6000fd5b50505050505050505050505050505050565b6060610d5c60886121d561254f565b6121e0906020614688565b613ba4565b60006121ef61254f565b8210612227576040517fa6c661fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61226f612235836020614688565b612240906088614616565b367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c9003013590565b92915050565b6060610d5c605461228461254f565b61228f906020614688565b6121e0906034614616565b600060068160016111c6565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612311573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612335919061485f565b1561236c576040517f379a7ed900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005468010000000000000000900467ffffffffffffffff1667ffffffffffffffff166000036123c8576040517fc105260a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f0314d2b30000000000000000000000000000000000000000000000000000000081523060048201526000907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690630314d2b390602401602060405180830381865afa158015612455573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612479919061485f565b9050806124b2576040517f4851bd9b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f17cf21a90000000000000000000000000000000000000000000000000000000081523060048201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906317cf21a990602401600060405180830381600087803b15801561253957600080fd5b505af192505050801561254a575060015b505b50565b6000610d5c7f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000614674565b60008054700100000000000000000000000000000000900460ff1660028111156125c7576125c76143bf565b146125fe576040517ff1a9458100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600084846000818110612613576126136147ca565b919091013560f81c9050600181111561262e5761262e6143bf565b90506000600681836001811115612647576126476143bf565b6001811115612658576126586143bf565b815260208101919091526040016000205473ffffffffffffffffffffffffffffffffffffffff16036126b857806040517f25822d380000000000000000000000000000000000000000000000000000000081526004016117189190614881565b600554156127705760016005546126cf919061462e565b8314612707576040517fa6c661fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612710836121e5565b821461272057816116e1846121e5565b6001816001811115612734576127346143bf565b1461276b576040517f69ed70ab00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61277a565b61277a8383613bf6565b600080600061278886613c77565b9194509250905061280061279f886001818c6147f9565b86336127d5367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036034013590565b88888c898e6040516020016127ec91815260200190565b6040516020818303038152906040526139c8565b61280984613d10565b604080518781526020810187905233917f5a8d9d181e6a59fe5477a50721401b6332a810b9183e15ac62d386379a05a717910160405180910390a26001846001811115612858576128586143bf565b036128e2577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ece20f366040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156128c557600080fd5b505af11580156128d9573d6000803e3d6000fd5b5050505061297c565b60008460018111156128f6576128f66143bf565b0361297c577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ece20f366040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561296357600080fd5b505af1158015612977573d6000803e3d6000fd5b505050505b5050505050505050565b60008054700100000000000000000000000000000000900460ff1660028111156129b2576129b26143bf565b146129e9576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6007544267ffffffffffffffff90911611612a30576040517fdf469ccb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600082826000818110612a4557612a456147ca565b919091013560f81c90506001811115612a6057612a606143bf565b90506000600681836001811115612a7957612a796143bf565b6001811115612a8a57612a8a6143bf565b815260208101919091526040016000205473ffffffffffffffffffffffffffffffffffffffff1614612aea57806040517f7141297a0000000000000000000000000000000000000000000000000000000081526004016117189190614881565b612b38612afa83600181876147f9565b8333612b30367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036034013590565b600154612012565b612b428133613a9a565b505050565b60008054700100000000000000000000000000000000900460ff166002811115612b7357612b736143bf565b14612baa576040517ff1a9458100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612bb330613401565b612be9576040517f57e25a0900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001612bf3612f8e565b6002811115612c0457612c046143bf565b03612c3b576040517f346119f700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000805260066020527f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f85473ffffffffffffffffffffffffffffffffffffffff16612cb55760006040517f25822d380000000000000000000000000000000000000000000000000000000081526004016117189190614881565b600160005260066020527f3e5fec24aa4dc4e5aee2e025e51e1392c72a2500577559fae9665c6d52bd6a315473ffffffffffffffffffffffffffffffffffffffff1615612d315760016040517f7141297a0000000000000000000000000000000000000000000000000000000081526004016117189190614881565b600084846000818110612d4657612d466147ca565b919091013560f81c90506001811115612d6157612d616143bf565b90506001816001811115612d7757612d776143bf565b14612dae576040517f69ed70ab00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612db88383613bf6565b6000806000612dc686613c77565b91945092509050612ddd61279f886001818c6147f9565b3360066000866001811115612df457612df46143bf565b6001811115612e0557612e056143bf565b815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600760088282829054906101000a900460ff16612e709190614895565b92506101000a81548160ff021916908360ff1602179055506206978067ffffffffffffffff1642612ea19190614616565b600780547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001667ffffffffffffffff92909216919091179055612ee5866001614616565b60055560405186815233907f7a180232c19fd38c83e493856a42688c477bae7e82039103b2c1ea6a6162e5299060200160405180910390a25050505050505050565b60008060607f0000000000000000000000000000000000000000000000000000000000000000367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360140135612f83612275565b925092509250909192565b600073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036074013560601c1461321d576000367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036074013560601c6040517f34a346ea00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff80831660048301529192507f0000000000000000000000000000000000000000000000000000000000000000909116906334a346ea90602401602060405180830381865afa1580156130c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130e5919061485f565b8061319b57506040517f5958a19300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82811660048301527f00000000000000000000000000000000000000000000000000000000000000001690635958a19390602401602060405180830381865afa158015613177573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061319b919061485f565b156131a857600191505090565b8073ffffffffffffffffffffffffffffffffffffffff1663200d2ed26040518163ffffffff1660e01b8152600401602060405180830381865afa1580156131f3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061321791906148ba565b91505090565b50600290565b600080805260066020527f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f85473ffffffffffffffffffffffffffffffffffffffff16158015906132fd57507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f9df65eb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156132d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132fd919061485f565b156133125761330c6000613d10565b50600190565b600160005260066020527f3e5fec24aa4dc4e5aee2e025e51e1392c72a2500577559fae9665c6d52bd6a315473ffffffffffffffffffffffffffffffffffffffff16158015906133ec57507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f9df65eb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156133c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133ec919061485f565b156133fb5761330c6001613d10565b50600090565b6040517fee658e4500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82811660048301526000917f00000000000000000000000000000000000000000000000000000000000000009091169063ee658e4590602401602060405180830381865afa158015613492573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134b6919061485f565b801561356d57506040517f04e50fed00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83811660048301527f000000000000000000000000000000000000000000000000000000000000000016906304e50fed90602401602060405180830381865afa158015613549573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061356d919061485f565b801561362657506040517f34a346ea00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83811660048301527f000000000000000000000000000000000000000000000000000000000000000016906334a346ea90602401602060405180830381865afa158015613600573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613624919061485f565b155b80156136df57506040517f5958a19300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83811660048301527f00000000000000000000000000000000000000000000000000000000000000001690635958a19390602401602060405180830381865afa1580156136b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136dd919061485f565b155b801561226f575060018273ffffffffffffffffffffffffffffffffffffffff1663200d2ed26040518163ffffffff1660e01b8152600401602060405180830381865afa158015613733573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061375791906148ba565b6002811115613768576137686143bf565b141592915050565b4381106137b2576040517f25bfb0a400000000000000000000000000000000000000000000000000000000815260048101829052436024820152604401611718565b6000806137bf834361462e565b905061010081116137d3578240915061393f565b611fff81116139045760008071f90827f1c53a10cb7a02335b17532000293573ffffffffffffffffffffffffffffffffffffffff168560405160200161381b91815260200190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815290829052613853916148db565b600060405180830381855afa9150503d806000811461388e576040519150601f19603f3d011682016040523d82523d6000602084013e613893565b606091505b50915091508115806138a757508051602014155b156138e7576040517f0f0b8f8100000000000000000000000000000000000000000000000000000000815260048101869052436024820152604401611718565b808060200190518101906138fb91906146c5565b9350505061393f565b6040517f0f0b8f8100000000000000000000000000000000000000000000000000000000815260048101849052436024820152604401611718565b8161397f576040517f0f0b8f8100000000000000000000000000000000000000000000000000000000815260048101849052436024820152604401611718565b8382146139c2576040517f80b1ae510000000000000000000000000000000000000000000000000000000081526004810185905260248101839052604401611718565b50505050565b6001891015613a03576040517f09bde33900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000886001811115613a1757613a176143bf565b03613a3257613a2d8a8a89898989898989613e42565b613a8e565b6001886001811115613a4657613a466143bf565b03613a5c57613a2d8a8a89898989898989614020565b6040517f69ed70ab00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505050505050505050565b8060066000846001811115613ab157613ab16143bf565b6001811115613ac257613ac26143bf565b815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600760088282829054906101000a900460ff16613b2d9190614895565b92506101000a81548160ff021916908360ff160217905550613b4d6141cc565b816001811115613b5f57613b5f6143bf565b60405173ffffffffffffffffffffffffffffffffffffffff8316907f62f393acfb3d3425116fe9be7a6509a4b652bda54fdac2df2b7273135ecd58e790600090a35050565b604051818152367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90038284820160208401378260208301016000815260208101604052505092915050565b613bfe61254f565b8210613c36576040517fa6c661fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80613c40836121e5565b0361254a576040517fbbcafae600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008080808415613c9557613c9061073e60018761462e565b613c99565b6001545b90506000613cc77f000000000000000000000000000000000000000000000000000000000000000087614688565b600254613cd49190614616565b90506000613d027f0000000000000000000000000000000000000000000000000000000000000000836145ea565b929791965091945092505050565b60066000826001811115613d2657613d266143bf565b6001811115613d3757613d376143bf565b8152602081019190915260400160002080547fffffffffffffffffffffffff00000000000000000000000000000000000000001690556001816001811115613d8157613d816143bf565b03613d8c5760006005555b60075468010000000000000000900460ff16600003613dd7576040517f344de4bf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600780547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60ff6801000000000000000080840482169290920116027fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff90911617905561254c6142b4565b6000878787878787877f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000600854604051602001613ea99a999897969594939291906148f7565b6040516020818303038152906040528051906020012090506000888b8b604051602001613ed8939291906149a5565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290527fab750e75000000000000000000000000000000000000000000000000000000008252915073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063ab750e7590613f9c9084907f00000000000000000000000000000000000000000000000000000000000000009087906004016149e4565b602060405180830381865afa158015613fb9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613fdd919061485f565b614013576040517f09bde33900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050505050505050505050565b6000878787878787877f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006008546040516020016140879a999897969594939291906148f7565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529082905280516020909101207fab750e75000000000000000000000000000000000000000000000000000000008252915073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063ab750e7590614155908d908d907f0000000000000000000000000000000000000000000000000000000000000000908790600401614a09565b602060405180830381865afa158015614172573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614196919061485f565b613a8e576040517f09bde33900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006141d661436c565b90507fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000167ffffffffffffffff82160161423e5750600780547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001667ffffffffffffffff179055565b600061424a82426145ea565b6007549091506142779067ffffffffffffffff808416911667ffffffffffffffff16808218908211021890565b600780547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001667ffffffffffffffff929092169190911790555050565b60006142be61436c565b90507fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000167ffffffffffffffff8216016143265750600780547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001667ffffffffffffffff179055565b61433081426145ea565b600780547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001667ffffffffffffffff9290921691909117905550565b60075460009060026801000000000000000090910460ff161061439157506201518090565b60075468010000000000000000900460ff166001036143b257506206978090565b5067ffffffffffffffff90565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6020810160038310614402576144026143bf565b91905290565b60008083601f84011261441a57600080fd5b50813567ffffffffffffffff81111561443257600080fd5b60208301915083602082850101111561444a57600080fd5b9250929050565b6000806020838503121561446457600080fd5b823567ffffffffffffffff81111561447b57600080fd5b61448785828601614408565b90969095509350505050565b60005b838110156144ae578181015183820152602001614496565b838111156139c25750506000910152565b600081518084526144d7816020860160208601614493565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60208152600061451c60208301846144bf565b9392505050565b60006020828403121561453557600080fd5b5035919050565b6000806000806060858703121561455257600080fd5b843567ffffffffffffffff81111561456957600080fd5b61457587828801614408565b90989097506020870135966040013595509350505050565b63ffffffff841681528260208201526060604082015260006145b260608301846144bf565b95945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600067ffffffffffffffff80831681851680830382111561460d5761460d6145bb565b01949350505050565b60008219821115614629576146296145bb565b500190565b600082821015614640576146406145bb565b500390565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60008261468357614683614645565b500490565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156146c0576146c06145bb565b500290565b6000602082840312156146d757600080fd5b5051919050565b6000604082840312156146f057600080fd5b6040516040810181811067ffffffffffffffff8211171561473a577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604052825181526020928301519281019290925250919050565b600067ffffffffffffffff83811690831681811015614775576147756145bb565b039392505050565b600067ffffffffffffffff8084168061479857614798614645565b92169190910492915050565b6000602082840312156147b657600080fd5b815163ffffffff8116811461451c57600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000808585111561480957600080fd5b8386111561481657600080fd5b5050820193919092039150565b8035602083101561226f577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602084900360031b1b1692915050565b60006020828403121561487157600080fd5b8151801515811461451c57600080fd5b6020810160028310614402576144026143bf565b600060ff821660ff84168060ff038211156148b2576148b26145bb565b019392505050565b6000602082840312156148cc57600080fd5b81516003811061451c57600080fd5b600082516148ed818460208701614493565b9190910192915050565b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008b60601b16815289601482015288603482015260007fffffffffffffffff000000000000000000000000000000000000000000000000808a60c01b16605484015288605c840152808860c01b16607c84015250855161497e816084850160208a01614493565b608492019182019490945260a481019290925260c482015260e40198975050505050505050565b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008460601b168152818360148301376000910160140190815292915050565b6060815260006149f760608301866144bf565b60208301949094525060400152919050565b6060815283606082015283856080830137600060808583010152600060807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f87011683010190508360208301528260408301529594505050505056fea164736f6c634300080f000a000000000000000000000000000000000000000000000000000000000000026d000000000000000000000000bfb20170b82c474b136bc5a062aca47a3cb8cf680000000000000000000000005af90fde02b46e202f6232b3ede25b3f602ac67300000000000000000000000042fa446d95a5b61a7be02949042954a60315fb0f0000000000000000000000005b997cd8fafa026882aec7d0558c9cc47221f84eb3d3746cf4b830046e9196dc196244d69fd96d3d436bd45ab84e35a9236f351f776848834e7efcb029c48cf7215175b77098e8db28f27d2b074a64106f1c2b16002663a1072dc1e1938e13d3b269fff88e843eb4ef76d6c6953dde4f5152973bd14ddabfc0ad1dd737d6e5917cf271fd479bd539c9b3d85a602589c679a9983a00000000000000000000000000000000000000000000000000000000000ba5e00000000000000000000000000000000000000000000000000000000000000258000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000030e172aac675c9fe5a64792f92c9fd4d3e7ca9da0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006a3c7b2c0000000000000000000000000000000000000000000000000000000000000002", + "nonce": "0x7", + "chainId": "0x88bb0" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0xac4439", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0xc9559e196f8cdf49bbeb87fe16e6434dc1cef4e6397a476ce80ee658ce9bb81c", + "transactionIndex": "0x1d", + "blockHash": "0x29fb6d97e9ab041b9c34a8362c75817552dca175b56fae60fa65f55996ffa4d7", + "blockNumber": "0x377da6", + "gasUsed": "0x3f86a7", + "effectiveGasPrice": "0x421cee16", + "from": "0x2c1475476b586d66a85bc65a5ab396bbbaa4f3ad", + "to": null, + "contractAddress": "0x90ab3a3a747a60ef56919574da1766f20acee21c" + } + ], + "libraries": [], + "pending": [], + "returns": {}, + "timestamp": 1789581325124, + "chain": 560048, + "commit": "7301eba" +} \ No newline at end of file diff --git a/archive/evm/2026-09-16-update-cobalt-verifier-hashes/records/UpdateVerifierHashes.s.sol/560048/run-1789585082817.json b/archive/evm/2026-09-16-update-cobalt-verifier-hashes/records/UpdateVerifierHashes.s.sol/560048/run-1789585082817.json new file mode 100644 index 00000000..4eea6a8d --- /dev/null +++ b/archive/evm/2026-09-16-update-cobalt-verifier-hashes/records/UpdateVerifierHashes.s.sol/560048/run-1789585082817.json @@ -0,0 +1,90 @@ +{ + "transactions": [ + { + "hash": "0x9946dc87b94600cc46c64916584f0408c31238e3828a60eb0b21606dfcbe4e59", + "transactionType": "CALL", + "contractName": null, + "contractAddress": "0x856611ed7e07d83243b15e93f6321f2df6865852", + "function": "execTransaction(address,uint256,bytes,uint8,uint256,uint256,uint256,address,address,bytes)", + "arguments": [ + "0x3d59999977e0896ee1f8783bB8251DF16fb483E9", + "0", + "0xd4d9bdcdcafee66144232a105e986229263d1735633bc2b02ca50528abfd8fc1a603568b", + "0", + "0", + "0", + "0", + "0x0000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000", + "0x755cfd9c4b89cd25d2b9a63ebac00a1d9b16df1d09c9b461472cb424cd7136ec3506a81b73a6bd5d704d376921214592c5053f58ca2cdeb49bce4e9a34ffaed31c017bad87c78ed8609b07a67cbf90b69d06dea3b4558dbb52d14eaffbdddff92a05f3891e642bcf18b8a7cd00cec7f5ead8c59eeb3aee6324eaf69621d84a66d21c6304d7c328b3460e363eed74bf2f41dd80e88f190c7e07643e7baddf8d2d713a6d6b9c95deed1d30edc55ed1c437954ac227f0cfcdf48164436e7f07cad15b161c" + ], + "transaction": { + "from": "0x2c1475476b586d66a85bc65a5ab396bbbaa4f3ad", + "to": "0x856611ed7e07d83243b15e93f6321f2df6865852", + "gas": "0x20381", + "value": "0x0", + "input": "0x6a7612020000000000000000000000003d59999977e0896ee1f8783bb8251df16fb483e90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001a00000000000000000000000000000000000000000000000000000000000000024d4d9bdcdcafee66144232a105e986229263d1735633bc2b02ca50528abfd8fc1a603568b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c3755cfd9c4b89cd25d2b9a63ebac00a1d9b16df1d09c9b461472cb424cd7136ec3506a81b73a6bd5d704d376921214592c5053f58ca2cdeb49bce4e9a34ffaed31c017bad87c78ed8609b07a67cbf90b69d06dea3b4558dbb52d14eaffbdddff92a05f3891e642bcf18b8a7cd00cec7f5ead8c59eeb3aee6324eaf69621d84a66d21c6304d7c328b3460e363eed74bf2f41dd80e88f190c7e07643e7baddf8d2d713a6d6b9c95deed1d30edc55ed1c437954ac227f0cfcdf48164436e7f07cad15b161c0000000000000000000000000000000000000000000000000000000000", + "nonce": "0x8", + "chainId": "0x88bb0" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0x82fe0", + "logs": [ + { + "address": "0x3d59999977e0896ee1f8783bb8251df16fb483e9", + "topics": [ + "0xf2a0eb156472d1440255b0d7c1e19cc07115d1051fe605b0dce69acfec884d9c", + "0xcafee66144232a105e986229263d1735633bc2b02ca50528abfd8fc1a603568b", + "0x000000000000000000000000856611ed7e07d83243b15e93f6321f2df6865852" + ], + "data": "0x", + "blockHash": "0x1fa85d2cd431c411208e1d35681e0e99a7681801eea18c15593ec4c5a64e6c40", + "blockNumber": "0x377eca", + "blockTimestamp": "0x6aaae6b8", + "transactionHash": "0x9946dc87b94600cc46c64916584f0408c31238e3828a60eb0b21606dfcbe4e59", + "transactionIndex": "0x15", + "logIndex": "0x0", + "removed": false + }, + { + "address": "0x856611ed7e07d83243b15e93f6321f2df6865852", + "topics": [ + "0x442e715f626346e8c54381002da614f62bee8d27386535b2521ec8540898556e", + "0xde142168758e673af34d67e2b762e391c17038b68a24eaa56af41c2132ed4c5d" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockHash": "0x1fa85d2cd431c411208e1d35681e0e99a7681801eea18c15593ec4c5a64e6c40", + "blockNumber": "0x377eca", + "blockTimestamp": "0x6aaae6b8", + "transactionHash": "0x9946dc87b94600cc46c64916584f0408c31238e3828a60eb0b21606dfcbe4e59", + "transactionIndex": "0x15", + "logIndex": "0x1", + "removed": false + } + ], + "logsBloom": "0x00000000400000000000000000000200000000000000000000000000040000001001000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000008000000000000000000000400000000000080000000000000000000000000000000000000000080000000000000000000000200000000000008000004000000000000000000000000000000000000000000040000004000000200000000080000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000200000000100400000000000000", + "type": "0x2", + "transactionHash": "0x9946dc87b94600cc46c64916584f0408c31238e3828a60eb0b21606dfcbe4e59", + "transactionIndex": "0x15", + "blockHash": "0x1fa85d2cd431c411208e1d35681e0e99a7681801eea18c15593ec4c5a64e6c40", + "blockNumber": "0x377eca", + "gasUsed": "0x17538", + "effectiveGasPrice": "0x45ba1b0b", + "from": "0x2c1475476b586d66a85bc65a5ab396bbbaa4f3ad", + "to": "0x856611ed7e07d83243b15e93f6321f2df6865852", + "contractAddress": null + } + ], + "libraries": [], + "pending": [], + "returns": {}, + "timestamp": 1789585082817, + "chain": 560048, + "commit": "1b880be" +} \ No newline at end of file diff --git a/archive/evm/2026-09-16-update-cobalt-verifier-hashes/records/UpdateVerifierHashes.s.sol/560048/run-1789585129385.json b/archive/evm/2026-09-16-update-cobalt-verifier-hashes/records/UpdateVerifierHashes.s.sol/560048/run-1789585129385.json new file mode 100644 index 00000000..df03fb2a --- /dev/null +++ b/archive/evm/2026-09-16-update-cobalt-verifier-hashes/records/UpdateVerifierHashes.s.sol/560048/run-1789585129385.json @@ -0,0 +1,90 @@ +{ + "transactions": [ + { + "hash": "0x7c3105373bf8f74139d8fd8402d393644f71e92c0c32dccf4419481a52905749", + "transactionType": "CALL", + "contractName": null, + "contractAddress": "0xc4c0ad998b5dfa4cf4b298970f21b9015a5ee7ba", + "function": "execTransaction(address,uint256,bytes,uint8,uint256,uint256,uint256,address,address,bytes)", + "arguments": [ + "0x3d59999977e0896ee1f8783bB8251DF16fb483E9", + "0", + "0xd4d9bdcdcafee66144232a105e986229263d1735633bc2b02ca50528abfd8fc1a603568b", + "0", + "0", + "0", + "0", + "0x0000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000", + "0xe57bdb86672cb6041a457a5be5dc81eb32de9836dab492e8a3e7091354d8c22320e3a1f746f38bd7a1f7102a5301b9e1c0baa6fe8825673db26b640516dbda171b" + ], + "transaction": { + "from": "0x2c1475476b586d66a85bc65a5ab396bbbaa4f3ad", + "to": "0xc4c0ad998b5dfa4cf4b298970f21b9015a5ee7ba", + "gas": "0x1b752", + "value": "0x0", + "input": "0x6a7612020000000000000000000000003d59999977e0896ee1f8783bb8251df16fb483e90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001a00000000000000000000000000000000000000000000000000000000000000024d4d9bdcdcafee66144232a105e986229263d1735633bc2b02ca50528abfd8fc1a603568b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041e57bdb86672cb6041a457a5be5dc81eb32de9836dab492e8a3e7091354d8c22320e3a1f746f38bd7a1f7102a5301b9e1c0baa6fe8825673db26b640516dbda171b00000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x9", + "chainId": "0x88bb0" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0x6b098", + "logs": [ + { + "address": "0x3d59999977e0896ee1f8783bb8251df16fb483e9", + "topics": [ + "0xf2a0eb156472d1440255b0d7c1e19cc07115d1051fe605b0dce69acfec884d9c", + "0xcafee66144232a105e986229263d1735633bc2b02ca50528abfd8fc1a603568b", + "0x000000000000000000000000c4c0ad998b5dfa4cf4b298970f21b9015a5ee7ba" + ], + "data": "0x", + "blockHash": "0x130655d9bed7c393023cea4f382c3cc9b2d9b9952b1842ed2b3eaa5e833e0cc2", + "blockNumber": "0x377ece", + "blockTimestamp": "0x6aaae6e8", + "transactionHash": "0x7c3105373bf8f74139d8fd8402d393644f71e92c0c32dccf4419481a52905749", + "transactionIndex": "0x11", + "logIndex": "0x0", + "removed": false + }, + { + "address": "0xc4c0ad998b5dfa4cf4b298970f21b9015a5ee7ba", + "topics": [ + "0x442e715f626346e8c54381002da614f62bee8d27386535b2521ec8540898556e", + "0xecfda7d749a641d699f05d23e5bfc48d9ca2ac6c18251148f046b584198291c4" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockHash": "0x130655d9bed7c393023cea4f382c3cc9b2d9b9952b1842ed2b3eaa5e833e0cc2", + "blockNumber": "0x377ece", + "blockTimestamp": "0x6aaae6e8", + "transactionHash": "0x7c3105373bf8f74139d8fd8402d393644f71e92c0c32dccf4419481a52905749", + "transactionIndex": "0x11", + "logIndex": "0x1", + "removed": false + } + ], + "logsBloom": "0x00000000400000000000000000000000000000000000008000000000040000000001000000000000000000000000000000000000000000100000000000000000010000000000000000000000001000000000000800000000008000001000000008000000400000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000010000000004000000200000000080000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100400000000000000", + "type": "0x2", + "transactionHash": "0x7c3105373bf8f74139d8fd8402d393644f71e92c0c32dccf4419481a52905749", + "transactionIndex": "0x11", + "blockHash": "0x130655d9bed7c393023cea4f382c3cc9b2d9b9952b1842ed2b3eaa5e833e0cc2", + "blockNumber": "0x377ece", + "gasUsed": "0x13e10", + "effectiveGasPrice": "0x44c07426", + "from": "0x2c1475476b586d66a85bc65a5ab396bbbaa4f3ad", + "to": "0xc4c0ad998b5dfa4cf4b298970f21b9015a5ee7ba", + "contractAddress": null + } + ], + "libraries": [], + "pending": [], + "returns": {}, + "timestamp": 1789585129385, + "chain": 560048, + "commit": "1b880be" +} \ No newline at end of file diff --git a/archive/evm/2026-09-16-update-cobalt-verifier-hashes/records/UpdateVerifierHashes.s.sol/560048/run-1789585183329.json b/archive/evm/2026-09-16-update-cobalt-verifier-hashes/records/UpdateVerifierHashes.s.sol/560048/run-1789585183329.json new file mode 100644 index 00000000..959681e5 --- /dev/null +++ b/archive/evm/2026-09-16-update-cobalt-verifier-hashes/records/UpdateVerifierHashes.s.sol/560048/run-1789585183329.json @@ -0,0 +1,90 @@ +{ + "transactions": [ + { + "hash": "0x4558683a4689db8d1924af4a8be6562c8aaa1ef485e1f645298bfb506e83900e", + "transactionType": "CALL", + "contractName": null, + "contractAddress": "0x3d59999977e0896ee1f8783bb8251df16fb483e9", + "function": "execTransaction(address,uint256,bytes,uint8,uint256,uint256,uint256,address,address,bytes)", + "arguments": [ + "0xD930e0cebD52D7C77b8F900dE242E818506C5474", + "0", + "0x14f6b1a3000000000000000000000000000000000000000000000000000000000000026d00000000000000000000000090ab3a3a747a60ef56919574da1766f20acee21c", + "0", + "0", + "0", + "0", + "0x0000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000", + "0x000000000000000000000000856611ed7e07d83243b15e93f6321f2df6865852000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000c4c0ad998b5dfa4cf4b298970f21b9015a5ee7ba000000000000000000000000000000000000000000000000000000000000000001" + ], + "transaction": { + "from": "0x2c1475476b586d66a85bc65a5ab396bbbaa4f3ad", + "to": "0x3d59999977e0896ee1f8783bb8251df16fb483e9", + "gas": "0x17f14", + "value": "0x0", + "input": "0x6a761202000000000000000000000000d930e0cebd52d7c77b8f900de242e818506c54740000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001c0000000000000000000000000000000000000000000000000000000000000004414f6b1a3000000000000000000000000000000000000000000000000000000000000026d00000000000000000000000090ab3a3a747a60ef56919574da1766f20acee21c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000082000000000000000000000000856611ed7e07d83243b15e93f6321f2df6865852000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000c4c0ad998b5dfa4cf4b298970f21b9015a5ee7ba000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000", + "nonce": "0xa", + "chainId": "0x88bb0" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0x16d993", + "logs": [ + { + "address": "0xd930e0cebd52d7c77b8f900de242e818506c5474", + "topics": [ + "0xff513d80e2c7fa487608f70a618dfbc0cf415699dc69588c747e8c71566c88de", + "0x00000000000000000000000090ab3a3a747a60ef56919574da1766f20acee21c", + "0x000000000000000000000000000000000000000000000000000000000000026d" + ], + "data": "0x", + "blockHash": "0xea5bc5e1545b94aca3ee03576b432839dfc9907a5831968d330450d0db3c4cec", + "blockNumber": "0x377ed2", + "blockTimestamp": "0x6aaae718", + "transactionHash": "0x4558683a4689db8d1924af4a8be6562c8aaa1ef485e1f645298bfb506e83900e", + "transactionIndex": "0x17", + "logIndex": "0x25", + "removed": false + }, + { + "address": "0x3d59999977e0896ee1f8783bb8251df16fb483e9", + "topics": [ + "0x442e715f626346e8c54381002da614f62bee8d27386535b2521ec8540898556e", + "0xcafee66144232a105e986229263d1735633bc2b02ca50528abfd8fc1a603568b" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockHash": "0xea5bc5e1545b94aca3ee03576b432839dfc9907a5831968d330450d0db3c4cec", + "blockNumber": "0x377ed2", + "blockTimestamp": "0x6aaae718", + "transactionHash": "0x4558683a4689db8d1924af4a8be6562c8aaa1ef485e1f645298bfb506e83900e", + "transactionIndex": "0x17", + "logIndex": "0x26", + "removed": false + } + ], + "logsBloom": "0x00000000400000000000000000000000000000000000000000000080040000000001018000000000000000000000000000000000000000000000000001000000000000000400000000000000000000000000000000000000008000000000000002000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000004000000000000000000000000000000000100000000000000004000000200000000080000000000004000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000400000000000100", + "type": "0x2", + "transactionHash": "0x4558683a4689db8d1924af4a8be6562c8aaa1ef485e1f645298bfb506e83900e", + "transactionIndex": "0x17", + "blockHash": "0xea5bc5e1545b94aca3ee03576b432839dfc9907a5831968d330450d0db3c4cec", + "blockNumber": "0x377ed2", + "gasUsed": "0x11558", + "effectiveGasPrice": "0x42d4cb19", + "from": "0x2c1475476b586d66a85bc65a5ab396bbbaa4f3ad", + "to": "0x3d59999977e0896ee1f8783bb8251df16fb483e9", + "contractAddress": null + } + ], + "libraries": [], + "pending": [], + "returns": {}, + "timestamp": 1789585183329, + "chain": 560048, + "commit": "1b880be" +} \ No newline at end of file