Open JNP777 opened 4 months ago
what values are your props set to? I am having trouble reproducing
what values are your props set to? I am having trouble reproducing
solstruct: { sender: {your_evm_addy}64656661756c740000000000, priceX18: 2985200000000000000000, amount: 220000000000000000, expiration: 1715602468793, nonce: 1798939553346618344 }
domain: { name: Some("Vertex"), version: Some("0.0.1"), chain_id: Some(0x000000000000000000000000000000000000000000000000000000000000a4b1_U256), verifying_contract: Some(0xfe653438a1a4a7f56e727509c341d60a7b54fa91), salt: None }
oh yeah, you're definitely running into underlying serde_json i/u128 precision limitations. This will likely require changes to the sol macro or the sol-types data model 🤔
Component
primitives
What version of Alloy are you on?
alloy-core 0.7.2
Operating System
Linux
Describe the bug
Having this custom sol struct with i128 numbers, i find that snippet 1 works and it results in a correct hash, but snippet 2 doesnt, showing a "number out of range" error. i think this is cause snippet2 function will use serde::json serialization while first 1 wont
Snippet 1 let sig: FixedBytes<32> = msg.eip712_signing_hash(&(domain.clone())); info!("sig 1 {:?}", sig); Snippet 1
info!("st {:?} {:?}", TypedData::from_struct(&msg, Some(domain)).eip712_signing_hash(), sig); info!("sig 2 {:?}", sig);