-
Notifications
You must be signed in to change notification settings - Fork 249
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* refactor: signature keeps v r s in mem wip: port ser tests feature: Parity::chain_id test: normalize 27/28 fix: properly normalize in recovery fix: serde works now refactor wip: lots of stuff refactor: push signature into core primitives feat: seal feat: seal fix: k256 feature in network feature: rlp for TxLegacy feature: block wip test fix: payload lenght feat: sealable feature: Tx types tests: they pass???? refactor: envelope module refactor: TxType refactor: simpler rlp enc/decode for envelope fix: todo feature: enable sign_transaction feat: some froms and some cleanup lint: clippy fix: test feature fix: network receipt bounds receipt.rs restore providers * fix: network * fix: misc fixes for new signature methods * feature: custom 2718 error * fix: transaction may not be RLP * remove log mod * feature: Header, constants, and pure calculations * refactor: impl Sealable * refactor: move 2718 and add docs * chore: enable lints * fix: const fns * fix: correct eip2718 network encoding behavior * feature: arbitrary * cleanup: deps and patch * feature: Receipt trait * fix: impl bloom_cheap * feature: generic signature * doc: document signature type * fix: remove encodable bound * refactor: signabletx trait * fix: some lints and such * fix: remove dbg * fix: spacing * feature: alloy-eips * chore: port access list * misc arbitrary cleanup * fix: encode_2718 length * fix: use core git main instead of local * chore: clippy, docs * fix: features * fix: cap arbitrary logs * chore: use Vec instead of BufMut where possible * feat: fix Signer EIP-155, implement sign_transaction * chore: make ledger internal sign tx public * chore: remove eip1559 duplicate functions * feat: implement sign_transaction on Trezor (#100) * feat: implement sign_transaction on Trezor * fix: dyn trait upcasting is not stable yet * chore: relax requirements * chore: address review --------- Co-authored-by: DaniPopes <57450786+DaniPopes@users.noreply.github.com>
- Loading branch information
Showing
65 changed files
with
4,030 additions
and
838 deletions.
There are no files selected for viewing
This file contains 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
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
[package] | ||
name = "alloy-consensus" | ||
description = "Ethereum consensus interface" | ||
|
||
version.workspace = true | ||
edition.workspace = true | ||
rust-version.workspace = true | ||
authors.workspace = true | ||
license.workspace = true | ||
homepage.workspace = true | ||
repository.workspace = true | ||
exclude.workspace = true | ||
|
||
[dependencies] | ||
alloy-network.workspace = true | ||
alloy-primitives = { workspace = true, features = ["rlp"] } | ||
alloy-rlp.workspace = true | ||
alloy-eips.workspace = true | ||
|
||
# arbitrary | ||
arbitrary = { workspace = true, features = ["derive"], optional = true } | ||
|
||
[dev-dependencies] | ||
# arbitrary | ||
arbitrary = { workspace = true, features = ["derive"] } | ||
|
||
[features] | ||
k256 = ["alloy-primitives/k256", "alloy-network/k256"] | ||
arbitrary = ["dep:arbitrary", "alloy-eips/arbitrary"] |
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
# alloy-consensus | ||
|
||
Consensus types for the Ethereum blockchain. | ||
|
||
This crate contains constants, types, and functions for implementing Ethereum | ||
EL consensus and communication. This includes headers, blocks, transactions, | ||
eip2718 envelopes, eip2930, eip4844, and more. The types in this crate | ||
implement many of the traits found in [alloy_network]. | ||
|
||
In general a type belongs in this crate if it is committed to in the EL block | ||
header. This includes: | ||
|
||
- transactions | ||
- blocks | ||
- headers | ||
- receipts | ||
- [EIP-2718] envelopes. | ||
|
||
[alloy-network]: ../network | ||
[EIP-2718]: https://eips.ethereum.org/EIPS/eip-2718 | ||
|
||
## Provenance | ||
|
||
Much of this code was ported from [reth-primitives] as part of ongoing alloy | ||
migrations. | ||
|
||
[reth-primitives]: https://github.com/paradigmxyz/reth/tree/main/crates/primitives |
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,72 @@ | ||
//! Ethereum protocol-related constants | ||
use alloy_primitives::{address, b256, Address, B256}; | ||
|
||
/// The first four bytes of the call data for a function call specifies the function to be called. | ||
pub const SELECTOR_LEN: usize = 4; | ||
|
||
/// Maximum extra data size in a block after genesis | ||
pub const MAXIMUM_EXTRA_DATA_SIZE: usize = 32; | ||
|
||
/// Multiplier for converting gwei to wei. | ||
pub const GWEI_TO_WEI: u64 = 1_000_000_000; | ||
|
||
/// Multiplier for converting finney (milliether) to wei. | ||
pub const FINNEY_TO_WEI: u128 = (GWEI_TO_WEI as u128) * 1_000_000; | ||
|
||
/// Multiplier for converting ether to wei. | ||
pub const ETH_TO_WEI: u128 = FINNEY_TO_WEI * 1000; | ||
|
||
/// Multiplier for converting mgas to gas. | ||
pub const MGAS_TO_GAS: u64 = 1_000_000u64; | ||
|
||
/// The Ethereum mainnet genesis hash. | ||
pub const MAINNET_GENESIS_HASH: B256 = | ||
b256!("d4e56740f876aef8c010b86a40d5f56745a118d0906a34e69aec8c0db1cb8fa3"); | ||
|
||
/// Goerli genesis hash. | ||
pub const GOERLI_GENESIS_HASH: B256 = | ||
b256!("bf7e331f7f7c1dd2e05159666b3bf8bc7a8a3a9eb1d518969eab529dd9b88c1a"); | ||
|
||
/// Sepolia genesis hash. | ||
pub const SEPOLIA_GENESIS_HASH: B256 = | ||
b256!("25a5cc106eea7138acab33231d7160d69cb777ee0c2c553fcddf5138993e6dd9"); | ||
|
||
/// Holesky genesis hash. | ||
pub const HOLESKY_GENESIS_HASH: B256 = | ||
b256!("ff9006519a8ce843ac9c28549d24211420b546e12ce2d170c77a8cca7964f23d"); | ||
|
||
/// Testnet genesis hash. | ||
pub const DEV_GENESIS_HASH: B256 = | ||
b256!("2f980576711e3617a5e4d83dd539548ec0f7792007d505a3d2e9674833af2d7c"); | ||
|
||
/// Optimism goerli genesis hash. | ||
pub const GOERLI_OP_GENESIS: B256 = | ||
b256!("c1fc15cd51159b1f1e5cbc4b82e85c1447ddfa33c52cf1d98d14fba0d6354be1"); | ||
|
||
/// Base goerli genesis hash. | ||
pub const GOERLI_BASE_GENESIS: B256 = | ||
b256!("a3ab140f15ea7f7443a4702da64c10314eb04d488e72974e02e2d728096b4f76"); | ||
|
||
/// Keccak256 over empty array. | ||
pub const KECCAK_EMPTY: B256 = | ||
b256!("c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470"); | ||
|
||
/// Ommer root of empty list. | ||
pub const EMPTY_OMMER_ROOT_HASH: B256 = | ||
b256!("1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"); | ||
|
||
/// Root hash of an empty trie. | ||
pub const EMPTY_ROOT_HASH: B256 = | ||
b256!("56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"); | ||
|
||
/// Transactions root of empty receipts set. | ||
pub const EMPTY_RECEIPTS: B256 = EMPTY_ROOT_HASH; | ||
|
||
/// Transactions root of empty transactions set. | ||
pub const EMPTY_TRANSACTIONS: B256 = EMPTY_ROOT_HASH; | ||
|
||
/// Withdrawals root of empty withdrawals set. | ||
pub const EMPTY_WITHDRAWALS: B256 = EMPTY_ROOT_HASH; | ||
|
||
/// The address for the beacon roots contract defined in EIP-4788. | ||
pub const BEACON_ROOTS_ADDRESS: Address = address!("000F3df6D732807Ef1319fB7B8bB8522d0Beac02"); |
Oops, something went wrong.