From 74c868525b750ee1024588488293de4ae0deadfa Mon Sep 17 00:00:00 2001 From: andrew Date: Sat, 3 Aug 2024 16:01:40 -0500 Subject: [PATCH 01/11] add update tests --- .../token/src/tests/erc20/test_erc20.cairo | 184 +++++++++++++++--- 1 file changed, 159 insertions(+), 25 deletions(-) diff --git a/packages/token/src/tests/erc20/test_erc20.cairo b/packages/token/src/tests/erc20/test_erc20.cairo index 4e1fb023d..6f731fc77 100644 --- a/packages/token/src/tests/erc20/test_erc20.cairo +++ b/packages/token/src/tests/erc20/test_erc20.cairo @@ -1,4 +1,5 @@ use core::num::traits::Bounded; +use core::num::traits::Zero; use openzeppelin_token::erc20::ERC20Component::{Approval, Transfer}; use openzeppelin_token::erc20::ERC20Component::{ERC20CamelOnlyImpl, ERC20Impl}; use openzeppelin_token::erc20::ERC20Component::{ERC20MetadataImpl, InternalImpl}; @@ -162,12 +163,13 @@ fn test_transfer() { let mut spy = spy_events(); start_cheat_caller_address(contract_address, OWNER()); - assert!(state.transfer(RECIPIENT(), VALUE)); + + assert_state_before_transfer(OWNER(), RECIPIENT()); + let success = state.transfer(RECIPIENT(), VALUE); + assert!(success); + assert_state_after_transfer(OWNER(), RECIPIENT(), VALUE); spy.assert_only_event_transfer(contract_address, OWNER(), RECIPIENT(), VALUE); - assert_eq!(state.balance_of(RECIPIENT()), VALUE); - assert_eq!(state.balance_of(OWNER()), SUPPLY - VALUE); - assert_eq!(state.total_supply(), SUPPLY); } #[test] @@ -201,12 +203,11 @@ fn test__transfer() { let contract_address = test_address(); let mut spy = spy_events(); + assert_state_before_transfer(OWNER(), RECIPIENT()); state._transfer(OWNER(), RECIPIENT(), VALUE); + assert_state_after_transfer(OWNER(), RECIPIENT(), VALUE); spy.assert_only_event_transfer(contract_address, OWNER(), RECIPIENT(), VALUE); - assert_eq!(state.balance_of(RECIPIENT()), VALUE); - assert_eq!(state.balance_of(OWNER()), SUPPLY - VALUE); - assert_eq!(state.total_supply(), SUPPLY); } #[test] @@ -247,17 +248,17 @@ fn test_transfer_from() { let mut spy = spy_events(); start_cheat_caller_address(contract_address, SPENDER()); - assert!(state.transfer_from(OWNER(), RECIPIENT(), VALUE)); + + assert_state_before_transfer(OWNER(), RECIPIENT()); + let success = state.transfer_from(OWNER(), RECIPIENT(), VALUE); + assert!(success); + assert_state_after_transfer(OWNER(), RECIPIENT(), VALUE); spy.assert_event_approval(contract_address, OWNER(), SPENDER(), 0); spy.assert_only_event_transfer(contract_address, OWNER(), RECIPIENT(), VALUE); let allowance = state.allowance(OWNER(), SPENDER()); assert_eq!(allowance, 0); - - assert_eq!(state.balance_of(RECIPIENT()), VALUE); - assert_eq!(state.balance_of(OWNER()), SUPPLY - VALUE); - assert_eq!(state.total_supply(), SUPPLY); } #[test] @@ -313,18 +314,17 @@ fn test_transferFrom() { let mut spy = spy_events(); start_cheat_caller_address(contract_address, SPENDER()); - assert!(state.transferFrom(OWNER(), RECIPIENT(), VALUE)); + + assert_state_before_transfer(OWNER(), RECIPIENT()); + let success = state.transferFrom(OWNER(), RECIPIENT(), VALUE); + assert!(success); + assert_state_after_transfer(OWNER(), RECIPIENT(), VALUE); spy.assert_event_approval(contract_address, OWNER(), SPENDER(), 0); spy.assert_only_event_transfer(contract_address, OWNER(), RECIPIENT(), VALUE); let allowance = state.allowance(OWNER(), SPENDER()); assert_eq!(allowance, 0); - - assert_eq!(state.balance_of(RECIPIENT()), VALUE); - assert_eq!(state.balance_of(OWNER()), SUPPLY - VALUE); - assert_eq!(state.total_supply(), SUPPLY); - assert_eq!(allowance, 0); } #[test] @@ -408,15 +408,16 @@ fn test__spend_allowance_unlimited() { #[test] fn test_mint() { - let mut state = COMPONENT_STATE(); + let mut state = setup(); let contract_address = test_address(); let mut spy = spy_events(); - state.mint(OWNER(), VALUE); - spy.assert_only_event_transfer(contract_address, ZERO(), OWNER(), VALUE); - assert_eq!(state.balance_of(OWNER()), VALUE); - assert_eq!(state.total_supply(), VALUE); + assert_state_before_mint(RECIPIENT()); + state.mint(RECIPIENT(), VALUE); + assert_state_after_mint(RECIPIENT(), VALUE); + + spy.assert_only_event_transfer(contract_address, ZERO(), RECIPIENT(), VALUE); } #[test] @@ -436,11 +437,12 @@ fn test_burn() { let contract_address = test_address(); let mut spy = spy_events(); + + assert_state_before_burn(OWNER()); state.burn(OWNER(), VALUE); + assert_state_after_burn(OWNER(), VALUE); spy.assert_only_event_transfer(contract_address, OWNER(), ZERO(), VALUE); - assert_eq!(state.total_supply(), SUPPLY - VALUE); - assert_eq!(state.balance_of(OWNER()), SUPPLY - VALUE); } #[test] @@ -449,3 +451,135 @@ fn test_burn_from_zero() { let mut state = setup(); state.burn(ZERO(), VALUE); } + +// +// update +// + +#[test] +fn test_update_from_non_zero_to_non_zero() { + let mut state = setup(); + + let mut spy = spy_events(); + let contract_address = test_address(); + + start_cheat_caller_address(contract_address, OWNER()); + + assert_state_before_transfer(OWNER(), RECIPIENT()); + state.update(OWNER(), RECIPIENT(), VALUE); + assert_state_after_transfer(OWNER(), RECIPIENT(), VALUE); + + spy.assert_only_event_transfer(contract_address, OWNER(), RECIPIENT(), VALUE); +} + +#[test] +fn test_update_from_non_zero_to_zero() { + let mut state = setup(); + + let mut spy = spy_events(); + let contract_address = test_address(); + + start_cheat_caller_address(contract_address, OWNER()); + + assert_state_before_burn(OWNER()); + state.update(OWNER(), ZERO(), VALUE); + assert_state_after_burn(OWNER(), VALUE); + + spy.assert_only_event_transfer(contract_address, OWNER(), ZERO(), VALUE); +} + +#[test] +fn test_update_from_zero_to_non_zero() { + let mut state = setup(); + + let mut spy = spy_events(); + let contract_address = test_address(); + + start_cheat_caller_address(contract_address, RECIPIENT()); + + assert_state_before_mint(RECIPIENT()); + state.update(ZERO(), RECIPIENT(), VALUE); + assert_state_after_mint(RECIPIENT(), VALUE); + + spy.assert_only_event_transfer(contract_address, ZERO(), RECIPIENT(), VALUE); +} + +#[test] +fn test_update_from_zero_to_zero() { + // The update function should not be called from zero to zero + // because this does nothing to the state. + let mut state = setup(); + + let mut spy = spy_events(); + let contract_address = test_address(); + let supply_before_update = state.total_supply(); + + start_cheat_caller_address(contract_address, RECIPIENT()); + + state.update(ZERO(), ZERO(), VALUE); + + let supply_after_update = state.total_supply(); + assert_eq!(supply_before_update, supply_after_update); + + spy.assert_only_event_transfer(contract_address, ZERO(), ZERO(), VALUE); +} + +// +// Helpers +// + +fn assert_state_before_transfer(sender: ContractAddress, recipient: ContractAddress) { + let state = COMPONENT_STATE(); + let initial_supply = SUPPLY; + let current_supply = state.total_supply(); + assert_eq!(initial_supply, current_supply); + + assert_eq!(state.balance_of(sender), SUPPLY); + assert!(state.balance_of(recipient).is_zero()); +} + +fn assert_state_after_transfer(sender: ContractAddress, recipient: ContractAddress, amount: u256) { + let state = COMPONENT_STATE(); + let initial_supply = SUPPLY; + let current_supply = state.total_supply(); + + assert_eq!(initial_supply, current_supply); + assert_eq!(state.balance_of(sender), initial_supply - amount); + assert_eq!(state.balance_of(recipient), amount); +} + +fn assert_state_before_mint(recipient: ContractAddress) { + let state = COMPONENT_STATE(); + let initial_supply = SUPPLY; + let current_supply = state.total_supply(); + + assert_eq!(current_supply, initial_supply); + assert!(state.balance_of(recipient).is_zero()); +} + +fn assert_state_after_mint(recipient: ContractAddress, amount: u256) { + let state = COMPONENT_STATE(); + let initial_supply = SUPPLY; + let current_supply = state.total_supply(); + + assert_eq!(state.balance_of(recipient), amount); + assert_eq!(current_supply, initial_supply + amount); +} + +fn assert_state_before_burn(account: ContractAddress) { + let state = COMPONENT_STATE(); + let initial_supply = SUPPLY; + let current_supply = state.total_supply(); + + assert_eq!(initial_supply, current_supply); + assert_eq!(state.balance_of(account), SUPPLY); +} + +fn assert_state_after_burn(account: ContractAddress, amount: u256) { + let state = COMPONENT_STATE(); + let initial_supply = SUPPLY; + let current_supply = state.total_supply(); + + assert_eq!(state.balance_of(account), initial_supply - amount); + assert_eq!(current_supply, initial_supply - amount) +} From 027962fb96156a1605f2e160bfc27f40d3348fa1 Mon Sep 17 00:00:00 2001 From: andrew Date: Tue, 6 Aug 2024 01:57:27 -0500 Subject: [PATCH 02/11] fix fmt --- packages/token/src/tests/erc20/test_erc20.cairo | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/token/src/tests/erc20/test_erc20.cairo b/packages/token/src/tests/erc20/test_erc20.cairo index 6f731fc77..7c93ba0bc 100644 --- a/packages/token/src/tests/erc20/test_erc20.cairo +++ b/packages/token/src/tests/erc20/test_erc20.cairo @@ -532,8 +532,8 @@ fn assert_state_before_transfer(sender: ContractAddress, recipient: ContractAddr let state = COMPONENT_STATE(); let initial_supply = SUPPLY; let current_supply = state.total_supply(); - assert_eq!(initial_supply, current_supply); + assert_eq!(initial_supply, current_supply); assert_eq!(state.balance_of(sender), SUPPLY); assert!(state.balance_of(recipient).is_zero()); } From fdc330f4d8cda4e6bdb869e4b022ea60450d8573 Mon Sep 17 00:00:00 2001 From: andrew Date: Tue, 6 Aug 2024 14:48:07 -0500 Subject: [PATCH 03/11] add panic tests for burn --- .../token/src/tests/erc20/test_erc20.cairo | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/packages/token/src/tests/erc20/test_erc20.cairo b/packages/token/src/tests/erc20/test_erc20.cairo index 7c93ba0bc..3f63b33f4 100644 --- a/packages/token/src/tests/erc20/test_erc20.cairo +++ b/packages/token/src/tests/erc20/test_erc20.cairo @@ -445,6 +445,15 @@ fn test_burn() { spy.assert_only_event_transfer(contract_address, OWNER(), ZERO(), VALUE); } +#[test] +#[should_panic(expected: ('ERC20: insufficient balance',))] +fn test_burn_insufficient_balance() { + let mut state = setup(); + let overflow_amt = SUPPLY + 1; + + state.burn(OWNER(), overflow_amt); +} + #[test] #[should_panic(expected: ('ERC20: burn from 0',))] fn test_burn_from_zero() { @@ -488,6 +497,17 @@ fn test_update_from_non_zero_to_zero() { spy.assert_only_event_transfer(contract_address, OWNER(), ZERO(), VALUE); } +#[test] +#[should_panic(expected: ('ERC20: insufficient balance',))] +fn test_update_from_non_zero_to_zero_insufficient_balance() { + let mut state = setup(); + let contract_address = test_address(); + let overflow_amt = SUPPLY + 1; + + start_cheat_caller_address(contract_address, OWNER()); + state.update(OWNER(), ZERO(), overflow_amt); +} + #[test] fn test_update_from_zero_to_non_zero() { let mut state = setup(); From 0a6d3ac8c7974f69ca04e70637bf30c259479883 Mon Sep 17 00:00:00 2001 From: andrew Date: Tue, 6 Aug 2024 14:51:33 -0500 Subject: [PATCH 04/11] add panic test for non-0 to non-0 --- packages/token/src/tests/erc20/test_erc20.cairo | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/packages/token/src/tests/erc20/test_erc20.cairo b/packages/token/src/tests/erc20/test_erc20.cairo index 3f63b33f4..8f2671c19 100644 --- a/packages/token/src/tests/erc20/test_erc20.cairo +++ b/packages/token/src/tests/erc20/test_erc20.cairo @@ -481,6 +481,17 @@ fn test_update_from_non_zero_to_non_zero() { spy.assert_only_event_transfer(contract_address, OWNER(), RECIPIENT(), VALUE); } +#[test] +#[should_panic(expected: ('ERC20: insufficient balance',))] +fn test_update_from_non_zero_to_non_zero_insufficient_balance() { + let mut state = setup(); + let contract_address = test_address(); + let overflow_amt = SUPPLY + 1; + + start_cheat_caller_address(contract_address, OWNER()); + state.update(OWNER(), RECIPIENT(), overflow_amt); +} + #[test] fn test_update_from_non_zero_to_zero() { let mut state = setup(); From 85144db807f11cba00ab37717833eed9d330ad2f Mon Sep 17 00:00:00 2001 From: andrew Date: Tue, 6 Aug 2024 15:20:18 -0500 Subject: [PATCH 05/11] use assert_eq, remove unused import --- packages/token/src/tests/erc20/test_erc20.cairo | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/packages/token/src/tests/erc20/test_erc20.cairo b/packages/token/src/tests/erc20/test_erc20.cairo index 8f2671c19..c0e6920da 100644 --- a/packages/token/src/tests/erc20/test_erc20.cairo +++ b/packages/token/src/tests/erc20/test_erc20.cairo @@ -1,5 +1,4 @@ use core::num::traits::Bounded; -use core::num::traits::Zero; use openzeppelin_token::erc20::ERC20Component::{Approval, Transfer}; use openzeppelin_token::erc20::ERC20Component::{ERC20CamelOnlyImpl, ERC20Impl}; use openzeppelin_token::erc20::ERC20Component::{ERC20MetadataImpl, InternalImpl}; @@ -566,7 +565,7 @@ fn assert_state_before_transfer(sender: ContractAddress, recipient: ContractAddr assert_eq!(initial_supply, current_supply); assert_eq!(state.balance_of(sender), SUPPLY); - assert!(state.balance_of(recipient).is_zero()); + assert_eq!(state.balance_of(recipient), 0); } fn assert_state_after_transfer(sender: ContractAddress, recipient: ContractAddress, amount: u256) { @@ -585,7 +584,7 @@ fn assert_state_before_mint(recipient: ContractAddress) { let current_supply = state.total_supply(); assert_eq!(current_supply, initial_supply); - assert!(state.balance_of(recipient).is_zero()); + assert_eq!(state.balance_of(recipient), 0); } fn assert_state_after_mint(recipient: ContractAddress, amount: u256) { From 30f7673f89ae557c1facdc751339396b0a37d628 Mon Sep 17 00:00:00 2001 From: Andrew Fleming Date: Tue, 6 Aug 2024 15:21:00 -0500 Subject: [PATCH 06/11] Apply suggestions from code review Co-authored-by: immrsd <103599616+immrsd@users.noreply.github.com> --- packages/token/src/tests/erc20/test_erc20.cairo | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/token/src/tests/erc20/test_erc20.cairo b/packages/token/src/tests/erc20/test_erc20.cairo index 7c93ba0bc..86a6dd3ff 100644 --- a/packages/token/src/tests/erc20/test_erc20.cairo +++ b/packages/token/src/tests/erc20/test_erc20.cairo @@ -251,7 +251,7 @@ fn test_transfer_from() { assert_state_before_transfer(OWNER(), RECIPIENT()); let success = state.transfer_from(OWNER(), RECIPIENT(), VALUE); - assert!(success); + assert!(success, "Transfer failed"); assert_state_after_transfer(OWNER(), RECIPIENT(), VALUE); spy.assert_event_approval(contract_address, OWNER(), SPENDER(), 0); From 5fc101fdd4f616d324b7b4682e2d2e768450e6ec Mon Sep 17 00:00:00 2001 From: andrew Date: Tue, 6 Aug 2024 17:17:20 -0500 Subject: [PATCH 07/11] add err msg to tx --- packages/token/src/tests/erc20/test_erc20.cairo | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/token/src/tests/erc20/test_erc20.cairo b/packages/token/src/tests/erc20/test_erc20.cairo index 78da62fbe..fc9ffe518 100644 --- a/packages/token/src/tests/erc20/test_erc20.cairo +++ b/packages/token/src/tests/erc20/test_erc20.cairo @@ -165,7 +165,7 @@ fn test_transfer() { assert_state_before_transfer(OWNER(), RECIPIENT()); let success = state.transfer(RECIPIENT(), VALUE); - assert!(success); + assert!(success, "Transfer failed"); assert_state_after_transfer(OWNER(), RECIPIENT(), VALUE); spy.assert_only_event_transfer(contract_address, OWNER(), RECIPIENT(), VALUE); @@ -316,7 +316,7 @@ fn test_transferFrom() { assert_state_before_transfer(OWNER(), RECIPIENT()); let success = state.transferFrom(OWNER(), RECIPIENT(), VALUE); - assert!(success); + assert!(success, "Transfer failed"); assert_state_after_transfer(OWNER(), RECIPIENT(), VALUE); spy.assert_event_approval(contract_address, OWNER(), SPENDER(), 0); From 72e15b9a057abc2f9918f6451ae2082b6513c30b Mon Sep 17 00:00:00 2001 From: andrew Date: Thu, 8 Aug 2024 23:19:32 -0500 Subject: [PATCH 08/11] add error msgs in helper fns --- .../token/src/tests/erc20/test_erc20.cairo | 31 ++++++++++--------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/packages/token/src/tests/erc20/test_erc20.cairo b/packages/token/src/tests/erc20/test_erc20.cairo index fc9ffe518..3c95d750e 100644 --- a/packages/token/src/tests/erc20/test_erc20.cairo +++ b/packages/token/src/tests/erc20/test_erc20.cairo @@ -98,7 +98,8 @@ fn test_approve() { let mut spy = spy_events(); start_cheat_caller_address(contract_address, OWNER()); - assert!(state.approve(SPENDER(), VALUE)); + let success = state.approve(SPENDER(), VALUE); + assert!(success, "Transfer failed"); spy.assert_only_event_approval(contract_address, OWNER(), SPENDER(), VALUE); @@ -563,9 +564,9 @@ fn assert_state_before_transfer(sender: ContractAddress, recipient: ContractAddr let initial_supply = SUPPLY; let current_supply = state.total_supply(); - assert_eq!(initial_supply, current_supply); - assert_eq!(state.balance_of(sender), SUPPLY); - assert_eq!(state.balance_of(recipient), 0); + assert_eq!(initial_supply, current_supply, "Incorrect supply before transfer"); + assert_eq!(state.balance_of(sender), SUPPLY, "Incorrect balance before transfer"); + assert_eq!(state.balance_of(recipient), 0, "Incorrect balance before transfer"); } fn assert_state_after_transfer(sender: ContractAddress, recipient: ContractAddress, amount: u256) { @@ -573,9 +574,9 @@ fn assert_state_after_transfer(sender: ContractAddress, recipient: ContractAddre let initial_supply = SUPPLY; let current_supply = state.total_supply(); - assert_eq!(initial_supply, current_supply); - assert_eq!(state.balance_of(sender), initial_supply - amount); - assert_eq!(state.balance_of(recipient), amount); + assert_eq!(initial_supply, current_supply, "Incorrect supply after transfer"); + assert_eq!(state.balance_of(sender), initial_supply - amount, "Incorrect balance after transfer"); + assert_eq!(state.balance_of(recipient), amount, "Incorrect balance after transfer"); } fn assert_state_before_mint(recipient: ContractAddress) { @@ -583,8 +584,8 @@ fn assert_state_before_mint(recipient: ContractAddress) { let initial_supply = SUPPLY; let current_supply = state.total_supply(); - assert_eq!(current_supply, initial_supply); - assert_eq!(state.balance_of(recipient), 0); + assert_eq!(current_supply, initial_supply, "Incorrect supply before mint"); + assert_eq!(state.balance_of(recipient), 0, "Incorrect balance before mint"); } fn assert_state_after_mint(recipient: ContractAddress, amount: u256) { @@ -592,8 +593,8 @@ fn assert_state_after_mint(recipient: ContractAddress, amount: u256) { let initial_supply = SUPPLY; let current_supply = state.total_supply(); - assert_eq!(state.balance_of(recipient), amount); - assert_eq!(current_supply, initial_supply + amount); + assert_eq!(current_supply, initial_supply + amount, "Incorrect supply after mint"); + assert_eq!(state.balance_of(recipient), amount, "Incorrect balance after mint"); } fn assert_state_before_burn(account: ContractAddress) { @@ -601,8 +602,8 @@ fn assert_state_before_burn(account: ContractAddress) { let initial_supply = SUPPLY; let current_supply = state.total_supply(); - assert_eq!(initial_supply, current_supply); - assert_eq!(state.balance_of(account), SUPPLY); + assert_eq!(initial_supply, current_supply, "Incorrect supply before burn"); + assert_eq!(state.balance_of(account), SUPPLY, "Incorrect balance before burn"); } fn assert_state_after_burn(account: ContractAddress, amount: u256) { @@ -610,6 +611,6 @@ fn assert_state_after_burn(account: ContractAddress, amount: u256) { let initial_supply = SUPPLY; let current_supply = state.total_supply(); - assert_eq!(state.balance_of(account), initial_supply - amount); - assert_eq!(current_supply, initial_supply - amount) + assert_eq!(current_supply, initial_supply - amount, "Incorrect supply after burn"); + assert_eq!(state.balance_of(account), initial_supply - amount, "Incorrect balance after burn"); } From f69f88d05be15739496fb1854b6eefac88e692ef Mon Sep 17 00:00:00 2001 From: andrew Date: Thu, 8 Aug 2024 23:20:13 -0500 Subject: [PATCH 09/11] fix fmt --- packages/token/src/tests/erc20/test_erc20.cairo | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/token/src/tests/erc20/test_erc20.cairo b/packages/token/src/tests/erc20/test_erc20.cairo index 3c95d750e..a75c5d8c5 100644 --- a/packages/token/src/tests/erc20/test_erc20.cairo +++ b/packages/token/src/tests/erc20/test_erc20.cairo @@ -575,7 +575,9 @@ fn assert_state_after_transfer(sender: ContractAddress, recipient: ContractAddre let current_supply = state.total_supply(); assert_eq!(initial_supply, current_supply, "Incorrect supply after transfer"); - assert_eq!(state.balance_of(sender), initial_supply - amount, "Incorrect balance after transfer"); + assert_eq!( + state.balance_of(sender), initial_supply - amount, "Incorrect balance after transfer" + ); assert_eq!(state.balance_of(recipient), amount, "Incorrect balance after transfer"); } From aa44745115bff69b01306992dd8ddfdb817334df Mon Sep 17 00:00:00 2001 From: andrew Date: Mon, 19 Aug 2024 22:40:38 -0500 Subject: [PATCH 10/11] remove error msgs --- .../token/src/tests/erc20/test_erc20.cairo | 46 +++++++++---------- 1 file changed, 22 insertions(+), 24 deletions(-) diff --git a/packages/token/src/tests/erc20/test_erc20.cairo b/packages/token/src/tests/erc20/test_erc20.cairo index a75c5d8c5..72c5e61ba 100644 --- a/packages/token/src/tests/erc20/test_erc20.cairo +++ b/packages/token/src/tests/erc20/test_erc20.cairo @@ -98,8 +98,8 @@ fn test_approve() { let mut spy = spy_events(); start_cheat_caller_address(contract_address, OWNER()); - let success = state.approve(SPENDER(), VALUE); - assert!(success, "Transfer failed"); + let tx_success = state.approve(SPENDER(), VALUE); + assert!(tx_success); spy.assert_only_event_approval(contract_address, OWNER(), SPENDER(), VALUE); @@ -165,8 +165,8 @@ fn test_transfer() { start_cheat_caller_address(contract_address, OWNER()); assert_state_before_transfer(OWNER(), RECIPIENT()); - let success = state.transfer(RECIPIENT(), VALUE); - assert!(success, "Transfer failed"); + let tx_success = state.transfer(RECIPIENT(), VALUE); + assert!(tx_success); assert_state_after_transfer(OWNER(), RECIPIENT(), VALUE); spy.assert_only_event_transfer(contract_address, OWNER(), RECIPIENT(), VALUE); @@ -250,8 +250,8 @@ fn test_transfer_from() { start_cheat_caller_address(contract_address, SPENDER()); assert_state_before_transfer(OWNER(), RECIPIENT()); - let success = state.transfer_from(OWNER(), RECIPIENT(), VALUE); - assert!(success, "Transfer failed"); + let tx_success = state.transfer_from(OWNER(), RECIPIENT(), VALUE); + assert!(tx_success); assert_state_after_transfer(OWNER(), RECIPIENT(), VALUE); spy.assert_event_approval(contract_address, OWNER(), SPENDER(), 0); @@ -316,8 +316,8 @@ fn test_transferFrom() { start_cheat_caller_address(contract_address, SPENDER()); assert_state_before_transfer(OWNER(), RECIPIENT()); - let success = state.transferFrom(OWNER(), RECIPIENT(), VALUE); - assert!(success, "Transfer failed"); + let tx_success = state.transferFrom(OWNER(), RECIPIENT(), VALUE); + assert!(tx_success); assert_state_after_transfer(OWNER(), RECIPIENT(), VALUE); spy.assert_event_approval(contract_address, OWNER(), SPENDER(), 0); @@ -564,9 +564,9 @@ fn assert_state_before_transfer(sender: ContractAddress, recipient: ContractAddr let initial_supply = SUPPLY; let current_supply = state.total_supply(); - assert_eq!(initial_supply, current_supply, "Incorrect supply before transfer"); - assert_eq!(state.balance_of(sender), SUPPLY, "Incorrect balance before transfer"); - assert_eq!(state.balance_of(recipient), 0, "Incorrect balance before transfer"); + assert_eq!(initial_supply, current_supply); + assert_eq!(state.balance_of(sender), SUPPLY); + assert_eq!(state.balance_of(recipient), 0); } fn assert_state_after_transfer(sender: ContractAddress, recipient: ContractAddress, amount: u256) { @@ -574,11 +574,9 @@ fn assert_state_after_transfer(sender: ContractAddress, recipient: ContractAddre let initial_supply = SUPPLY; let current_supply = state.total_supply(); - assert_eq!(initial_supply, current_supply, "Incorrect supply after transfer"); - assert_eq!( - state.balance_of(sender), initial_supply - amount, "Incorrect balance after transfer" - ); - assert_eq!(state.balance_of(recipient), amount, "Incorrect balance after transfer"); + assert_eq!(initial_supply, current_supply); + assert_eq!(state.balance_of(sender), initial_supply - amount); + assert_eq!(state.balance_of(recipient), amount); } fn assert_state_before_mint(recipient: ContractAddress) { @@ -586,8 +584,8 @@ fn assert_state_before_mint(recipient: ContractAddress) { let initial_supply = SUPPLY; let current_supply = state.total_supply(); - assert_eq!(current_supply, initial_supply, "Incorrect supply before mint"); - assert_eq!(state.balance_of(recipient), 0, "Incorrect balance before mint"); + assert_eq!(current_supply, initial_supply); + assert_eq!(state.balance_of(recipient), 0); } fn assert_state_after_mint(recipient: ContractAddress, amount: u256) { @@ -595,8 +593,8 @@ fn assert_state_after_mint(recipient: ContractAddress, amount: u256) { let initial_supply = SUPPLY; let current_supply = state.total_supply(); - assert_eq!(current_supply, initial_supply + amount, "Incorrect supply after mint"); - assert_eq!(state.balance_of(recipient), amount, "Incorrect balance after mint"); + assert_eq!(current_supply, initial_supply + amount); + assert_eq!(state.balance_of(recipient), amount); } fn assert_state_before_burn(account: ContractAddress) { @@ -604,8 +602,8 @@ fn assert_state_before_burn(account: ContractAddress) { let initial_supply = SUPPLY; let current_supply = state.total_supply(); - assert_eq!(initial_supply, current_supply, "Incorrect supply before burn"); - assert_eq!(state.balance_of(account), SUPPLY, "Incorrect balance before burn"); + assert_eq!(initial_supply, current_supply); + assert_eq!(state.balance_of(account), SUPPLY); } fn assert_state_after_burn(account: ContractAddress, amount: u256) { @@ -613,6 +611,6 @@ fn assert_state_after_burn(account: ContractAddress, amount: u256) { let initial_supply = SUPPLY; let current_supply = state.total_supply(); - assert_eq!(current_supply, initial_supply - amount, "Incorrect supply after burn"); - assert_eq!(state.balance_of(account), initial_supply - amount, "Incorrect balance after burn"); + assert_eq!(current_supply, initial_supply - amount); + assert_eq!(state.balance_of(account), initial_supply - amount); } From 0c3ad5a6b98f6a604f420c71d4d885c2959557a1 Mon Sep 17 00:00:00 2001 From: andrew Date: Mon, 19 Aug 2024 23:10:10 -0500 Subject: [PATCH 11/11] add ContractAddress import --- packages/token/src/tests/erc20/test_erc20.cairo | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/token/src/tests/erc20/test_erc20.cairo b/packages/token/src/tests/erc20/test_erc20.cairo index 0585c27d8..b4832f48a 100644 --- a/packages/token/src/tests/erc20/test_erc20.cairo +++ b/packages/token/src/tests/erc20/test_erc20.cairo @@ -8,6 +8,7 @@ use openzeppelin_token::erc20::ERC20Component::{ERC20MetadataImpl, InternalImpl} use openzeppelin_token::erc20::ERC20Component; use openzeppelin_token::tests::mocks::erc20_mocks::DualCaseERC20Mock; use snforge_std::{spy_events, test_address, start_cheat_caller_address}; +use starknet::ContractAddress; // // Setup