Skip to content

Commit 0138e9c

Browse files
authored
Merge 76d1b6e into a7655e5
2 parents a7655e5 + 76d1b6e commit 0138e9c

28 files changed

+131
-135
lines changed

crates/common/rlp/encode.rs

Lines changed: 36 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ pub fn encode<T: RLPEncode>(value: T) -> Vec<u8> {
1414
}
1515

1616
pub trait RLPEncode {
17-
fn encode(&self, buf: &mut dyn BufMut);
17+
fn encode(&self, buf: &mut Vec<u8>);
1818

1919
fn length(&self) -> usize {
2020
let mut buf = Vec::new();
@@ -31,7 +31,7 @@ pub trait RLPEncode {
3131

3232
impl RLPEncode for bool {
3333
#[inline(always)]
34-
fn encode(&self, buf: &mut dyn BufMut) {
34+
fn encode(&self, buf: &mut Vec<u8>) {
3535
if *self {
3636
buf.put_u8(0x01);
3737
} else {
@@ -47,7 +47,7 @@ impl RLPEncode for bool {
4747

4848
// integer types impls
4949

50-
fn impl_encode<const N: usize>(value_be: [u8; N], buf: &mut dyn BufMut) {
50+
fn impl_encode<const N: usize>(value_be: [u8; N], buf: &mut Vec<u8>) {
5151
let mut is_multi_byte_case = false;
5252

5353
for n in value_be.iter().take(N - 1) {
@@ -78,50 +78,50 @@ fn impl_encode<const N: usize>(value_be: [u8; N], buf: &mut dyn BufMut) {
7878
}
7979

8080
impl RLPEncode for u8 {
81-
fn encode(&self, buf: &mut dyn BufMut) {
81+
fn encode(&self, buf: &mut Vec<u8>) {
8282
impl_encode(self.to_be_bytes(), buf);
8383
}
8484
}
8585

8686
impl RLPEncode for u16 {
87-
fn encode(&self, buf: &mut dyn BufMut) {
87+
fn encode(&self, buf: &mut Vec<u8>) {
8888
impl_encode(self.to_be_bytes(), buf);
8989
}
9090
}
9191

9292
impl RLPEncode for u32 {
93-
fn encode(&self, buf: &mut dyn BufMut) {
93+
fn encode(&self, buf: &mut Vec<u8>) {
9494
impl_encode(self.to_be_bytes(), buf);
9595
}
9696
}
9797

9898
impl RLPEncode for u64 {
99-
fn encode(&self, buf: &mut dyn BufMut) {
99+
fn encode(&self, buf: &mut Vec<u8>) {
100100
impl_encode(self.to_be_bytes(), buf);
101101
}
102102
}
103103

104104
impl RLPEncode for usize {
105-
fn encode(&self, buf: &mut dyn BufMut) {
105+
fn encode(&self, buf: &mut Vec<u8>) {
106106
impl_encode(self.to_be_bytes(), buf);
107107
}
108108
}
109109

110110
impl RLPEncode for u128 {
111-
fn encode(&self, buf: &mut dyn BufMut) {
111+
fn encode(&self, buf: &mut Vec<u8>) {
112112
impl_encode(self.to_be_bytes(), buf);
113113
}
114114
}
115115

116116
impl RLPEncode for () {
117-
fn encode(&self, buf: &mut dyn BufMut) {
117+
fn encode(&self, buf: &mut Vec<u8>) {
118118
buf.put_u8(RLP_NULL);
119119
}
120120
}
121121

122122
impl RLPEncode for [u8] {
123123
#[inline(always)]
124-
fn encode(&self, buf: &mut dyn BufMut) {
124+
fn encode(&self, buf: &mut Vec<u8>) {
125125
if self.len() == 1 && self[0] < RLP_NULL {
126126
buf.put_u8(self[0]);
127127
} else {
@@ -142,39 +142,39 @@ impl RLPEncode for [u8] {
142142
}
143143

144144
impl<const N: usize> RLPEncode for [u8; N] {
145-
fn encode(&self, buf: &mut dyn BufMut) {
145+
fn encode(&self, buf: &mut Vec<u8>) {
146146
self.as_ref().encode(buf)
147147
}
148148
}
149149

150150
impl RLPEncode for str {
151-
fn encode(&self, buf: &mut dyn BufMut) {
151+
fn encode(&self, buf: &mut Vec<u8>) {
152152
self.as_bytes().encode(buf)
153153
}
154154
}
155155

156156
impl RLPEncode for &str {
157-
fn encode(&self, buf: &mut dyn BufMut) {
157+
fn encode(&self, buf: &mut Vec<u8>) {
158158
self.as_bytes().encode(buf)
159159
}
160160
}
161161

162162
impl RLPEncode for String {
163-
fn encode(&self, buf: &mut dyn BufMut) {
163+
fn encode(&self, buf: &mut Vec<u8>) {
164164
self.as_bytes().encode(buf)
165165
}
166166
}
167167

168168
impl RLPEncode for U256 {
169-
fn encode(&self, buf: &mut dyn BufMut) {
169+
fn encode(&self, buf: &mut Vec<u8>) {
170170
let leading_zeros_in_bytes: usize = (self.leading_zeros() / 8) as usize;
171171
let bytes = self.to_big_endian();
172172
bytes[leading_zeros_in_bytes..].encode(buf)
173173
}
174174
}
175175

176176
impl<T: RLPEncode> RLPEncode for Vec<T> {
177-
fn encode(&self, buf: &mut dyn BufMut) {
177+
fn encode(&self, buf: &mut Vec<u8>) {
178178
if self.is_empty() {
179179
buf.put_u8(0xc0);
180180
} else {
@@ -188,7 +188,7 @@ impl<T: RLPEncode> RLPEncode for Vec<T> {
188188
}
189189
}
190190

191-
pub fn encode_length(total_len: usize, buf: &mut dyn BufMut) {
191+
pub fn encode_length(total_len: usize, buf: &mut Vec<u8>) {
192192
if total_len < 56 {
193193
buf.put_u8(0xc0 + total_len as u8);
194194
} else {
@@ -202,7 +202,7 @@ pub fn encode_length(total_len: usize, buf: &mut dyn BufMut) {
202202
}
203203

204204
impl<S: RLPEncode, T: RLPEncode> RLPEncode for (S, T) {
205-
fn encode(&self, buf: &mut dyn BufMut) {
205+
fn encode(&self, buf: &mut Vec<u8>) {
206206
let total_len = self.0.length() + self.1.length();
207207
encode_length(total_len, buf);
208208
self.0.encode(buf);
@@ -211,7 +211,7 @@ impl<S: RLPEncode, T: RLPEncode> RLPEncode for (S, T) {
211211
}
212212

213213
impl<S: RLPEncode, T: RLPEncode, U: RLPEncode> RLPEncode for (S, T, U) {
214-
fn encode(&self, buf: &mut dyn BufMut) {
214+
fn encode(&self, buf: &mut Vec<u8>) {
215215
let total_len = self.0.length() + self.1.length() + self.2.length();
216216
encode_length(total_len, buf);
217217
self.0.encode(buf);
@@ -221,7 +221,7 @@ impl<S: RLPEncode, T: RLPEncode, U: RLPEncode> RLPEncode for (S, T, U) {
221221
}
222222

223223
impl<S: RLPEncode, T: RLPEncode, U: RLPEncode, V: RLPEncode> RLPEncode for (S, T, U, V) {
224-
fn encode(&self, buf: &mut dyn BufMut) {
224+
fn encode(&self, buf: &mut Vec<u8>) {
225225
let total_len = self.0.length() + self.1.length() + self.2.length() + self.3.length();
226226
encode_length(total_len, buf);
227227
self.0.encode(buf);
@@ -234,7 +234,7 @@ impl<S: RLPEncode, T: RLPEncode, U: RLPEncode, V: RLPEncode> RLPEncode for (S, T
234234
impl<S: RLPEncode, T: RLPEncode, U: RLPEncode, V: RLPEncode, W: RLPEncode> RLPEncode
235235
for (S, T, U, V, W)
236236
{
237-
fn encode(&self, buf: &mut dyn BufMut) {
237+
fn encode(&self, buf: &mut Vec<u8>) {
238238
let total_len =
239239
self.0.length() + self.1.length() + self.2.length() + self.3.length() + self.4.length();
240240
encode_length(total_len, buf);
@@ -247,19 +247,19 @@ impl<S: RLPEncode, T: RLPEncode, U: RLPEncode, V: RLPEncode, W: RLPEncode> RLPEn
247247
}
248248

249249
impl RLPEncode for Ipv4Addr {
250-
fn encode(&self, buf: &mut dyn BufMut) {
250+
fn encode(&self, buf: &mut Vec<u8>) {
251251
self.octets().encode(buf)
252252
}
253253
}
254254

255255
impl RLPEncode for Ipv6Addr {
256-
fn encode(&self, buf: &mut dyn BufMut) {
256+
fn encode(&self, buf: &mut Vec<u8>) {
257257
self.octets().encode(buf)
258258
}
259259
}
260260

261261
impl RLPEncode for IpAddr {
262-
fn encode(&self, buf: &mut dyn BufMut) {
262+
fn encode(&self, buf: &mut Vec<u8>) {
263263
match self {
264264
IpAddr::V4(ip) => ip.encode(buf),
265265
IpAddr::V6(ip) => ip.encode(buf),
@@ -268,69 +268,69 @@ impl RLPEncode for IpAddr {
268268
}
269269

270270
impl RLPEncode for Bytes {
271-
fn encode(&self, buf: &mut dyn BufMut) {
271+
fn encode(&self, buf: &mut Vec<u8>) {
272272
self.as_ref().encode(buf)
273273
}
274274
}
275275

276276
// encoding for Ethereum types
277277

278278
impl RLPEncode for ethereum_types::H32 {
279-
fn encode(&self, buf: &mut dyn BufMut) {
279+
fn encode(&self, buf: &mut Vec<u8>) {
280280
self.as_bytes().encode(buf)
281281
}
282282
}
283283

284284
impl RLPEncode for ethereum_types::H64 {
285-
fn encode(&self, buf: &mut dyn BufMut) {
285+
fn encode(&self, buf: &mut Vec<u8>) {
286286
self.as_bytes().encode(buf)
287287
}
288288
}
289289

290290
impl RLPEncode for ethereum_types::H128 {
291-
fn encode(&self, buf: &mut dyn BufMut) {
291+
fn encode(&self, buf: &mut Vec<u8>) {
292292
self.as_bytes().encode(buf)
293293
}
294294
}
295295

296296
impl RLPEncode for ethereum_types::Address {
297-
fn encode(&self, buf: &mut dyn BufMut) {
297+
fn encode(&self, buf: &mut Vec<u8>) {
298298
self.as_bytes().encode(buf)
299299
}
300300
}
301301

302302
impl RLPEncode for ethereum_types::H256 {
303-
fn encode(&self, buf: &mut dyn BufMut) {
303+
fn encode(&self, buf: &mut Vec<u8>) {
304304
self.as_bytes().encode(buf)
305305
}
306306
}
307307

308308
impl RLPEncode for ethereum_types::H264 {
309-
fn encode(&self, buf: &mut dyn BufMut) {
309+
fn encode(&self, buf: &mut Vec<u8>) {
310310
self.as_bytes().encode(buf)
311311
}
312312
}
313313

314314
impl RLPEncode for ethereum_types::H512 {
315-
fn encode(&self, buf: &mut dyn BufMut) {
315+
fn encode(&self, buf: &mut Vec<u8>) {
316316
self.as_bytes().encode(buf)
317317
}
318318
}
319319

320320
impl RLPEncode for ethereum_types::Signature {
321-
fn encode(&self, buf: &mut dyn BufMut) {
321+
fn encode(&self, buf: &mut Vec<u8>) {
322322
self.as_bytes().encode(buf)
323323
}
324324
}
325325

326326
impl RLPEncode for ethereum_types::Bloom {
327-
fn encode(&self, buf: &mut dyn BufMut) {
327+
fn encode(&self, buf: &mut Vec<u8>) {
328328
self.0.encode(buf)
329329
}
330330
}
331331

332332
pub trait PayloadRLPEncode {
333-
fn encode_payload(&self, buf: &mut dyn bytes::BufMut);
333+
fn encode_payload(&self, buf: &mut Vec<u8>);
334334
fn encode_payload_to_vec(&self) -> Vec<u8> {
335335
let mut buf = Vec::new();
336336
self.encode_payload(&mut buf);

crates/common/rlp/structs.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,7 @@ fn field_decode_error<T>(field_name: &str, err: RLPDecodeError) -> RLPDecodeErro
142142
/// }
143143
///
144144
/// impl RLPEncode for Simple {
145-
/// fn encode(&self, buf: &mut dyn BufMut) {
145+
/// fn encode(&self, buf: &mut Vec<u8>) {
146146
/// // The fields are encoded in the order given here
147147
/// Encoder::new(buf)
148148
/// .encode_field(&self.a)
@@ -158,7 +158,7 @@ fn field_decode_error<T>(field_name: &str, err: RLPDecodeError) -> RLPDecodeErro
158158
/// ```
159159
#[must_use = "`Encoder` must be consumed with `finish` to perform the encoding"]
160160
pub struct Encoder<'a> {
161-
buf: &'a mut dyn BufMut,
161+
buf: &'a mut Vec<u8>,
162162
temp_buf: Vec<u8>,
163163
}
164164

@@ -174,7 +174,7 @@ impl core::fmt::Debug for Encoder<'_> {
174174

175175
impl<'a> Encoder<'a> {
176176
/// Creates a new encoder that writes to the given buffer.
177-
pub fn new(buf: &'a mut dyn BufMut) -> Self {
177+
pub fn new(buf: &'a mut Vec<u8>) -> Self {
178178
// PERF: we could pre-allocate the buffer or switch to `ArrayVec`` if we could
179179
// bound the size of the encoded data.
180180
Self {

crates/common/trie/nibbles.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -208,7 +208,7 @@ impl AsRef<[u8]> for Nibbles {
208208
}
209209

210210
impl RLPEncode for Nibbles {
211-
fn encode(&self, buf: &mut dyn bytes::BufMut) {
211+
fn encode(&self, buf: &mut Vec<u8>) {
212212
Encoder::new(buf).encode_field(&self.data).finish();
213213
}
214214
}

crates/common/trie/node_hash.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ impl Default for NodeHash {
122122

123123
// Encoded as Vec<u8>
124124
impl RLPEncode for NodeHash {
125-
fn encode(&self, buf: &mut dyn bytes::BufMut) {
125+
fn encode(&self, buf: &mut Vec<u8>) {
126126
RLPEncode::encode(&Into::<Vec<u8>>::into(self), buf)
127127
}
128128
}

crates/common/trie/rlp.rs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
use bytes::BufMut as _;
12
// Contains RLP encoding and decoding implementations for Trie Nodes
23
// This encoding is only used to store the nodes in the DB, it is not the encoding used for hash computation
34
use ethrex_rlp::{
@@ -28,7 +29,7 @@ impl NodeType {
2829
}
2930

3031
impl RLPEncode for BranchNode {
31-
fn encode(&self, buf: &mut dyn bytes::BufMut) {
32+
fn encode(&self, buf: &mut Vec<u8>) {
3233
// TODO: choices encoded as vec due to conflicting trait impls for [T;N] & [u8;N], check if we can fix this later
3334
Encoder::new(buf)
3435
.encode_field(
@@ -44,7 +45,7 @@ impl RLPEncode for BranchNode {
4445
}
4546

4647
impl RLPEncode for ExtensionNode {
47-
fn encode(&self, buf: &mut dyn bytes::BufMut) {
48+
fn encode(&self, buf: &mut Vec<u8>) {
4849
Encoder::new(buf)
4950
.encode_field(&self.prefix)
5051
.encode_field(&self.child.compute_hash())
@@ -53,7 +54,7 @@ impl RLPEncode for ExtensionNode {
5354
}
5455

5556
impl RLPEncode for LeafNode {
56-
fn encode(&self, buf: &mut dyn bytes::BufMut) {
57+
fn encode(&self, buf: &mut Vec<u8>) {
5758
Encoder::new(buf)
5859
.encode_field(&self.partial)
5960
.encode_field(&self.value)
@@ -101,7 +102,7 @@ impl RLPDecode for LeafNode {
101102
}
102103

103104
impl RLPEncode for Node {
104-
fn encode(&self, buf: &mut dyn bytes::BufMut) {
105+
fn encode(&self, buf: &mut Vec<u8>) {
105106
let node_type = match self {
106107
Node::Branch(_) => NodeType::Branch,
107108
Node::Extension(_) => NodeType::Extension,

crates/common/types/account.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ pub fn code_hash(code: &Bytes) -> H256 {
8686
}
8787

8888
impl RLPEncode for AccountInfo {
89-
fn encode(&self, buf: &mut dyn bytes::BufMut) {
89+
fn encode(&self, buf: &mut Vec<u8>) {
9090
Encoder::new(buf)
9191
.encode_field(&self.code_hash)
9292
.encode_field(&self.balance)
@@ -111,7 +111,7 @@ impl RLPDecode for AccountInfo {
111111
}
112112

113113
impl RLPEncode for AccountState {
114-
fn encode(&self, buf: &mut dyn bytes::BufMut) {
114+
fn encode(&self, buf: &mut Vec<u8>) {
115115
Encoder::new(buf)
116116
.encode_field(&self.nonce)
117117
.encode_field(&self.balance)

crates/common/types/blobs_bundle.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -172,7 +172,7 @@ impl BlobsBundle {
172172
}
173173

174174
impl RLPEncode for BlobsBundle {
175-
fn encode(&self, buf: &mut dyn bytes::BufMut) {
175+
fn encode(&self, buf: &mut Vec<u8>) {
176176
let encoder = Encoder::new(buf);
177177
encoder
178178
.encode_field(&self.blobs)

0 commit comments

Comments
 (0)