Skip to content

Commit

Permalink
fix: add initial mint in test_erc20_transfer
Browse files Browse the repository at this point in the history
  • Loading branch information
Farhad-Shabani committed Mar 3, 2025
1 parent a68431d commit 82fb22f
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 10 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,13 @@ use cgp::core::component::UseContext;
use cgp::prelude::*;
use hermes_encoding_components::impls::encode_mut::combine::CombineEncoders;
use hermes_encoding_components::impls::encode_mut::field::EncodeField;
use starknet::core::types::U256;

use crate::impls::types::address::StarknetAddress;
#[derive(HasField)]
pub struct DeployErc20TokenMessage {
pub name: String,
pub symbol: String,
pub decimals: u8,
pub fixed_supply: U256,
pub recipient: StarknetAddress,
pub owner: StarknetAddress,
}

Expand All @@ -20,8 +17,6 @@ pub type EncodeDeployErc20TokenMessage = CombineEncoders<
EncodeField<symbol!("name"), UseContext>,
EncodeField<symbol!("symbol"), UseContext>,
EncodeField<symbol!("decimals"), UseContext>,
EncodeField<symbol!("fixed_supply"), UseContext>,
EncodeField<symbol!("recipient"), UseContext>,
EncodeField<symbol!("owner"), UseContext>,
],
>;
24 changes: 19 additions & 5 deletions relayer/crates/starknet-integration-tests/src/tests/erc20.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ use hermes_error::types::Error;
use hermes_relayer_components::chain::traits::send_message::CanSendSingleMessage;
use hermes_runtime_components::traits::fs::read_file::CanReadFileAsString;
use hermes_starknet_chain_components::impls::encoding::events::CanFilterDecodeEvents;
use hermes_starknet_chain_components::impls::types::message::StarknetMessage;
use hermes_starknet_chain_components::traits::contract::declare::CanDeclareContract;
use hermes_starknet_chain_components::traits::contract::deploy::CanDeployContract;
use hermes_starknet_chain_components::traits::messages::transfer::CanBuildTransferTokenMessage;
Expand All @@ -16,6 +17,9 @@ use hermes_starknet_chain_components::types::messages::erc20::deploy::DeployErc2
use hermes_starknet_chain_context::contexts::encoding::cairo::StarknetCairoEncoding;
use hermes_starknet_chain_context::contexts::encoding::event::StarknetEventEncoding;
use hermes_test_components::bootstrap::traits::chain::CanBootstrapChain;
use starknet::accounts::Call;
use starknet::core::types::U256;
use starknet::macros::selector;
use tracing::info;

use crate::contexts::bootstrap::StarknetBootstrap;
Expand Down Expand Up @@ -58,15 +62,15 @@ fn test_erc20_transfer() -> Result<(), Error> {
class_hash
};

let initial_supply = 1000u32;

let token_address = {
let relayer_address = chain_driver.relayer_wallet.account_address;

let deploy_message = DeployErc20TokenMessage {
name: "token".into(),
symbol: "token".into(),
decimals: 18,
fixed_supply: 1000u32.into(),
recipient: relayer_address,
owner: relayer_address,
};

Expand All @@ -78,13 +82,23 @@ fn test_erc20_transfer() -> Result<(), Error> {

info!("deployed ERC20 contract to address: {:?}", token_address);

let calldata = StarknetCairoEncoding.encode(&U256::from(initial_supply))?;

let call = Call {
to: *token_address,
selector: selector!("mint"),
calldata,
};

chain.send_message(StarknetMessage::new(call)).await?;

info!("Mint {initial_supply} initial supply to address: {relayer_address}");

let balance = chain
.query_token_balance(&token_address, &relayer_address)
.await?;

info!("initial balance: {}", balance);

assert_eq!(balance.quantity, 1000u32.into());
assert_eq!(balance.quantity, initial_supply.into());

token_address
};
Expand Down

0 comments on commit 82fb22f

Please sign in to comment.