Skip to content

Commit

Permalink
EIP-7702: change chain_id type to U256 (#21)
Browse files Browse the repository at this point in the history
* init

* fix
  • Loading branch information
programskillforverification authored Dec 23, 2024
1 parent 2f98825 commit 7814ca0
Showing 1 changed file with 15 additions and 10 deletions.
25 changes: 15 additions & 10 deletions crates/eip7702/src/auth_list.rs
Original file line number Diff line number Diff line change
Expand Up @@ -47,8 +47,7 @@ impl RecoveredAuthority {
#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))]
pub struct Authorization {
/// The chain ID of the authorization.
#[cfg_attr(feature = "serde", serde(with = "quantity"))]
pub chain_id: u64,
pub chain_id: U256,
/// The address of the authorization.
pub address: Address,
/// The nonce for the authorization.
Expand All @@ -62,8 +61,8 @@ impl Authorization {
/// # Note
///
/// Implementers should check that this matches the current `chain_id` *or* is 0.
pub const fn chain_id(&self) -> u64 {
self.chain_id
pub const fn chain_id(&self) -> &U256 {
&self.chain_id
}

/// Get the `address` for the authorization.
Expand Down Expand Up @@ -496,16 +495,19 @@ mod tests {
fn test_encode_decode_auth() {
// fully filled
test_encode_decode_roundtrip(Authorization {
chain_id: 1u64,
chain_id: U256::from(1),
address: Address::left_padding_from(&[6]),
nonce: 1,
});
}

#[test]
fn test_encode_decode_signed_auth() {
let auth =
Authorization { chain_id: 1u64, address: Address::left_padding_from(&[6]), nonce: 1 };
let auth = Authorization {
chain_id: U256::from(1),
address: Address::left_padding_from(&[6]),
nonce: 1,
};

let auth = auth.into_signed(PrimitiveSignature::from_str("48b55bfa915ac795c431978d8a6a992b628d557da5ff759b307d495a36649353efffd310ac743f371de3b9f7f9cb56c0b28ad43601b4ab949f53faa07bd2c8041b").unwrap());
let mut buf = Vec::new();
Expand All @@ -523,9 +525,12 @@ mod tests {
#[test]
fn test_auth_json() {
let sig = r#"{"r":"0xc569c92f176a3be1a6352dd5005bfc751dcb32f57623dd2a23693e64bf4447b0","s":"0x1a891b566d369e79b7a66eecab1e008831e22daa15f91a0a0cf4f9f28f47ee05","yParity":"0x1"}"#;
let auth =
Authorization { chain_id: 1u64, address: Address::left_padding_from(&[6]), nonce: 1 }
.into_signed(serde_json::from_str(sig).unwrap());
let auth = Authorization {
chain_id: U256::from(1),
address: Address::left_padding_from(&[6]),
nonce: 1,
}
.into_signed(serde_json::from_str(sig).unwrap());
let val = serde_json::to_string(&auth).unwrap();
let s = r#"{"chainId":"0x1","address":"0x0000000000000000000000000000000000000006","nonce":"0x1","yParity":"0x1","r":"0xc569c92f176a3be1a6352dd5005bfc751dcb32f57623dd2a23693e64bf4447b0","s":"0x1a891b566d369e79b7a66eecab1e008831e22daa15f91a0a0cf4f9f28f47ee05"}"#;
assert_eq!(val, s);
Expand Down

0 comments on commit 7814ca0

Please sign in to comment.