Skip to content

Commit 9317165

Browse files
Fix precompiles genesis (#207)
* Tweak the genesis config * Add tests
1 parent 9c05f55 commit 9317165

File tree

5 files changed

+67
-41
lines changed

5 files changed

+67
-41
lines changed

node/src/chain_spec/crab.rs

Lines changed: 17 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -199,7 +199,23 @@ pub fn genesis_config() -> ChainSpec {
199199

200200
// EVM stuff.
201201
ethereum: Default::default(),
202-
evm: Default::default(),
202+
evm: EvmConfig {
203+
accounts: {
204+
BTreeMap::from_iter(
205+
CrabPrecompiles::<Runtime>::used_addresses().iter().map(|p| {
206+
(
207+
p.to_owned(),
208+
GenesisAccount {
209+
nonce: Default::default(),
210+
balance: Default::default(),
211+
storage: Default::default(),
212+
code: REVERT_BYTECODE.to_vec(),
213+
},
214+
)
215+
}),
216+
)
217+
},
218+
},
203219
base_fee: Default::default(),
204220

205221
// S2S stuff.
@@ -310,17 +326,6 @@ fn testnet_genesis(
310326
)
311327
})
312328
.chain([
313-
// Testing account.
314-
(
315-
H160::from_str("0x6be02d1d3665660d22ff9624b7be0551ee1ac91b")
316-
.unwrap(),
317-
GenesisAccount {
318-
balance: (10_000_000 * UNIT).into(),
319-
code: Default::default(),
320-
nonce: Default::default(),
321-
storage: Default::default(),
322-
},
323-
),
324329
// Benchmarking account.
325330
(
326331
H160::from_str("1000000000000000000000000000000000000001").unwrap(),

node/src/chain_spec/darwinia.rs

Lines changed: 17 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -199,7 +199,23 @@ pub fn genesis_config() -> ChainSpec {
199199

200200
// EVM stuff.
201201
ethereum: Default::default(),
202-
evm: Default::default(),
202+
evm: EvmConfig {
203+
accounts: {
204+
BTreeMap::from_iter(
205+
DarwiniaPrecompiles::<Runtime>::used_addresses().iter().map(|p| {
206+
(
207+
p.to_owned(),
208+
GenesisAccount {
209+
nonce: Default::default(),
210+
balance: Default::default(),
211+
storage: Default::default(),
212+
code: REVERT_BYTECODE.to_vec(),
213+
},
214+
)
215+
}),
216+
)
217+
},
218+
},
203219
base_fee: Default::default(),
204220

205221
// S2S stuff.
@@ -310,17 +326,6 @@ fn testnet_genesis(
310326
)
311327
})
312328
.chain([
313-
// Testing account.
314-
(
315-
H160::from_str("0x6be02d1d3665660d22ff9624b7be0551ee1ac91b")
316-
.unwrap(),
317-
GenesisAccount {
318-
balance: (10_000_000 * UNIT).into(),
319-
code: Default::default(),
320-
nonce: Default::default(),
321-
storage: Default::default(),
322-
},
323-
),
324329
// Benchmarking account.
325330
(
326331
H160::from_str("1000000000000000000000000000000000000001").unwrap(),

node/src/chain_spec/pangolin.rs

Lines changed: 17 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -199,7 +199,23 @@ pub fn genesis_config() -> ChainSpec {
199199

200200
// EVM stuff.
201201
ethereum: Default::default(),
202-
evm: Default::default(),
202+
evm: EvmConfig {
203+
accounts: {
204+
BTreeMap::from_iter(
205+
PangolinPrecompiles::<Runtime>::used_addresses().iter().map(|p| {
206+
(
207+
p.to_owned(),
208+
GenesisAccount {
209+
nonce: Default::default(),
210+
balance: Default::default(),
211+
storage: Default::default(),
212+
code: REVERT_BYTECODE.to_vec(),
213+
},
214+
)
215+
}),
216+
)
217+
},
218+
},
203219
base_fee: Default::default(),
204220
}
205221
},
@@ -304,17 +320,6 @@ fn testnet_genesis(
304320
)
305321
})
306322
.chain([
307-
// Testing account.
308-
(
309-
H160::from_str("0x6be02d1d3665660d22ff9624b7be0551ee1ac91b")
310-
.unwrap(),
311-
GenesisAccount {
312-
balance: (10_000_000 * UNIT).into(),
313-
code: Default::default(),
314-
nonce: Default::default(),
315-
storage: Default::default(),
316-
},
317-
),
318323
// Benchmarking account.
319324
(
320325
H160::from_str("1000000000000000000000000000000000000001").unwrap(),

runtime/common/src/test.rs

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -205,10 +205,7 @@ macro_rules! impl_account_migration_tests {
205205

206206
assert_ok!(migrate(from, to));
207207
assert_eq!(AccountMigration::kton_account_of(from_pk), None);
208-
assert_eq!(
209-
Assets::maybe_balance(KTON_ID, to).unwrap(),
210-
KTON_AMOUNT
211-
);
208+
assert_eq!(Assets::maybe_balance(KTON_ID, to).unwrap(), KTON_AMOUNT);
212209
});
213210
}
214211

tool/state-processor/src/tests.rs

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -339,7 +339,21 @@ fn evm_code_migrate() {
339339
}
340340

341341
{
342-
assert_eq!(tester.solo_evm_codes, tester.shell_evm_codes);
342+
tester.solo_evm_codes.iter().for_each(|(k, v)| {
343+
assert_eq!(tester.shell_evm_codes.get(k), Some(v));
344+
});
345+
}
346+
});
347+
}
348+
349+
#[test]
350+
fn precompiles_code_should_work() {
351+
run_test(|tester| {
352+
let addrs = ["001", "009", "400", "402", "600", "601"];
353+
354+
for i in addrs {
355+
let addr = format!("{}{i}", "0x0000000000000000000000000000000000000");
356+
assert_eq!(tester.shell_evm_codes.get(&addr), Some(&[96, 0, 96, 0, 253].to_vec()));
343357
}
344358
});
345359
}

0 commit comments

Comments
 (0)