Skip to content

Commit 6d86fe2

Browse files
authored
chore: upgrade the versions of primitive-types to 0.13 and rlp to 0.6 (#305)
* chore: upgrade the versions of `primitive-types` to `0.13` and `rlp` to `0.6` * chore: for security reasons, the `rev` field uses the full hash value * remove the jsontests job from CI workflow
1 parent f45fcb7 commit 6d86fe2

File tree

10 files changed

+38
-41
lines changed

10 files changed

+38
-41
lines changed

.github/workflows/rust.yml

+20-17
Original file line numberDiff line numberDiff line change
@@ -32,20 +32,23 @@ jobs:
3232
run: cargo build --features tracing --verbose
3333
- name: Run tests
3434
run: cargo test --verbose
35-
jsontests:
36-
runs-on: ubuntu-latest
37-
steps:
38-
- uses: actions/checkout@v2
39-
with:
40-
repository: "rust-blockchain/evm-tests"
41-
submodules: recursive
42-
- name: Submodules
43-
run: |
44-
cd evm
45-
git remote set-url origin "$GITHUB_SERVER_URL/$GITHUB_REPOSITORY"
46-
git fetch origin $GITHUB_SHA
47-
git checkout $GITHUB_SHA
48-
- name: Run tests
49-
run: |
50-
cd jsontests
51-
cargo test --release --verbose
35+
# FIXME: Due to the evm-tests repository used by the jsontests job being archived, the tests cannot be run,
36+
# so this jsontests job has been temporarily removed. The jsontests job will be improved later,
37+
# see issue #182
38+
# jsontests:
39+
# runs-on: ubuntu-latest
40+
# steps:
41+
# - uses: actions/checkout@v2
42+
# with:
43+
# repository: "rust-blockchain/evm-tests"
44+
# submodules: recursive
45+
# - name: Submodules
46+
# run: |
47+
# cd evm
48+
# git remote set-url origin "$GITHUB_SERVER_URL/$GITHUB_REPOSITORY"
49+
# git fetch origin $GITHUB_SHA
50+
# git checkout $GITHUB_SHA
51+
# - name: Run tests
52+
# run: |
53+
# cd jsontests
54+
# cargo test --release --verbose

Cargo.toml

+4-4
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,10 @@ edition = "2018"
1010

1111
[dependencies]
1212
auto_impl = "1.0"
13-
ethereum = { version = "0.15", default-features = false }
13+
ethereum = { git = "https://github.com/rust-ethereum/ethereum.git", rev = "3be0d8fd4c2ad1ba216b69ef65b9382612efc8ba", default-features = false }
1414
log = { version = "0.4", default-features = false }
15-
primitive-types = { version = "0.12", default-features = false, features = ["rlp"] }
16-
rlp = { version = "0.5", default-features = false }
15+
primitive-types = { version = "0.13", default-features = false, features = ["rlp"] }
16+
rlp = { version = "0.6", default-features = false }
1717
sha3 = { version = "0.10", default-features = false }
1818

1919
# Optional dependencies
@@ -55,7 +55,7 @@ with-codec = [
5555
"scale-info",
5656
"primitive-types/codec",
5757
"primitive-types/scale-info",
58-
"ethereum/with-codec",
58+
"ethereum/with-scale",
5959
"evm-core/with-codec",
6060
]
6161
with-serde = [

benches/loop.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -42,9 +42,9 @@ fn run_loop_contract() {
4242
},
4343
);
4444

45-
let backend = MemoryBackend::new(&vicinity, state);
45+
let mut backend = MemoryBackend::new(&vicinity, state);
4646
let metadata = StackSubstateMetadata::new(u64::MAX, &config);
47-
let state = MemoryStackState::new(metadata, &backend);
47+
let state = MemoryStackState::new(metadata, &mut backend);
4848
let precompiles = BTreeMap::new();
4949
let mut executor = StackExecutor::new_with_precompiles(state, &config, &precompiles);
5050

core/Cargo.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ edition = "2018"
1010

1111
[dependencies]
1212
log = { version = "0.4", optional = true }
13-
primitive-types = { version = "0.12", default-features = false }
13+
primitive-types = { version = "0.13", default-features = false }
1414
scale-codec = { package = "parity-scale-codec", version = "3.2", default-features = false, features = ["derive", "full"], optional = true }
1515
scale-info = { version = "2.3", default-features = false, features = ["derive"], optional = true }
1616
serde = { version = "1.0", default-features = false, features = ["derive"], optional = true }

core/src/eval/macros.rs

+1-2
Original file line numberDiff line numberDiff line change
@@ -53,8 +53,7 @@ macro_rules! push {
5353
macro_rules! push_u256 {
5454
( $machine:expr, $( $x:expr ),* ) => (
5555
$(
56-
let mut value = H256::default();
57-
$x.to_big_endian(&mut value[..]);
56+
let value = H256::from($x.to_big_endian());
5857
match $machine.stack.push(value) {
5958
Ok(()) => (),
6059
Err(e) => return Control::Exit(e.into()),

gasometer/Cargo.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ edition = "2018"
1111
[dependencies]
1212
environmental = { version = "1.1.2", default-features = false, optional = true }
1313
log = { version = "0.4", optional = true }
14-
primitive-types = { version = "0.12", default-features = false }
14+
primitive-types = { version = "0.13", default-features = false }
1515

1616
evm-core = { version = "0.42", path = "../core", default-features = false }
1717
evm-runtime = { version = "0.42", path = "../runtime", default-features = false }

runtime/Cargo.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ edition = "2018"
1111
[dependencies]
1212
auto_impl = "1.0"
1313
environmental = { version = "1.1.2", default-features = false, optional = true }
14-
primitive-types = { version = "0.12", default-features = false }
14+
primitive-types = { version = "0.13", default-features = false }
1515
sha3 = { version = "0.10", default-features = false }
1616

1717
evm-core = { version = "0.42", path = "../core", default-features = false }

runtime/src/eval/macros.rs

+1-2
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,7 @@ macro_rules! push {
4343
macro_rules! push_u256 {
4444
( $machine:expr, $( $x:expr ),* ) => (
4545
$(
46-
let mut value = H256::default();
47-
$x.to_big_endian(&mut value[..]);
46+
let value = H256::from($x.to_big_endian());
4847
match $machine.machine.stack_mut().push(value) {
4948
Ok(()) => (),
5049
Err(e) => return Control::Exit(e.into()),

runtime/src/eval/mod.rs

+1-2
Original file line numberDiff line numberDiff line change
@@ -113,8 +113,7 @@ pub fn finish_call(
113113
&runtime.return_data_buffer[..],
114114
) {
115115
Ok(()) => {
116-
let mut value = H256::default();
117-
U256::one().to_big_endian(&mut value[..]);
116+
let value = H256::from(U256::one().to_big_endian());
118117
runtime.machine.stack_mut().push(value)?;
119118
Ok(())
120119
}

runtime/src/eval/system.rs

+6-9
Original file line numberDiff line numberDiff line change
@@ -67,25 +67,22 @@ pub fn caller<H: Handler>(runtime: &mut Runtime) -> Control<H> {
6767
}
6868

6969
pub fn callvalue<H: Handler>(runtime: &mut Runtime) -> Control<H> {
70-
let mut ret = H256::default();
71-
runtime.context.apparent_value.to_big_endian(&mut ret[..]);
72-
push!(runtime, ret);
70+
let ret = runtime.context.apparent_value.to_big_endian();
71+
push!(runtime, H256::from(ret));
7372

7473
Control::Continue
7574
}
7675

7776
pub fn gasprice<H: Handler>(runtime: &mut Runtime, handler: &H) -> Control<H> {
78-
let mut ret = H256::default();
79-
handler.gas_price().to_big_endian(&mut ret[..]);
80-
push!(runtime, ret);
77+
let ret = handler.gas_price().to_big_endian();
78+
push!(runtime, H256::from(ret));
8179

8280
Control::Continue
8381
}
8482

8583
pub fn base_fee<H: Handler>(runtime: &mut Runtime, handler: &H) -> Control<H> {
86-
let mut ret = H256::default();
87-
handler.block_base_fee_per_gas().to_big_endian(&mut ret[..]);
88-
push!(runtime, ret);
84+
let ret = handler.block_base_fee_per_gas().to_big_endian();
85+
push!(runtime, H256::from(ret));
8986

9087
Control::Continue
9188
}

0 commit comments

Comments
 (0)