Skip to content

feat: merge-train/spartan-v5#24669

Merged
AztecBot merged 7 commits into
v5-nextfrom
merge-train/spartan-v5
Jul 14, 2026
Merged

feat: merge-train/spartan-v5#24669
AztecBot merged 7 commits into
v5-nextfrom
merge-train/spartan-v5

Conversation

@AztecBot

@AztecBot AztecBot commented Jul 13, 2026

Copy link
Copy Markdown
Collaborator

BEGIN_COMMIT_OVERRIDE
docs: fee readme improvements (#24666)
feat(cli): support funding accounts in validator-keys new/set-funding-account (#24476)
END_COMMIT_OVERRIDE

aminsammara and others added 6 commits July 13, 2026 18:37
Wire the --funding-account option through the validator-keys new and add
commands so operators can generate a keystore with a top-level funding
account instead of hand-editing the JSON. The value may be a private key
or, together with --remote-signer, an address. With --password the
plaintext funder key is encrypted to a JSON V3 file like other accounts.

The funding account is written at the keystore top level, matching the
only field KeystoreManager.createFundingSigner consumes at runtime.
…bcommand

Review feedback: --funding-account on add read as per-validator but mutated
the keystore-level account. Keep it on new, drop it from add, and add a
dedicated set-funding-account subcommand for existing keystores.
…ress form

An address funding account no longer requires --remote-signer when the keystore
already defines a top-level remote signer. In that case the funder is stored as a
bare address, which the keystore manager resolves against the keystore-level signer
at runtime, so operators don't declare the signer URL twice.
The base now rejects empty keystore passwords on validator-keys new, so the
funding-account encryption test must supply a real password.
Additions to the README on gas and fees
…-account (#24476)

## Summary

Wires a real `--funding-account` option into `aztec validator-keys new`
(previously commented out with a TODO, so operators had to hand-edit the
keystore JSON), and adds a dedicated `set-funding-account` subcommand
for existing keystores.

Per review feedback, `add` does **not** take `--funding-account`: the
funding account is a keystore-level field (the only one
`KeystoreManager.createFundingSigner` reads), so setting it from `add`
would be a global mutation disguised as a per-validator flag. Use
`set-funding-account` instead:

```
aztec validator-keys set-funding-account <keystore.json> <privateKey|address> [--remote-signer <url>] [--password <str>]
```

## Behavior

- The funding account value accepts either a 32-byte private key or a
20-byte address.
- An address requires `--remote-signer` (a local funder needs its
private key to sign funding txs); it is stored as `{ address,
remoteSignerUrl }`.
- With `--password`, a plaintext funder key is encrypted to a JSON V3
file and replaced with a `{ path, password }` reference, mirroring how
attester/publisher keys are handled.
- The value is written at the keystore top level
(`keystore.fundingAccount`). Validator-level funding exists in the
schema but is never consumed at runtime, so it is intentionally not
emitted.
- `set-funding-account` replaces an existing funding account with a
warning.

## Changes

- `index.ts` — real `--funding-account` option on `new`; new
`set-funding-account` subcommand.
- `set_funding_account.ts` — new command: validate, resolve, optionally
encrypt, write `keystore.fundingAccount`.
- `utils.ts` — `validateFundingAccountOptions` (normalize + validate
key/address, require remote-signer for address form).
- `shared.ts` — `resolveFundingAccount` and
`encryptFundingAccountToFile`; extracted the ETH JSON V3 encryption
helper for reuse.
- `new.ts` — validate, resolve, optionally encrypt, set
`keystore.fundingAccount`.
- `valkeys.test.ts` — 17 new tests covering validation,
private-key/address/password paths on `new`, and set/replace on
`set-funding-account`.

## Testing

- `yarn workspace @aztec/cli test
src/cmds/validator_keys/valkeys.test.ts` — 60 passed.
- `yarn build`, `yarn format cli`, `yarn lint cli` — all clean.

@ludamad ludamad left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤖 Auto-approved

@AztecBot AztecBot added this pull request to the merge queue Jul 14, 2026
@AztecBot

Copy link
Copy Markdown
Collaborator Author

🤖 Auto-merge enabled after 4 hours of inactivity. This PR will be merged automatically once all checks pass.

1 similar comment
@AztecBot

Copy link
Copy Markdown
Collaborator Author

🤖 Auto-merge enabled after 4 hours of inactivity. This PR will be merged automatically once all checks pass.

Merged via the queue into v5-next with commit 10ca772 Jul 14, 2026
14 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants