refactor(tempo)!: remove multisig config_id concept#281
Merged
Conversation
* refactor(tempo)!: remove multisig config_id concept Derive multisig account addresses directly from the initial config. Drop config_id from the owner approval digest and the 0x05 wire format. Raise maxOwners to 255 with u8 weights. Validate nested multisig owner approvals (depth limit, no init, no keychain). * Update multisig-remove-config-id.md * test(tempo): add multisig access-key e2e coverage Authorize an access key via a multisig-signed AccountKeychain authorizeKey call, execute a keychain-signed transaction with it, and reject keyAuthorization on multisig transactions.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
commit: |
…pshots Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.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.
Backport of #280 from
v1tomain, tracking the removal of theconfig_idconcept from the TIP-1061 native multisig implementation in tempoxyz/tempo#5178.The multisig account address now derives directly from the initial config. The owner approval digest binds only
account, and the signature wire format drops the config ID element:0x05 || rlp([account, signatures, init?]), withinitomitted entirely when absent.Breaking changes:
MultisigConfig.toId;getAddresstakes only a config, andgetSignPayloadtakes{ account }or{ genesisConfig }.genesisConfigIdfromSignatureEnvelope.Multisig.MultisigConfig.maxOwnersto 255; total owner weight and threshold are nowu8-bounded.Owner approvals may now be nested multisig signatures.
SignatureEnvelope.assertenforces the stateless rules: keychain approvals rejected, nested approvals cannot carryinit, and nesting depth is capped atMultisigConfig.maxNestingDepth(3).The
src/zod/tempoportion of the original PR is omitted since those schemas do not exist onmain, and the changeset is restyled to aminorbump per this branch's conventions.