mirror of
https://github.com/pezkuwichain/revive-differential-tests.git
synced 2026-04-27 19:37:58 +00:00
Add test
This commit is contained in:
@@ -434,6 +434,53 @@ mod tests {
|
||||
assert_eq!(decoded.0, 42);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_encoded_input_address_with_signature() {
|
||||
let raw_abi = r#"[
|
||||
{
|
||||
"inputs": [{"name": "recipient", "type": "address"}],
|
||||
"name": "send",
|
||||
"outputs": [],
|
||||
"stateMutability": "nonpayable",
|
||||
"type": "function"
|
||||
}
|
||||
]"#;
|
||||
|
||||
let parsed_abi: JsonAbi = serde_json::from_str(raw_abi).unwrap();
|
||||
let selector = parsed_abi
|
||||
.function("send")
|
||||
.unwrap()
|
||||
.first()
|
||||
.unwrap()
|
||||
.selector()
|
||||
.0;
|
||||
|
||||
let input: Input = Input {
|
||||
instance: "Contract".to_owned().into(),
|
||||
method: Method::FunctionName("send(address)".to_owned()),
|
||||
calldata: Some(Calldata::Compound(vec![
|
||||
"0x1000000000000000000000000000000000000001".to_string(),
|
||||
])),
|
||||
..Default::default()
|
||||
};
|
||||
|
||||
let mut contracts = HashMap::new();
|
||||
contracts.insert(
|
||||
ContractInstance::new_from("Contract"),
|
||||
(Address::ZERO, parsed_abi),
|
||||
);
|
||||
|
||||
let encoded = input.encoded_input(&contracts, &DummyEthereumNode).unwrap();
|
||||
assert!(encoded.0.starts_with(&selector));
|
||||
|
||||
type T = (alloy_primitives::Address,);
|
||||
let decoded: T = T::abi_decode(&encoded.0[4..]).unwrap();
|
||||
assert_eq!(
|
||||
decoded.0,
|
||||
address!("0x1000000000000000000000000000000000000001")
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_encoded_input_address() {
|
||||
let raw_abi = r#"[
|
||||
|
||||
Reference in New Issue
Block a user