Skip to content

Commit

Permalink
Merge branch 'main' into chore-move-to-alloy-pt3
Browse files Browse the repository at this point in the history
  • Loading branch information
gabriel-aranha-cw authored Jan 30, 2025
2 parents fe6fc6e + 37aa477 commit 1c65966
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 9 deletions.
14 changes: 6 additions & 8 deletions e2e/test/external/e2e-json-rpc.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -378,14 +378,12 @@ describe("JSON-RPC", () => {
{ tracer: "prestateTracer", tracerConfig: { diffMode: false } },
]);

expect(trace.data.result[(await contract.getAddress()).toLowerCase()]).to.deep.equal({
balance: "0x0",
code: "0x608060405234801561001057600080fd5b50600436106100675760003560e01c80633825d828116100505780633825d828146100b1578063c2bc2efc146100c4578063f5d82b6b146100ed57600080fd5b806326ffee081461006c57806327e235e314610091575b600080fd5b61007f61007a3660046102db565b610100565b60405190815260200160405180910390f35b61007f61009f366004610305565b60006020819052908152604090205481565b61007f6100bf3660046102db565b61020a565b61007f6100d2366004610305565b6001600160a01b031660009081526020819052604090205490565b61007f6100fb3660046102db565b610255565b6001600160a01b038216600090815260208190526040812054821115610186576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f496e73756666696369656e742062616c616e6365000000000000000000000000604482015260640160405180910390fd5b6001600160a01b038316600090815260208190526040812080548492906101ae908490610356565b90915550506040518281526001600160a01b038416907ff9c652bcdb0eed6299c6a878897eb3af110dbb265833e7af75ad3d2c2f4a980c906020015b60405180910390a250336000908152602081905260409020545b92915050565b6001600160a01b038216600081815260208181526040808320859055518481529192917ffd28ec3ec2555238d8ad6f9faf3e4cd10e574ce7e7ef28b73caa53f9512f65b991016101ea565b6001600160a01b03821660009081526020819052604081208054839190839061027f908490610369565b90915550506040518281526001600160a01b038416907f2728c9d3205d667bbc0eefdfeda366261b4d021949630c047f3e5834b30611ab906020016101ea565b80356001600160a01b03811681146102d657600080fd5b919050565b600080604083850312156102ee57600080fd5b6102f7836102bf565b946020939093013593505050565b60006020828403121561031757600080fd5b610320826102bf565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8181038181111561020457610204610327565b808201808211156102045761020461032756fea2646970667358221220d9e0843c97e3be54f0f2da0b4f159ccb1fd0e9b3189aef5dacb44af21dbfd22564736f6c63430008180033",
nonce: 1,
storage: {
"0x723077b8a1b173adc35e5f0e7e3662fd1208212cb629f9c128551ea7168da722":
"0x000000000000000000000000000000000000000000000000000000000000001e",
},
const resultObj = trace.data.result[(await contract.getAddress()).toLowerCase()];
expect(resultObj.balance).to.equal("0x0");
expect(resultObj.nonce).to.equal(1);
expect(resultObj.storage).to.deep.equal({
"0x723077b8a1b173adc35e5f0e7e3662fd1208212cb629f9c128551ea7168da722":
"0x000000000000000000000000000000000000000000000000000000000000001e",
});
});

Expand Down
22 changes: 21 additions & 1 deletion src/eth/primitives/call_input.rs
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
use display_json::DebugAsJson;
use serde::Deserialize;

use crate::eth::primitives::Address;
use crate::eth::primitives::Bytes;
use crate::eth::primitives::Wei;

#[derive(DebugAsJson, Clone, PartialEq, Eq, fake::Dummy, serde::Serialize, serde::Deserialize)]
#[derive(DebugAsJson, Clone, PartialEq, Eq, fake::Dummy, serde::Serialize)]
pub struct CallInput {
#[serde(rename = "from")]
pub from: Option<Address>,
Expand All @@ -18,3 +19,22 @@ pub struct CallInput {
#[serde(rename = "data", alias = "input", default)]
pub data: Bytes,
}

impl<'de> Deserialize<'de> for CallInput {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: serde::Deserializer<'de>,
{
let s = serde_json::Value::deserialize(deserializer)?;

let from = serde_json::from_value(s.get("from").cloned().unwrap_or(serde_json::Value::Null)).map_err(serde::de::Error::custom)?;
let to = serde_json::from_value(s.get("to").cloned().unwrap_or(serde_json::Value::Null)).map_err(serde::de::Error::custom)?;
let value = serde_json::from_value(s.get("value").cloned().unwrap_or_else(|| serde_json::Value::String("0x0".to_string())))
.map_err(serde::de::Error::custom)?;

let data_value = s.get("data").or_else(|| s.get("input")).cloned().unwrap_or(serde_json::Value::Null);
let data = serde_json::from_value(data_value).unwrap_or_default();

Ok(CallInput { from, to, value, data })
}
}

0 comments on commit 1c65966

Please sign in to comment.