Skip to content

Commit

Permalink
fix: scarb bump for LS (dojoengine#2012)
Browse files Browse the repository at this point in the history
* chore: bump scarb and cairo-lang

* fix: adjust to new scarb API

* fix: ensure test-utils is correctly detected in other projects

* fix: fix fmt

* fix: impl missing upcast for ParserGroup

* chore: cleanup LS dependencies

* fix: add back the clap version argument

* fix: update tests

* fix: fix tests

* ci: test with larger runner

* chore: bump scarb to include tracing fix

* fix: add workaround for cairo inference regression
  • Loading branch information
glihm authored May 29, 2024
1 parent 0ab7d21 commit 532ed95
Show file tree
Hide file tree
Showing 29 changed files with 986 additions and 446 deletions.
1,122 changes: 832 additions & 290 deletions Cargo.lock

Large diffs are not rendered by default.

76 changes: 24 additions & 52 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -110,28 +110,28 @@ async-trait = "0.1.77"
auto_impl = "1.2.0"
base64 = "0.21.2"
bytes = "1.6"
cairo-lang-compiler = "=2.6.3"
cairo-lang-debug = "=2.6.3"
cairo-lang-defs = "=2.6.3"
cairo-lang-diagnostics = "=2.6.3"
cairo-lang-filesystem = "=2.6.3"
cairo-lang-formatter = "=2.6.3"
cairo-lang-language-server = "=2.6.3"
cairo-lang-lowering = "=2.6.3"
cairo-lang-parser = "=2.6.3"
cairo-lang-plugins = { version = "=2.6.3", features = [ "testing" ] }
cairo-lang-project = "=2.6.3"
cairo-lang-semantic = { version = "=2.6.3", features = [ "testing" ] }
cairo-lang-sierra = "=2.6.3"
cairo-lang-sierra-generator = "=2.6.3"
cairo-lang-sierra-to-casm = "=2.6.3"
cairo-lang-starknet = "=2.6.3"
cairo-lang-starknet-classes = "=2.6.3"
cairo-lang-syntax = "=2.6.3"
cairo-lang-test-plugin = "=2.6.3"
cairo-lang-test-runner = "=2.6.3"
cairo-lang-test-utils = "=2.6.3"
cairo-lang-utils = "=2.6.3"
cairo-lang-compiler = { git = "https://github.com/starkware-libs/cairo", rev = "d9984ef58e2f704909e271f2f01327f520ded632" }
cairo-lang-debug = { git = "https://github.com/starkware-libs/cairo", rev = "d9984ef58e2f704909e271f2f01327f520ded632" }
cairo-lang-defs = { git = "https://github.com/starkware-libs/cairo", rev = "d9984ef58e2f704909e271f2f01327f520ded632" }
cairo-lang-diagnostics = { git = "https://github.com/starkware-libs/cairo", rev = "d9984ef58e2f704909e271f2f01327f520ded632" }
cairo-lang-filesystem = { git = "https://github.com/starkware-libs/cairo", rev = "d9984ef58e2f704909e271f2f01327f520ded632" }
cairo-lang-formatter = { git = "https://github.com/starkware-libs/cairo", rev = "d9984ef58e2f704909e271f2f01327f520ded632" }
cairo-lang-language-server = { git = "https://github.com/starkware-libs/cairo", rev = "d9984ef58e2f704909e271f2f01327f520ded632" }
cairo-lang-lowering = { git = "https://github.com/starkware-libs/cairo", rev = "d9984ef58e2f704909e271f2f01327f520ded632" }
cairo-lang-parser = { git = "https://github.com/starkware-libs/cairo", rev = "d9984ef58e2f704909e271f2f01327f520ded632" }
cairo-lang-plugins = { git = "https://github.com/starkware-libs/cairo", rev = "d9984ef58e2f704909e271f2f01327f520ded632", features = [ "testing" ] }
cairo-lang-project = { git = "https://github.com/starkware-libs/cairo", rev = "d9984ef58e2f704909e271f2f01327f520ded632" }
cairo-lang-semantic = { git = "https://github.com/starkware-libs/cairo", rev = "d9984ef58e2f704909e271f2f01327f520ded632", features = [ "testing" ] }
cairo-lang-sierra = { git = "https://github.com/starkware-libs/cairo", rev = "d9984ef58e2f704909e271f2f01327f520ded632" }
cairo-lang-sierra-generator = { git = "https://github.com/starkware-libs/cairo", rev = "d9984ef58e2f704909e271f2f01327f520ded632" }
cairo-lang-sierra-to-casm = { git = "https://github.com/starkware-libs/cairo", rev = "d9984ef58e2f704909e271f2f01327f520ded632" }
cairo-lang-starknet = { git = "https://github.com/starkware-libs/cairo", rev = "d9984ef58e2f704909e271f2f01327f520ded632" }
cairo-lang-starknet-classes = { git = "https://github.com/starkware-libs/cairo", rev = "d9984ef58e2f704909e271f2f01327f520ded632" }
cairo-lang-syntax = { git = "https://github.com/starkware-libs/cairo", rev = "d9984ef58e2f704909e271f2f01327f520ded632" }
cairo-lang-test-plugin = { git = "https://github.com/starkware-libs/cairo", rev = "d9984ef58e2f704909e271f2f01327f520ded632" }
cairo-lang-test-runner = { git = "https://github.com/starkware-libs/cairo", rev = "d9984ef58e2f704909e271f2f01327f520ded632" }
cairo-lang-test-utils = { git = "https://github.com/starkware-libs/cairo", rev = "d9984ef58e2f704909e271f2f01327f520ded632" }
cairo-lang-utils = { git = "https://github.com/starkware-libs/cairo", rev = "d9984ef58e2f704909e271f2f01327f520ded632" }
cairo-proof-parser = { git = "https://github.com/cartridge-gg/cairo-proof-parser", tag = "v0.3.0" }
cairo-vm = "0.9.2"
camino = { version = "1.1.2", features = [ "serde1" ] }
Expand Down Expand Up @@ -165,8 +165,8 @@ regex = "1.10.3"
reqwest = { version = "0.12", features = [ "blocking", "rustls-tls" ], default-features = false }
rpassword = "7.2.0"
salsa = "0.16.1"
scarb = { git = "https://github.com/software-mansion/scarb", rev = "e813dbab8f0ec606b5846827ad65951ef8bd6b92" }
scarb-ui = { git = "https://github.com/software-mansion/scarb", rev = "e813dbab8f0ec606b5846827ad65951ef8bd6b92" }
scarb = { git = "https://github.com/software-mansion/scarb", rev = "f1aa7b09507a84d209d83b2fa80472c82605cc43" }
scarb-ui = { git = "https://github.com/software-mansion/scarb", rev = "f1aa7b09507a84d209d83b2fa80472c82605cc43" }
semver = "1.0.5"
serde = { version = "1.0", features = [ "derive" ] }
serde_json = { version = "1.0", features = [ "arbitrary_precision" ] }
Expand Down Expand Up @@ -227,31 +227,3 @@ alloy-rpc-types = { git = "https://github.com/alloy-rs/alloy", rev = "4655f8e437
alloy-signer = { git = "https://github.com/alloy-rs/alloy", rev = "4655f8e4372ecc0b056e83abbc60c3912902ee64" }
alloy-signer-wallet = { git = "https://github.com/alloy-rs/alloy", rev = "4655f8e4372ecc0b056e83abbc60c3912902ee64" }
alloy-transport = { git = "https://github.com/alloy-rs/alloy", rev = "4655f8e4372ecc0b056e83abbc60c3912902ee64" }

cairo-lang-compiler = { git = "https://github.com/starkware-libs/cairo", rev = "290f51f554c978180ca9d91177423305959cbed5" }
cairo-lang-debug = { git = "https://github.com/starkware-libs/cairo", rev = "290f51f554c978180ca9d91177423305959cbed5" }
cairo-lang-defs = { git = "https://github.com/starkware-libs/cairo", rev = "290f51f554c978180ca9d91177423305959cbed5" }
cairo-lang-diagnostics = { git = "https://github.com/starkware-libs/cairo", rev = "290f51f554c978180ca9d91177423305959cbed5" }
cairo-lang-filesystem = { git = "https://github.com/starkware-libs/cairo", rev = "290f51f554c978180ca9d91177423305959cbed5" }
cairo-lang-formatter = { git = "https://github.com/starkware-libs/cairo", rev = "290f51f554c978180ca9d91177423305959cbed5" }
cairo-lang-language-server = { git = "https://github.com/starkware-libs/cairo", rev = "290f51f554c978180ca9d91177423305959cbed5" }
cairo-lang-lowering = { git = "https://github.com/starkware-libs/cairo", rev = "290f51f554c978180ca9d91177423305959cbed5" }
cairo-lang-parser = { git = "https://github.com/starkware-libs/cairo", rev = "290f51f554c978180ca9d91177423305959cbed5" }
cairo-lang-plugins = { git = "https://github.com/starkware-libs/cairo", rev = "290f51f554c978180ca9d91177423305959cbed5" }
cairo-lang-project = { git = "https://github.com/starkware-libs/cairo", rev = "290f51f554c978180ca9d91177423305959cbed5" }
cairo-lang-semantic = { git = "https://github.com/starkware-libs/cairo", rev = "290f51f554c978180ca9d91177423305959cbed5" }
cairo-lang-sierra = { git = "https://github.com/starkware-libs/cairo", rev = "290f51f554c978180ca9d91177423305959cbed5" }
cairo-lang-sierra-generator = { git = "https://github.com/starkware-libs/cairo", rev = "290f51f554c978180ca9d91177423305959cbed5" }
cairo-lang-sierra-to-casm = { git = "https://github.com/starkware-libs/cairo", rev = "290f51f554c978180ca9d91177423305959cbed5" }
cairo-lang-starknet = { git = "https://github.com/starkware-libs/cairo", rev = "290f51f554c978180ca9d91177423305959cbed5" }
cairo-lang-starknet-classes = { git = "https://github.com/starkware-libs/cairo", rev = "290f51f554c978180ca9d91177423305959cbed5" }
cairo-lang-syntax = { git = "https://github.com/starkware-libs/cairo", rev = "290f51f554c978180ca9d91177423305959cbed5" }
cairo-lang-test-plugin = { git = "https://github.com/starkware-libs/cairo", rev = "290f51f554c978180ca9d91177423305959cbed5" }
cairo-lang-test-runner = { git = "https://github.com/starkware-libs/cairo", rev = "290f51f554c978180ca9d91177423305959cbed5" }
cairo-lang-test-utils = { git = "https://github.com/starkware-libs/cairo", rev = "290f51f554c978180ca9d91177423305959cbed5" }
cairo-lang-utils = { git = "https://github.com/starkware-libs/cairo", rev = "290f51f554c978180ca9d91177423305959cbed5" }

# Runner
cairo-lang-casm = { git = "https://github.com/starkware-libs/cairo", rev = "290f51f554c978180ca9d91177423305959cbed5" }
cairo-lang-runner = { git = "https://github.com/starkware-libs/cairo", rev = "290f51f554c978180ca9d91177423305959cbed5" }

13 changes: 0 additions & 13 deletions bin/dojo-language-server/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -6,19 +6,6 @@ version.workspace = true
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[dependencies]
anyhow.workspace = true
cairo-lang-compiler.workspace = true
cairo-lang-filesystem.workspace = true
cairo-lang-language-server.workspace = true
cairo-lang-plugins.workspace = true
cairo-lang-semantic.workspace = true
cairo-lang-starknet.workspace = true
cairo-lang-test-plugin.workspace = true
cairo-lang-utils.workspace = true
clap.workspace = true
dojo-lang.workspace = true
log.workspace = true
salsa.workspace = true
smol_str.workspace = true
tokio = { version = "1.18.2", features = [ "full", "sync" ] }
tower-lsp = "0.20.0"
8 changes: 8 additions & 0 deletions bin/dojo-language-server/src/main.rs
Original file line number Diff line number Diff line change
@@ -1,7 +1,15 @@
use cairo_lang_language_server::Tricks;
use clap::Parser;
use dojo_lang::plugin::dojo_plugin_suite;

/// Dojo Language Server
#[derive(Parser, Debug)]
#[command(author, version, about, long_about = None)]
struct Args {}

fn main() {
let _args = Args::parse();

let mut tricks = Tricks::default();
tricks.extra_plugin_suites = Some(&|| vec![dojo_plugin_suite()]);
cairo_lang_language_server::start_with_tricks(tricks);
Expand Down
8 changes: 5 additions & 3 deletions bin/sozo/src/commands/test.rs
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ impl TestArgs {
continue;
};

let props: Props = unit.target().props()?;
let props: Props = unit.main_component().target_props()?;
let db = build_root_database(&unit)?;

if DiagnosticsReporter::stderr().allow_warnings().check(&db) {
Expand Down Expand Up @@ -145,11 +145,13 @@ fn build_project_config(unit: &CairoCompilationUnit) -> Result<ProjectConfig> {
.components
.iter()
.filter(|model| !model.package.id.is_core())
.map(|model| (model.cairo_package_name(), model.target.source_root().into()))
// NOTE: We're taking the first target of each compilation unit, which should always be the
// main package source root due to the order maintained by scarb.
.map(|model| (model.cairo_package_name(), model.targets[0].source_root().into()))
.collect();

let corelib =
unit.core_package_component().map(|c| Directory::Real(c.target.source_root().into()));
unit.core_package_component().map(|c| Directory::Real(c.targets[0].source_root().into()));

let crates_config = crates_config_for_compilation_unit(unit);

Expand Down
29 changes: 16 additions & 13 deletions bin/sozo/tests/register_test.rs
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
mod utils;

use dojo_test_utils::compiler::build_test_config;
use camino::Utf8PathBuf;
use dojo_test_utils::compiler;
use dojo_test_utils::migration::prepare_migration;
use dojo_test_utils::sequencer::{
get_default_test_starknet_config, SequencerConfig, TestSequencer,
};
use dojo_world::migration::TxnConfig;
use katana_runner::KatanaRunner;
use scarb::ops;
use sozo_ops::migration::execute_strategy;
use starknet::accounts::Account;
Expand All @@ -14,24 +13,28 @@ use utils::snapbox::get_snapbox;

#[tokio::test(flavor = "multi_thread")]
async fn reregister_models() {
let config = build_test_config("../../examples/spawn-and-move/Scarb.toml").unwrap();
let source_project_dir = Utf8PathBuf::from("../../examples/spawn-and-move/");
let dojo_core_path = Utf8PathBuf::from("../../crates/dojo-core");

let config = compiler::copy_tmp_config(&source_project_dir, &dojo_core_path);

let ws = ops::read_workspace(config.manifest_path(), &config)
.unwrap_or_else(|op| panic!("Error building workspace: {op:?}"));

let base_dir = "../../examples/spawn-and-move";
let target_dir = format!("{}/target/dev", base_dir);
let migration = prepare_migration(base_dir.into(), target_dir.into()).unwrap();
let base = config.manifest_path().parent().unwrap();
let target_dir = format!("{}/target/dev", base);

let migration = prepare_migration(base.into(), target_dir.into()).unwrap();

let sequencer =
TestSequencer::start(SequencerConfig::default(), get_default_test_starknet_config()).await;
let sequencer = KatanaRunner::new().expect("Failed to start runner.");

let mut account = sequencer.account();
let mut account = sequencer.account(0);
account.set_block_id(BlockId::Tag(BlockTag::Pending));

execute_strategy(&ws, &migration, &account, TxnConfig::default()).await.unwrap();
execute_strategy(&ws, &migration, &account, TxnConfig::init_wait()).await.unwrap();
let world_address = &format!("0x{:x}", &migration.world_address().unwrap());
let account_address = &format!("0x{:x}", account.address());
let private_key = &format!("0x{:x}", sequencer.raw_account().private_key);
let private_key = &format!("0x{:x}", sequencer.account_data(0).1.private_key);
let rpc_url = &sequencer.url().to_string();

let moves_model =
Expand Down
2 changes: 1 addition & 1 deletion crates/dojo-core/src/base_test.cairo
Original file line number Diff line number Diff line change
Expand Up @@ -160,7 +160,7 @@ mod invalid_model {
fn selector(self: @ContractState) -> felt252 {
// NOTE: Need to update this value if address changes
// Pre-computed address of a contract deployed through the world.
0x15f0ffa36184d74ead97aa501b09aed53ee7236e364997a0c21879194340ab6
0x42503befcd7ad05718645aca9c5ddd83b53dca440f9239ce2dcf63018fba16
}

fn name(self: @ContractState) -> ByteArray {
Expand Down
11 changes: 10 additions & 1 deletion crates/dojo-core/src/lib.cairo
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,16 @@ mod world;
#[cfg(test)]
mod world_test;

#[cfg(test)]
// Since Scarb 2.6.0 there's an optimization that does not
// build tests for dependencies and it's not configurable.
//
// To expose correctly the test utils for a package using dojo-core,
// we need to it in the `lib` target or using the `#[cfg(target: "test")]`
// attribute.
//
// Since `test_utils` is using `TEST_CLASS_HASH` to factorize some deployment
// core, we place it under the test target manually.
#[cfg(target: "test")]
mod test_utils;

#[cfg(test)]
Expand Down
4 changes: 3 additions & 1 deletion crates/dojo-core/src/world.cairo
Original file line number Diff line number Diff line change
Expand Up @@ -400,7 +400,9 @@ mod world {
}

// If model is already registered, validate permission to update.
let (current_class_hash, current_address) = self.models.read(selector);
let model_data: (ClassHash, ContractAddress) = self.models.read(selector);
let (current_class_hash, current_address) = model_data;

if current_class_hash.is_non_zero() {
assert(self.is_owner(caller, selector), Errors::OWNER_ONLY_UPDATE);
prev_class_hash = current_class_hash;
Expand Down
2 changes: 1 addition & 1 deletion crates/dojo-lang/src/compiler.rs
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ impl Compiler for DojoCompiler {
db: &mut RootDatabase,
ws: &Workspace<'_>,
) -> Result<()> {
let props: Props = unit.target().props()?;
let props: Props = unit.main_component().target_props()?;
let target_dir = unit.target_dir(ws);
let sources_dir = target_dir.child(Utf8Path::new(SOURCES_DIR));

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
kind = "Class"
class_hash = "0x49f5416d0fb6e6ec76a4f55bfd0addad9ab8a3c864d882012a0a2060d8e8a28"
original_class_hash = "0x49f5416d0fb6e6ec76a4f55bfd0addad9ab8a3c864d882012a0a2060d8e8a28"
class_hash = "0xf6f44afb3cacbcc01a371aff62c86ca9a45feba065424c99f7cd8637514d8f"
original_class_hash = "0xf6f44afb3cacbcc01a371aff62c86ca9a45feba065424c99f7cd8637514d8f"
abi = "manifests/dev/abis/base/dojo_world_world.json"
name = "dojo::world::world"
13 changes: 9 additions & 4 deletions crates/dojo-lang/src/scarb_internal/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -93,9 +93,10 @@ pub fn compile_workspace(config: &Config, opts: CompileOpts) -> Result<CompileIn

let compilation_units = scarb::ops::generate_compilation_units(&resolve, &features_opts, &ws)?
.into_iter()
.filter(|cu| !opts.exclude_targets.contains(&cu.target().kind))
.filter(|cu| !opts.exclude_targets.contains(&cu.main_component().target_kind()))
.filter(|cu| {
opts.include_targets.is_empty() || opts.include_targets.contains(&cu.target().kind)
opts.include_targets.is_empty()
|| opts.include_targets.contains(&cu.main_component().target_kind())
})
.filter(|cu| packages.contains(&cu.main_package_id()))
.collect::<Vec<_>>();
Expand Down Expand Up @@ -143,11 +144,15 @@ fn build_project_config(unit: &CairoCompilationUnit) -> Result<ProjectConfig> {
.components()
.iter()
.filter(|model| !model.package.id.is_core())
.map(|model| (model.cairo_package_name(), model.target.source_root().into()))
// NOTE: We're taking the first target of each compilation unit, which should always be the
// main package source root due to the order maintained by scarb.
.map(|model| (model.cairo_package_name(), model.targets[0].source_root().into()))
.collect();

let corelib =
unit.core_package_component().map(|c| Directory::Real(c.target.source_root().into()));
// NOTE: We're taking the first target of the corelib, which should always be the
// main package source root due to the order maintained by scarb.
unit.core_package_component().map(|c| Directory::Real(c.targets[0].source_root().into()));

let content = ProjectConfigContent {
crate_roots,
Expand Down
7 changes: 6 additions & 1 deletion crates/dojo-lang/src/semantics/test_utils.rs
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ use cairo_lang_filesystem::db::{
use cairo_lang_filesystem::ids::{
CrateId, CrateLongId, Directory, FileKind, FileLongId, VirtualFile,
};
use cairo_lang_parser::db::ParserDatabase;
use cairo_lang_parser::db::{ParserDatabase, ParserGroup};
use cairo_lang_semantic::db::{SemanticDatabase, SemanticGroup};
use cairo_lang_semantic::inline_macros::get_default_plugin_suite;
use cairo_lang_semantic::items::functions::GenericFunctionId;
Expand Down Expand Up @@ -100,6 +100,11 @@ impl Upcast<dyn SemanticGroup> for DojoSemanticDatabase {
self
}
}
impl Upcast<dyn ParserGroup> for DojoSemanticDatabase {
fn upcast(&self) -> &(dyn ParserGroup + 'static) {
self
}
}

pub struct WithStringDiagnostics<T> {
value: T,
Expand Down
4 changes: 3 additions & 1 deletion crates/dojo-test-utils/src/compiler.rs
Original file line number Diff line number Diff line change
Expand Up @@ -195,7 +195,9 @@ pub fn corelib() -> PathBuf {
let compilation_units = ops::generate_compilation_units(&resolve, &features_opts, &ws).unwrap();

if let CompilationUnit::Cairo(unit) = &compilation_units[0] {
unit.core_package_component().expect("should have component").target.source_root().into()
unit.core_package_component().expect("should have component").targets[0]
.source_root()
.into()
} else {
panic!("should have cairo compilation unit")
}
Expand Down
2 changes: 1 addition & 1 deletion crates/dojo-world/src/contracts/model_test.rs
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ async fn test_model() {

assert_eq!(
position.class_hash(),
felt!("0x03ab26e88be7885877f93964880ccb63a8acd8e58f941c48bef52f191fa79868")
felt!("0x027942375b09862291ece780c573e8c625df4ba41fd7524e0658ca75fff014ff")
);

let moves = world.model_reader("Moves").await.unwrap();
Expand Down
7 changes: 5 additions & 2 deletions crates/dojo-world/src/contracts/world_test.rs
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ use dojo_lang::compiler::{BASE_DIR, MANIFESTS_DIR, OVERLAYS_DIR};
use dojo_test_utils::compiler;
use katana_runner::KatanaRunner;
use starknet::accounts::{Account, ConnectedAccount};
use starknet::core::types::FieldElement;
use starknet::core::types::{BlockId, BlockTag, FieldElement};

use super::{WorldContract, WorldContractReader};
use crate::manifest::{BaseManifest, OverlayManifest};
Expand All @@ -24,8 +24,11 @@ async fn test_world_contract_reader() {
let manifest_dir = config.manifest_path().parent().unwrap();
let target_dir = manifest_dir.join("target").join("dev");

let account = runner.account(0);
let mut account = runner.account(0);
account.set_block_id(BlockId::Tag(BlockTag::Pending));

let provider = account.provider();

let world_address =
deploy_world(&runner, &manifest_dir.to_path_buf(), &target_dir.to_path_buf()).await;

Expand Down
2 changes: 1 addition & 1 deletion crates/dojo-world/src/metadata_test.rs
Original file line number Diff line number Diff line change
Expand Up @@ -147,7 +147,7 @@ async fn get_full_dojo_metadata_from_workspace() {
assert!(env.world_address.is_some());
assert_eq!(
env.world_address.unwrap(),
"0x05134532e5d24c8264e61bb6bbe5c06031d462b8b7bdd15b5554e77e2a97c369"
"0x2e31cfde9f9990c7fe44b25043e3c6958a849c0a66ab535686d2b710e97f309"
);

assert!(env.keystore_path.is_none());
Expand Down
Loading

0 comments on commit 532ed95

Please sign in to comment.