diff --git a/infrastructure/zk/src/docker.ts b/infrastructure/zk/src/docker.ts index a100d1231da6..035061a8ed0d 100644 --- a/infrastructure/zk/src/docker.ts +++ b/infrastructure/zk/src/docker.ts @@ -1,4 +1,4 @@ -import {Command} from 'commander'; +import { Command } from 'commander'; import * as utils from 'utils'; const IMAGES = [ @@ -31,7 +31,7 @@ async function dockerCommand( dockerOrg: string = 'matterlabs' ) { // Generating all tags for containers. We need 2 tags here: SHA and SHA+TS - const {stdout: COMMIT_SHORT_SHA}: { stdout: string } = await utils.exec('git rev-parse --short HEAD'); + const { stdout: COMMIT_SHORT_SHA }: { stdout: string } = await utils.exec('git rev-parse --short HEAD'); // COMMIT_SHORT_SHA returns with newline, so we need to trim it const imageTagShaTS: string = process.env.IMAGE_TAG_SUFFIX ? process.env.IMAGE_TAG_SUFFIX @@ -126,7 +126,7 @@ async function _build(image: string, tagList: string[], dockerOrg: string, platf } buildArgs += extraArgs; - console.log("Build args: ", buildArgs); + console.log('Build args: ', buildArgs); const buildCommand = `DOCKER_BUILDKIT=1 docker buildx build ${tagsToBuild}` + diff --git a/zk_toolbox/crates/common/src/ethereum.rs b/zk_toolbox/crates/common/src/ethereum.rs index 93cc524568c3..4f000ed0fd53 100644 --- a/zk_toolbox/crates/common/src/ethereum.rs +++ b/zk_toolbox/crates/common/src/ethereum.rs @@ -10,7 +10,7 @@ use ethers::{ }; use types::TokenInfo; -use crate::{logger, wallets::Wallet}; +use crate::wallets::Wallet; pub fn create_ethers_client( private_key: H256, @@ -89,35 +89,30 @@ pub async fn mint_token( chain_id: u64, amount: u128, ) -> anyhow::Result<()> { - let client = Arc::new(create_ethers_client( - main_wallet.private_key.unwrap(), - l1_rpc, - Some(chain_id), - )?); + let client = Arc::new( + create_ethers_client(main_wallet.private_key.unwrap(), l1_rpc, Some(chain_id))? + .nonce_manager(main_wallet.address), + ); let contract = TokenContract::new(token_address, client); - // contract + + let mut pending_calls = vec![]; for address in addresses { - if let Err(err) = mint(&contract, address, amount).await { - logger::warn(format!("Failed to mint {err}")) - } + pending_calls.push(contract.mint(address, amount.into())); } - Ok(()) -} + let mut pending_txs = vec![]; + for call in &pending_calls { + pending_txs.push( + call.send() + .await? + // It's safe to set such low number of confirmations and low interval for localhost + .confirmations(3) + .interval(Duration::from_millis(30)), + ); + } + + futures::future::join_all(pending_txs).await; -async fn mint( - contract: &TokenContract, - address: Address, - amount: u128, -) -> anyhow::Result<()> { - contract - .mint(address, amount.into()) - .send() - .await? - // It's safe to set such low number of confirmations and low interval for localhost - .confirmations(1) - .interval(Duration::from_millis(30)) - .await?; Ok(()) }