mirror of
https://github.com/logos-storage/plonky2.git
synced 2026-01-05 23:33:07 +00:00
Modify ecrecover tests
This commit is contained in:
parent
15ee891778
commit
f9ec4e8e7d
@ -35,6 +35,7 @@ pub(crate) fn get_opcode(mnemonic: &str) -> u8 {
|
|||||||
"SHR" => 0x1c,
|
"SHR" => 0x1c,
|
||||||
"SAR" => 0x1d,
|
"SAR" => 0x1d,
|
||||||
"KECCAK256" => 0x20,
|
"KECCAK256" => 0x20,
|
||||||
|
"SHA3" => 0x20,
|
||||||
"ADDRESS" => 0x30,
|
"ADDRESS" => 0x30,
|
||||||
"BALANCE" => 0x31,
|
"BALANCE" => 0x31,
|
||||||
"ORIGIN" => 0x32,
|
"ORIGIN" => 0x32,
|
||||||
|
|||||||
@ -1,20 +1,13 @@
|
|||||||
|
use std::str::FromStr;
|
||||||
|
|
||||||
use anyhow::Result;
|
use anyhow::Result;
|
||||||
use ethereum_types::U256;
|
use ethereum_types::U256;
|
||||||
use keccak_hash::keccak;
|
|
||||||
|
|
||||||
use crate::cpu::kernel::aggregator::combined_kernel;
|
use crate::cpu::kernel::aggregator::combined_kernel;
|
||||||
use crate::cpu::kernel::assembler::Kernel;
|
use crate::cpu::kernel::assembler::Kernel;
|
||||||
use crate::cpu::kernel::interpreter::run;
|
use crate::cpu::kernel::interpreter::run;
|
||||||
use crate::cpu::kernel::tests::u256ify;
|
use crate::cpu::kernel::tests::u256ify;
|
||||||
|
|
||||||
fn pubkey_to_addr(x: U256, y: U256) -> Vec<u8> {
|
|
||||||
let mut buf = [0; 64];
|
|
||||||
x.to_big_endian(&mut buf[0..32]);
|
|
||||||
y.to_big_endian(&mut buf[32..64]);
|
|
||||||
let hash = keccak(buf);
|
|
||||||
hash.0[12..].to_vec()
|
|
||||||
}
|
|
||||||
|
|
||||||
fn test_valid_ecrecover(
|
fn test_valid_ecrecover(
|
||||||
hash: &str,
|
hash: &str,
|
||||||
v: &str,
|
v: &str,
|
||||||
@ -24,10 +17,9 @@ fn test_valid_ecrecover(
|
|||||||
kernel: &Kernel,
|
kernel: &Kernel,
|
||||||
) -> Result<()> {
|
) -> Result<()> {
|
||||||
let ecrecover = kernel.global_labels["ecrecover"];
|
let ecrecover = kernel.global_labels["ecrecover"];
|
||||||
let initial_stack = u256ify([s, r, v, hash])?;
|
let initial_stack = u256ify(["0xdeadbeef", s, r, v, hash])?;
|
||||||
let stack = run(&kernel.code, ecrecover, initial_stack).stack;
|
let stack = run(&kernel.code, ecrecover, initial_stack).stack;
|
||||||
let got = pubkey_to_addr(stack[1], stack[0]);
|
assert_eq!(stack[0], U256::from_str(expected).unwrap());
|
||||||
assert_eq!(got, hex::decode(&expected[2..]).unwrap());
|
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user