Skip to content

Preserve historical TokenStaking deployments (2023–2025) - #173

Open
cygnusv wants to merge 7 commits into
mainfrom
unlock-deployment
Open

cygnusv wants to merge 7 commits into
mainfrom
unlock-deployment

Conversation

@cygnusv

@cygnusv cygnusv commented Aug 27, 2025

Copy link
Copy Markdown
Contributor

Consolidates historical TokenStaking mainnet deployment records from #140 with the 2025 TIP-100 records in this PR. Adds the May 11 and November 20, 2023 implementation records alongside the March 6 and August 16, 2025 implementations and proxies. All existing manifest entries, the proxy admin, and the original staking proxy are preserved. The branch includes main at 43f926f; its only file difference from that base is .openzeppelin/mainnet.json.

Deployment Address Creation transaction Block
May 11, 2023 implementation, preserved from #140 0x409bf77A8E3Fe384497227eA508029B5364933DE 0x512a709a… 17,237,506
November 20, 2023 implementation, preserved from #140 0x4d333B9ECB75252342d82B7aF3610951f81e0888 0xe05e8db0… 18,612,339
March 6, 2025 implementation 0x9F84fDAb30a46c541BD3F7E79276Ae476143cEDa 0x28d75735… 21,989,233
March 6, 2025 proxy 0x44FFe6b958A69c838ecEF2B850f0500e7EEeE2e6 0x858ad7f2… 21,989,234
August 16, 2025 implementation 0xF5a2ccFEA213cB3ff0799E0C33ea2fA3da7CBB65 0xcb5a3331… 23,155,592
August 16, 2025 proxy 0xa90e3575f37f7052a261033C69FfF17BBB18c260 0xe61950ac… 23,155,593

The November 2023 row uses the implementation creation transaction's November 20 timestamp. #140's description separately reported a November 22 upgrade; this PR does not equate implementation creation with a proxy upgrade.

Validation against public Ethereum Blockscout records on 2026-09-08:

  • The combined manifest has six implementations, three proxies, and one proxy admin. All ten recorded creation transactions succeed and create the corresponding contract addresses. OpenZeppelin manifest parsing and JSON normalization pass, with no duplicate addresses or transactions.
  • Both 2023 entries are copied exactly from TokenStaking upgrade scripts #140 at 6ec3ad0. Every entry previously in Preserve historical TokenStaking deployments (2023–2025) #173 at f9b43a5 remains unchanged.
  • For both 2023 implementations, the manifest version key matches the creation transaction bytecode with compiler metadata removed and the encoded constructor arguments included. The May deployment has six address arguments; the November deployment has two. Both use T at 0xCdF7028ceAB81fA0C6971208e83fa7872994beE5.
  • Recompiling each published 2023 source set with checksum-verified Solidity 0.8.9+commit.e5eed63a, optimizer enabled with 10 runs, reproduces its creation bytecode excluding compiler metadata. Runtime bytecode matches after normalizing compiler-declared immutable positions and removing compiler metadata. Each implementation's 18 storage fields and all recorded struct and enum layouts match the compiler output.
  • The unchanged 2025 entries retain their prior validation: creation-bytecode version keys and T constructor argument; proxy constructors and indexed implementation relationships; reproduced creation/runtime bytecode excluding compiler metadata with the T immutable populated; all 18 storage fields and structs; and March-to-August storage compatibility without overrides.
  • git diff --check passes. Solidity, deployment scripts, deployments/mainnet/, Hardhat configuration, and dependencies match main. CI for refreshed commit aa0a731 passed the contract build and full test suite, deployment dry run, and Slither. The Code Format Checks job also passed.

These entries preserve deployment history. They are not a complete snapshot of the latest mainnet implementation or approval for a new upgrade. The original staking proxy at 0x01B67b1194C75264d06F808A921228a95C765dd7 resolved to the later implementation 0x5a444db12705706bD7b24393F823f3A8C67D71FB in the September 8 explorer lookup. Its address in deployments/mainnet/TokenStaking.json is preserved.

Following TokenStaking's retirement, #140's mainnet upgrade scripts, dedicated upgrade-validation CI, and verification changes are obsolete in that scope. This PR preserves its unique historical manifest records. Active Sepolia upgrade tooling remains in #176, consumer proxy deployment support in #186, and verification for maintained deployments in #185 coordinated with #182. The existing OpenZeppelin upgrades dependency remains because retained tests and deployment flows use it.

Deployment and verification steps:

> npx hardhat deploy --tags TokenStaking --network mainnet
> npx hardhat verify --network mainnet <IMPLEMENTATION_ADDRESS> "0xcdf7028ceab81fa0c6971208e83fa7872994bee5"
@piotr-roslaniec
piotr-roslaniec dismissed stale reviews from ghost September 2, 2025 14:09

Dismissing fraudulent review from compromised account (Incident: THRESH-SEC-2025-001)

@mswilkison mswilkison changed the title Deployment artifacts after TIP-100 changes to TokenStaking Record historical TIP-100 TokenStaking deployments Sep 8, 2026
Copy both historical implementation records unchanged from advisory-fix-1 at 6ec3ad0. Validate the creation transactions, constructor arguments, implementation version keys, compiled bytecode, and storage layouts before retiring the obsolete mainnet upgrade proposal.
@mswilkison mswilkison changed the title Record historical TIP-100 TokenStaking deployments Preserve historical TokenStaking deployments (2023–2025) Sep 8, 2026
@mswilkison
mswilkison marked this pull request as ready for review September 8, 2026 21:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants