mirror of
https://github.com/pezkuwichain/revive-differential-tests.git
synced 2026-04-24 20:37:56 +00:00
Compare commits
8 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 949d7d3802 | |||
| 6a20dbf058 | |||
| 9987952c63 | |||
| 2087453634 | |||
| d02152b565 | |||
| 75159229df | |||
| 9b75a4f236 | |||
| 2af1a62319 |
@@ -16,6 +16,7 @@ use alloy::{
|
|||||||
primitives::{B256, FixedBytes, U256},
|
primitives::{B256, FixedBytes, U256},
|
||||||
signers::local::PrivateKeySigner,
|
signers::local::PrivateKeySigner,
|
||||||
};
|
};
|
||||||
|
use anyhow::Context as _;
|
||||||
use clap::{Parser, ValueEnum, ValueHint};
|
use clap::{Parser, ValueEnum, ValueHint};
|
||||||
use revive_dt_common::types::{ParsedTestSpecifier, PlatformIdentifier};
|
use revive_dt_common::types::{ParsedTestSpecifier, PlatformIdentifier};
|
||||||
use semver::Version;
|
use semver::Version;
|
||||||
@@ -1079,7 +1080,10 @@ impl FromStr for WorkingDirectoryConfiguration {
|
|||||||
fn from_str(s: &str) -> Result<Self, Self::Err> {
|
fn from_str(s: &str) -> Result<Self, Self::Err> {
|
||||||
match s {
|
match s {
|
||||||
"" => Ok(Default::default()),
|
"" => Ok(Default::default()),
|
||||||
_ => Ok(Self::Path(PathBuf::from(s))),
|
_ => PathBuf::from(s)
|
||||||
|
.canonicalize()
|
||||||
|
.context("Failed to canonicalize the working directory path")
|
||||||
|
.map(Self::Path),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -598,7 +598,10 @@ where
|
|||||||
let expected = !assertion.exception;
|
let expected = !assertion.exception;
|
||||||
let actual = receipt.status();
|
let actual = receipt.status();
|
||||||
if actual != expected {
|
if actual != expected {
|
||||||
let revert_reason = tracing_result.revert_reason.as_ref();
|
let revert_reason = tracing_result
|
||||||
|
.revert_reason
|
||||||
|
.as_ref()
|
||||||
|
.or(tracing_result.error.as_ref());
|
||||||
tracing::error!(
|
tracing::error!(
|
||||||
expected,
|
expected,
|
||||||
actual,
|
actual,
|
||||||
|
|||||||
+14
-2
@@ -234,9 +234,15 @@ impl Platform for ReviveDevNodePolkavmResolcPlatform {
|
|||||||
.path
|
.path
|
||||||
.as_path();
|
.as_path();
|
||||||
let wallet = AsRef::<WalletConfiguration>::as_ref(&context).wallet();
|
let wallet = AsRef::<WalletConfiguration>::as_ref(&context).wallet();
|
||||||
|
let working_directory = AsRef::<WorkingDirectoryConfiguration>::as_ref(&context).as_path();
|
||||||
let export_chainspec_command = SubstrateNode::REVIVE_DEV_NODE_EXPORT_CHAINSPEC_COMMAND;
|
let export_chainspec_command = SubstrateNode::REVIVE_DEV_NODE_EXPORT_CHAINSPEC_COMMAND;
|
||||||
|
|
||||||
SubstrateNode::node_genesis(revive_dev_node_path, export_chainspec_command, &wallet)
|
SubstrateNode::node_genesis(
|
||||||
|
revive_dev_node_path,
|
||||||
|
export_chainspec_command,
|
||||||
|
&wallet,
|
||||||
|
working_directory,
|
||||||
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -302,9 +308,15 @@ impl Platform for ReviveDevNodeRevmSolcPlatform {
|
|||||||
.path
|
.path
|
||||||
.as_path();
|
.as_path();
|
||||||
let wallet = AsRef::<WalletConfiguration>::as_ref(&context).wallet();
|
let wallet = AsRef::<WalletConfiguration>::as_ref(&context).wallet();
|
||||||
|
let working_directory = AsRef::<WorkingDirectoryConfiguration>::as_ref(&context).as_path();
|
||||||
let export_chainspec_command = SubstrateNode::REVIVE_DEV_NODE_EXPORT_CHAINSPEC_COMMAND;
|
let export_chainspec_command = SubstrateNode::REVIVE_DEV_NODE_EXPORT_CHAINSPEC_COMMAND;
|
||||||
|
|
||||||
SubstrateNode::node_genesis(revive_dev_node_path, export_chainspec_command, &wallet)
|
SubstrateNode::node_genesis(
|
||||||
|
revive_dev_node_path,
|
||||||
|
export_chainspec_command,
|
||||||
|
&wallet,
|
||||||
|
working_directory,
|
||||||
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
use std::{collections::HashMap, fmt::Display, str::FromStr};
|
use std::{collections::HashMap, fmt::Display, str::FromStr};
|
||||||
|
|
||||||
|
use alloy::hex::ToHexExt;
|
||||||
use alloy::primitives::{FixedBytes, utils::parse_units};
|
use alloy::primitives::{FixedBytes, utils::parse_units};
|
||||||
use alloy::{
|
use alloy::{
|
||||||
eips::BlockNumberOrTag,
|
eips::BlockNumberOrTag,
|
||||||
@@ -686,8 +687,8 @@ impl Calldata {
|
|||||||
Calldata::Compound(items) => {
|
Calldata::Compound(items) => {
|
||||||
stream::iter(items.iter().zip(other.chunks(32)))
|
stream::iter(items.iter().zip(other.chunks(32)))
|
||||||
.map(|(this, other)| async move {
|
.map(|(this, other)| async move {
|
||||||
// The matterlabs format supports wildcards and therefore we
|
// The MatterLabs format supports wildcards and therefore we also need to
|
||||||
// also need to support them.
|
// support them.
|
||||||
if this.as_ref() == "*" {
|
if this.as_ref() == "*" {
|
||||||
return Ok::<_, anyhow::Error>(true);
|
return Ok::<_, anyhow::Error>(true);
|
||||||
}
|
}
|
||||||
@@ -768,7 +769,14 @@ impl CalldataItem {
|
|||||||
match stack.as_slice() {
|
match stack.as_slice() {
|
||||||
// Empty stack means that we got an empty compound calldata which we resolve to zero.
|
// Empty stack means that we got an empty compound calldata which we resolve to zero.
|
||||||
[] => Ok(U256::ZERO),
|
[] => Ok(U256::ZERO),
|
||||||
[CalldataToken::Item(item)] => Ok(*item),
|
[CalldataToken::Item(item)] => {
|
||||||
|
tracing::debug!(
|
||||||
|
original_item = ?self,
|
||||||
|
resolved_item = item.to_be_bytes::<32>().encode_hex(),
|
||||||
|
"Resolution Done"
|
||||||
|
);
|
||||||
|
Ok(*item)
|
||||||
|
}
|
||||||
_ => Err(anyhow::anyhow!(
|
_ => Err(anyhow::anyhow!(
|
||||||
"Invalid calldata arithmetic operation - Invalid stack"
|
"Invalid calldata arithmetic operation - Invalid stack"
|
||||||
)),
|
)),
|
||||||
|
|||||||
@@ -160,6 +160,7 @@ impl SubstrateNode {
|
|||||||
&self.node_binary,
|
&self.node_binary,
|
||||||
&self.export_chainspec_command,
|
&self.export_chainspec_command,
|
||||||
&self.wallet,
|
&self.wallet,
|
||||||
|
self.base_directory.as_path(),
|
||||||
)
|
)
|
||||||
.context("Failed to prepare the chainspec command")?;
|
.context("Failed to prepare the chainspec command")?;
|
||||||
|
|
||||||
@@ -319,6 +320,7 @@ impl SubstrateNode {
|
|||||||
node_path: &Path,
|
node_path: &Path,
|
||||||
export_chainspec_command: &str,
|
export_chainspec_command: &str,
|
||||||
wallet: &EthereumWallet,
|
wallet: &EthereumWallet,
|
||||||
|
base_directory: impl AsRef<Path>,
|
||||||
) -> anyhow::Result<serde_json::Value> {
|
) -> anyhow::Result<serde_json::Value> {
|
||||||
trace!("Exporting the chainspec");
|
trace!("Exporting the chainspec");
|
||||||
let output = Command::new(node_path)
|
let output = Command::new(node_path)
|
||||||
@@ -326,6 +328,7 @@ impl SubstrateNode {
|
|||||||
.arg("--chain")
|
.arg("--chain")
|
||||||
.arg("dev")
|
.arg("dev")
|
||||||
.env_remove("RUST_LOG")
|
.env_remove("RUST_LOG")
|
||||||
|
.current_dir(base_directory)
|
||||||
.output()
|
.output()
|
||||||
.context("Failed to export the chain-spec")?;
|
.context("Failed to export the chain-spec")?;
|
||||||
|
|
||||||
|
|||||||
@@ -62,7 +62,10 @@ where
|
|||||||
) -> TransportResult<Self::Fillable> {
|
) -> TransportResult<Self::Fillable> {
|
||||||
match self.inner.prepare(provider, tx).await {
|
match self.inner.prepare(provider, tx).await {
|
||||||
Ok(fill) => Ok(Some(fill)),
|
Ok(fill) => Ok(Some(fill)),
|
||||||
Err(_) => Ok(None),
|
Err(err) => {
|
||||||
|
tracing::debug!(error = ?err, "Gas Provider Estimation Failed, using fallback");
|
||||||
|
Ok(None)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+1
-1
Submodule polkadot-sdk updated: f268e32768...6ffecaaab2
+1
-1
Submodule resolc-compiler-tests updated: ce77cb1166...bb3b0c1319
Reference in New Issue
Block a user