Skip to content

Commit d347fbb

Browse files
authored
chore(deps)!: bump seismic-crypto and fold the tx-io pair into one keypair (#65)
Part of SEI-172 seismic-crypto renamed its well-known network key getters for what they are (SeismicSystems/enclave#262): these are the keys every network without a root key actually runs, not test fixtures. The revm and alloy pins move to the revs that take the same rename (SeismicSystems/seismic-revm#239, SeismicSystems/seismic-alloy#113). PurposeKeys holds the tx-io pair as one secp256k1::Keypair, so a mismatched pair is unrepresentable everywhere the struct travels; call sites read .secret_key() / .public_key(), and the redacting Debug prints tx_io.public_key(). PurposeKeys::well_known() names the bundle a network with no root key runs, in the crate that owns the type — one definition for the node's built-in key source and for every test that needs a bundle a node would accept. Its dependency costs nothing: seismic-crypto is already in this crate's graph through both seismic-revm and seismic-alloy-consensus. The alloy-tx-macros tag patch goes away: seismic-alloy exact-pins it at =1.1.0 in the crate that introduces the edge, and version requirements propagate where patches do not. Cargo.lock is committed so CI stops resolving fresh and picking up releases inside caret ranges that conflict with the pinned alloy-core fork.
1 parent fe978bd commit d347fbb

7 files changed

Lines changed: 5177 additions & 39 deletions

File tree

.gitignore

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
/target
2-
/Cargo.lock
32
.vscode
43
.idea
54
.env

CLAUDE.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ Standard EVM transactions have publicly visible calldata. Seismic wraps the allo
1010

1111
- **`SeismicEvm`** — wrapper around `seismic-revm::SeismicEvm` with optional inspector/tracing support and Seismic-specific transaction types (`SeismicTransaction` with `RngMode`)
1212
- **`SeismicEvmFactory`** — creates EVMs pre-loaded with purpose keys (RNG keypair from enclave) at boot time
13-
- **`SeismicBlockExecutor`** — wraps `EthBlockExecutor`, decrypts tx inputs via `plaintext_copy()` using `tx_io_sk` before delegating to inner executor
13+
- **`SeismicBlockExecutor`** — wraps `EthBlockExecutor`, decrypts tx inputs via `plaintext_copy()` using the tx-io secret key before delegating to inner executor
1414
- **`SeismicHardfork`** — defines "Mercury" hardfork (active at block 0); all Ethereum forks before Prague are assumed active
1515

1616
## Build
@@ -105,7 +105,7 @@ crates/
105105
## Key Seismic Files
106106

107107
- **`crates/seismic-evm/src/lib.rs`**`SeismicEvm` (wraps revm), `SeismicEvmFactory` (stores `&'static GetPurposeKeysResponse`)
108-
- **`crates/seismic-evm/src/block/mod.rs`**`SeismicBlockExecutor` — the core Seismic logic: calls `plaintext_copy(&purpose_keys.tx_io_sk, signer)` to decrypt tx input before execution
108+
- **`crates/seismic-evm/src/block/mod.rs`**`SeismicBlockExecutor` — the core Seismic logic: calls `plaintext_copy(&purpose_keys.tx_io.secret_key(), signer)` to decrypt tx input before execution
109109
- **`crates/seismic-evm/src/hardfork.rs`**`SeismicHardfork::Mercury` at block 0; all Ethereum forks < Prague active
110110
- **`crates/evm/src/eth/protocol_params.rs`** — parses `ProtocolParamEvent` logs from the protocol params contract (`0x...506172616D73`), EIP-7685 request type `0xFF`
111111
- **`crates/evm/src/tx.rs`** — Seismic-specific `IntoTxEnv` and `FromRecoveredTx` impls for `SeismicTransaction` and `SeismicTxEnvelope` (all Ethereum tx types + Seismic type `0x74`)

0 commit comments

Comments
 (0)