Repository navigation
π»ββοΈ Propter polar bear: packed Rollup and verified Sepolia deployment - #1
Open
iChristwin wants to merge 5 commits into
Open
iChristwin wants to merge 5 commits into
iChristwin wants to merge 5 commits into
Conversation
Use four-byte slots, authenticated packed meter state, and a clean documented implementation. Co-authored-by: I. Christwin <52095470+iChristwin@users.noreply.github.com>
Keep account, nonce, and words as the read interface. Update packing coverage and README. Validation: 22 Solidity tests pass under the CI profile, including 16,384 invariant calls. Co-authored-by: I. Christwin <52095470+iChristwin@users.noreply.github.com>
β¦tration Set the supplied NFT/verifier addresses, restrict program-key changes to the deployer on Sepolia, and record the fresh-genesis deployment and meter 7 key registration. Etherscan verification passed; Sourcify reports exact creation/runtime matches. All 23 Solidity tests passed. Co-authored-by: I. Christwin <52095470+iChristwin@users.noreply.github.com>
Maintain both keystore directions through registration, rotation and revocation, including meter zero. Preserve the statement and state storage layout. Cover behavior with fuzz tests and a stateful bidirectional model. Co-authored-by: I. Christwin <52095470+iChristwin@users.noreply.github.com>
Archive the previous deployment, record the replacement contract and meter 7 registration, and update the documented address. Etherscan verification passed; Sourcify reports exact creation and runtime matches. Co-authored-by: I. Christwin <52095470+iChristwin@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Replace code snapshots with sparse packed storage: four uint40 Wh accounts and uint24 nonces per word, uint32 slot IDs and absolute word replacements. Reconstruct the proof statement from current old words and full on-chain keys; verify after provisional writes so invalid proofs revert atomically. Emit the exact update bytes for indexers.
π»ββοΈ Add
m3terId(bytes32)reverse keystore lookup. Keep nonzero keys unique, allow idempotent registration, and remove reverse entries on rotation/revocation. Unknown and zero keys revert withKeyNotFound, preserving a valid lookup result of meter 0. NFT-owner authority remains unchanged. Append the reverse mapping at slot 3, preserving existing word/key/program-key slots and the guest statement.Deploy the replacement fresh-genesis Sepolia instance at
0x9a9ED9b9A9BEC10d1B5E41b1873E78d19501D5Fawith the specified M3ter NFT and SP1 gateway. Restrict the testing vkey setter to the deploying wallet and chain ID 11155111; reject zero keys. This test-only administrative authority can alter the accepted program and should be removed for a mainnet release.Record deployment/registration transactions and verification results; archive the previous deployment. Etherscan verification passed; Sourcify reports exact creation and runtime matches. Meter 7's key is registered and its reverse lookup returns 7. The previous Rollup had zero committed words, and its empty prover database was backed up before the switch.
Validation: all 30 Solidity tests passed, including 1,024-run packing and keystore fuzz tests, authority, duplicate rejection, meter-zero/max-ID handling, rotation/revocation/reuse, replay/domain checks and rollback behavior. Separate accounting and bidirectional-keystore invariants each passed 16,384 calls. Deployed runtime bytecode matches the tested artifact.
Companion packaged prover: M3tering/Prover#13. The existing published guest/images remain compatible; the node configuration and database identity now use the new address.
Co-authored with @iChristwin π»ββοΈ