Closed
Description
This is a tracking issue for what's needed to implement the Networking section of EIP-4844.
### Tasks
- [ ] #4084
- [ ] https://github.com/paradigmxyz/reth/issues/4073
- [ ] #4102
- [ ] https://github.com/paradigmxyz/reth/pull/4172
- [ ] #4105
- [x] Implement blob validation in transaction pool
The network types might end up looking something like this:
#[derive(Clone, Debug, PartialEq, Eq, RlpEncodableWrapper, RlpDecodableWrapper, Default)]
pub struct PooledTransactions( pub Vec<PooledTransaction> );
pub enum PooledTransaction {
Normal(TransactionSigned),
Blob(BlobTransaction)
}
impl Encodable for PooledTransaction {
// needs custom impl
}
/// A response to [`GetPooledTransactions`] that includes blob data, their commitments, and their
/// corresponding proofs.
// TODO: derive_arbitrary
#[derive(Clone, Debug, PartialEq, Eq, RlpEncodable, RlpDecodable, Default)]
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
pub struct BlobTransaction {
// TODO: include TxEip4844 into TransactionSigned
/// The transaction payload.
pub transaction: TransactionSigned,
/// The transaction's blob data.
pub blobs: Vec<Blob>,
/// The transaction's blob commitments.
pub commitments: Vec<Bytes48>,
/// The transaction's blob proofs.
pub proofs: Vec<Bytes48>,
}
impl BlobTransaction {
// add validation methods that can be used in the pool
}
Metadata
Metadata
Assignees
Labels
Type
Projects
Status
Done