feat: publish the pallet-revive genesis with each release - #253
Conversation
CI Summary
4naly3er AnalysisMedium (5)
Low (10)
Gas (14)
Informational (11)
Slither AnalysisHigh (3)
Medium (43)
Low (73)
Informational (64)
Deploy ContractsDeployed addresses vs the committed manifestExpected is the committed manifest; actual is this CI deployment of the same pipeline.
Labelsdependencies, other, type: docs |
aa33d85 to
b9ff6cb
Compare
|
@mordamax please check PR template please |
aae3786 to
e722db8
Compare
e722db8 to
6617fdb
Compare
6617fdb to
9ebffb8
Compare
|
all done also dropped one line in |
There was a problem hiding this comment.
Reviewed the genesis builder and the workflow changes. Solid work overall: the extractor is pure and well tested, the parity check against the canonical manifest is a real safety property, and pulling foundry setup into a composite action removes real duplication. Three inline notes below, one correctness and two on duplication and guarding.
Description
Extends the release artifact with pallet-revive genesis state, so a chain can carry DotNS from block zero instead of deploying it afterwards.
build-genesis.shruns the existing deploy stages against anvil, dumps the EVM state and converts it to aGenesisConfigaccount list.paritytech/preview-net-v1does this today by cloning this repo at a movingmasterwith its own copy ofFACTORY_DEPLOYER_KEY. Building it here ties the artifact to the same commit and keys as the ABIs beside it, and lets that repo drop ~790 lines and two secrets.Follows the pattern #242 set — standalone asset, in the strict pre-publish check, plus a small path-filtered PR workflow (
genesis-extractor-test.yml) that tests the extractor, mirroringrelease-metadata.yml. Addresses are deliberately not re-emitted;deployments.jsonstays the only copy.The filename carries the TLD (
dotns-genesis-test.json) becauseDOTNS_TLDis baked into the registry initialiser, so it suits test networks only — the release body says so. Address parity againstdeployments/paseo-assethub/420420417.jsonis asserted, so a wrong factory key fails the build.Type
Scope
Related Issues
Follows #242, which made the release carry addresses. This adds genesis state to the same artifact.
Fixes
Checklist
Code
forge buildpassesforge testpassesTesting
Security
selfdestructordelegatecallDocumentation
Breaking Changes
How to test
Ran locally: five deploy stages, 33 genesis accounts, 19 names matching the live manifest, 9 extractor tests.
Notes
No Solidity changed, so the contract checkboxes are inherited state rather than something this diff exercises.
deployall.sh, which also has a factory-exists check and theEXPECTED_CREATE3_FACTORYguard. Drivingdeploy:allwould be DRY-er but needs the keystore flow and thepaseo_localalias, which I could not test locally. The constraint if you collapse it is in the script: the signer must stay the admin key, notdeploy-contracts.yml's public anvil account..github/PULL_REQUEST_TEMPLATE.mdhas a trailing space in its filename, so GitHub never loads it and new PRs open blank. Happy to fix separately.