From 9f617f66bf0cc3554826c323320018002e76b62b Mon Sep 17 00:00:00 2001 From: alexey Date: Thu, 15 Dec 2022 21:52:32 +0000 Subject: [PATCH] :construction: debug token initialize test --- tests/actions/deploy_token_contract.rs | 6 ++- tests/actions/initialize.rs | 61 ++++++++++++++++++++++++++ tests/actions/mod.rs | 2 + 3 files changed, 67 insertions(+), 2 deletions(-) create mode 100644 tests/actions/initialize.rs diff --git a/tests/actions/deploy_token_contract.rs b/tests/actions/deploy_token_contract.rs index e05c9b3..f4f694c 100644 --- a/tests/actions/deploy_token_contract.rs +++ b/tests/actions/deploy_token_contract.rs @@ -1,7 +1,7 @@ use dotenv::dotenv; use fuels::prelude::*; -const RPC: &str = "http://node-beta-1.fuel.network/graphql"; +const RPC: &str = "node-beta-2.fuel.network"; #[tokio::test] async fn deploy_token_contract() { @@ -21,7 +21,7 @@ async fn deploy_token_contract() { let token_contract_id = Contract::deploy( "out/debug/token_contract.bin", &wallet, - TxParameters::default(), + TxParameters::new(Some(1), None, None), StorageConfiguration::with_storage_path(Some( "./out/debug/token_contract-storage_slots.json".to_string(), )), @@ -34,3 +34,5 @@ async fn deploy_token_contract() { println!("✅ Contract deployed @ {token_contract_id}"); } + +// ✅ Contract deployed @ fuel19nluhjt8zlj6zqkmr4w6ghqcjfydqzs8pnt94q3qj6uhx0fmqu0q70c9j2 \ No newline at end of file diff --git a/tests/actions/initialize.rs b/tests/actions/initialize.rs new file mode 100644 index 0000000..c230e91 --- /dev/null +++ b/tests/actions/initialize.rs @@ -0,0 +1,61 @@ +use dotenv::dotenv; +use fuels::prelude::*; +use std::str::FromStr; + +abigen!(UsdtContract, "out/debug/token_contract-abi.json"); + +const RPC: &str = "node-beta-2.fuel.network"; +const USDT_ADDRESS: &str = "0x2cffcbc96717e5a102db1d5da45c189248d00a070cd65a822096b9733d3b071e"; + +async fn init() -> (WalletUnlocked, UsdtContract) { + let provider = match Provider::connect(RPC).await { + Ok(p) => p, + Err(error) => panic!("❌ Problem creating provider: {:#?}", error), + }; + + dotenv().ok(); + let secret = match std::env::var("SECRET") { + Ok(s) => s, + Err(error) => panic!("❌ Cannot find .env file: {:#?}", error), + }; + + let wallet = WalletUnlocked::new_from_private_key(secret.parse().unwrap(), Some(provider)); + + let usdt_dapp_id = Bech32ContractId::from(ContractId::from_str(USDT_ADDRESS).unwrap()); + let usdt_dapp_instance = UsdtContract::new(usdt_dapp_id, wallet.clone()); + + println!("👛 Account address @ {}", wallet.clone().address()); + println!( + "🗞 USDT dapp address @ {}", + usdt_dapp_instance.get_contract_id() + ); + return (wallet, usdt_dapp_instance); +} + +#[tokio::test] +async fn initialize() { + let (wallet, instance) = init().await; + let decimals = instance.methods().decimals().call().await.unwrap().value; + let symbol = instance.methods().symbol().call().await.unwrap().value; + + instance + .methods() + .initialize(parse_units(1000, decimals), Address::from(wallet.address())) + .tx_params(TxParameters::new(Some(1), Some(1000000), None)) + .call() + .await + .unwrap(); + let mint_amount = instance.methods().get_mint_amount().call().await.unwrap(); + println!( + "Mint amount {} {symbol}", + format_units(mint_amount.value, decimals) + ); +} + +fn parse_units(num: u64, decimals: u8) -> u64 { + num * 10u64.pow(decimals as u32) +} + +fn format_units(num: u64, decimals: u8) -> u64 { + num / 10u64.pow(decimals as u32) +} diff --git a/tests/actions/mod.rs b/tests/actions/mod.rs index 24bdf3e..689464e 100644 --- a/tests/actions/mod.rs +++ b/tests/actions/mod.rs @@ -1,2 +1,4 @@ mod deploy_token_contract; +mod initialize; +