Skip to content

Commit

Permalink
fmt components and tests
Browse files Browse the repository at this point in the history
  • Loading branch information
Arn0d committed Apr 29, 2024
1 parent c7370de commit 5fe971f
Show file tree
Hide file tree
Showing 8 changed files with 26 additions and 51 deletions.
2 changes: 1 addition & 1 deletion src/components/erc1155/erc1155.cairo
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ mod ERC1155Component {
use openzeppelin::introspection::dual_src5::{DualCaseSRC5, DualCaseSRC5Trait};
use openzeppelin::introspection::src5::SRC5Component::InternalTrait as SRC5InternalTrait;
use openzeppelin::introspection::src5::SRC5Component;

use carbon_v3::components::erc1155::dual1155_receiver::{
DualCaseERC1155Receiver, DualCaseERC1155ReceiverTrait
};
Expand Down
15 changes: 1 addition & 14 deletions src/components/minter/mint.cairo
Original file line number Diff line number Diff line change
Expand Up @@ -240,13 +240,12 @@ mod MintComponent {

// [Check] Allowed enough remaining_money
let remaining_money_amount = self.Mint_remaining_money_amount.read();
println!("remaining_money_amount {}", remaining_money_amount);

assert(money_amount <= remaining_money_amount, 'Not enough remaining money');

// [Interaction] Comput share of the amount of project
let max_money_amount = self.Mint_max_money_amount.read();
let share = money_amount * MULT_ACCURATE_SHARE / max_money_amount;
println!("share {}", share);

// [Interaction] Comput the amount of cc for each vintage
let project_address = self.Mint_carbonable_project_address.read();
Expand All @@ -257,24 +256,12 @@ mod MintComponent {
let cc_distribution: Span<u256> = absorber.compute_carbon_vintage_distribution(share);
let cc_years_vintages: Span<u256> = carbon_credits.get_years_vintage();

println!("cc_distribution {}", cc_distribution.len());
println!("cc_years_vintages {}", cc_years_vintages.len());

// [Interaction] Pay
let token_address = self.Mint_payment_token_address.read();
let erc20 = IERC20Dispatcher { contract_address: token_address };
let minter_address = get_contract_address();


let allowance = erc20.allowance(caller_address, minter_address);
let caller_balance = erc20.balance_of(caller_address);
println!("caller_balance {}", caller_balance);
println!("money_amount {}", money_amount);
println!("allowance {}", allowance);

let success = erc20.transfer(minter_address, money_amount);
println!("transfer success {}", success);

// [Check] Transfer successful
assert(success, 'Transfer failed');

Expand Down
1 change: 0 additions & 1 deletion src/contracts/project.cairo
Original file line number Diff line number Diff line change
Expand Up @@ -157,7 +157,6 @@ mod Project {
fn only_owner(self: @ContractState) {
self.ownable.assert_only_owner()
}

// fn set_list_uri(
// ref self: ContractState, mut token_ids: Span<u256>, mut uris: Span<felt252>
// ) {
Expand Down
4 changes: 2 additions & 2 deletions src/lib.cairo
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,6 @@ mod contracts {
mod minter;
}

mod mock{
mod mock {
mod usdcarb;
}
}
9 changes: 5 additions & 4 deletions src/mock/usdcarb.cairo
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ mod USDCarb {
use openzeppelin::token::erc20::interface::IERC20Metadata;
use openzeppelin::access::ownable::OwnableComponent;
use starknet::ContractAddress;

component!(path: ERC20Component, storage: erc20, event: ERC20Event);
component!(path: OwnableComponent, storage: ownable, event: OwnableEvent);

Expand All @@ -24,7 +24,8 @@ mod USDCarb {
#[abi(embed_v0)]
impl OwnableImpl = OwnableComponent::OwnableImpl<ContractState>;
#[abi(embed_v0)]
impl OwnableCamelOnlyImpl = OwnableComponent::OwnableCamelOnlyImpl<ContractState>;
impl OwnableCamelOnlyImpl =
OwnableComponent::OwnableCamelOnlyImpl<ContractState>;

impl ERC20InternalImpl = ERC20Component::InternalImpl<ContractState>;
impl OwnableInternalImpl = OwnableComponent::InternalImpl<ContractState>;
Expand Down Expand Up @@ -64,7 +65,7 @@ mod USDCarb {
#[abi(embed_v0)]
impl ERC20MetadataImpl of IERC20Metadata<ContractState> {
/// Returns the name of the token.
fn name(self: @ContractState) -> ByteArray{
fn name(self: @ContractState) -> ByteArray {
self.erc20.ERC20_name.read()
}

Expand All @@ -76,4 +77,4 @@ mod USDCarb {
6
}
}
}
}
2 changes: 1 addition & 1 deletion tests/lib.cairo
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
mod test_project;
mod test_carbon_handler;
mod test_mint;
mod test_mint;
29 changes: 13 additions & 16 deletions tests/test_mint.cairo
Original file line number Diff line number Diff line change
Expand Up @@ -41,9 +41,7 @@ use carbon_v3::components::absorber::carbon_handler::AbsorberComponent::{
use carbon_v3::components::data::carbon_vintage::{CarbonVintage, CarbonVintageType};
use carbon_v3::components::absorber::carbon_handler::AbsorberComponent;

use carbon_v3::components::minter::interface::{
IMintDispatcher, IMintDispatcherTrait
};
use carbon_v3::components::minter::interface::{IMintDispatcher, IMintDispatcherTrait};

// Contracts

Expand Down Expand Up @@ -110,7 +108,9 @@ fn deploy_erc20(owner: ContractAddress) -> (ContractAddress, EventSpy) {
}

/// Deploys a minter contract.
fn deploy_minter(owner: ContractAddress, project_address: ContractAddress, payment_address: ContractAddress) -> (ContractAddress, EventSpy) {
fn deploy_minter(
owner: ContractAddress, project_address: ContractAddress, payment_address: ContractAddress
) -> (ContractAddress, EventSpy) {
let contract = snf::declare('Minter');
let public_sale: bool = true;
let max_value: felt252 = 8000000000;
Expand All @@ -124,7 +124,7 @@ fn deploy_minter(owner: ContractAddress, project_address: ContractAddress, payme
calldata.append(unit_price);
calldata.append(0);
calldata.append(owner.into());

let contract_address = contract.deploy(@calldata).unwrap();

let mut spy = snf::spy_events(SpyOn::One(contract_address));
Expand Down Expand Up @@ -153,7 +153,8 @@ fn setup_project(

#[test]
fn test_set_project_carbon() {
let (project_address, mut spy) = deploy_project(c::OWNER());
let owner_address: ContractAddress = contract_address_const::<'owner'>();
let (project_address, mut spy) = deploy_project(owner_address);
let project = IAbsorberDispatcher { contract_address: project_address };
// [Assert] project_carbon set correctly
project.set_project_carbon(PROJECT_CARBON.into());
Expand All @@ -179,9 +180,10 @@ fn test_set_project_carbon() {

#[test]
fn test_is_public_sale_open() {
let (project_address, _) = deploy_project(c::OWNER());
let (erc20_address, _) = deploy_erc20(c::OWNER());
let (minter_address, _) = deploy_minter(c::OWNER(), project_address, erc20_address);
let owner_address: ContractAddress = contract_address_const::<'owner'>();
let (project_address, _) = deploy_project(owner_address);
let (erc20_address, _) = deploy_erc20(owner_address);
let (minter_address, _) = deploy_minter(owner_address, project_address, erc20_address);

let minter = IMintDispatcher { contract_address: minter_address };
// [Assert] project_carbon set correctly
Expand Down Expand Up @@ -244,12 +246,7 @@ fn test_is_public_buy() {
]
.span();

setup_project(
project_address,
8000000000,
times,
absorptions,
);
setup_project(project_address, 8000000000, times, absorptions,);
start_prank(CheatTarget::One(minter_address), owner_address);
start_prank(CheatTarget::One(erc20_address), owner_address);
let project = IAbsorberDispatcher { contract_address: project_address };
Expand All @@ -268,7 +265,7 @@ fn test_is_public_buy() {
/// [Approval] approve the minter to spend the money
let amount_to_buy: u256 = 1000000000;
// approve the minter to spend the money

let erc20 = IERC20Dispatcher { contract_address: erc20_address };
erc20.approve(minter_address, amount_to_buy);

Expand Down
15 changes: 3 additions & 12 deletions tests/test_project.cairo
Original file line number Diff line number Diff line change
Expand Up @@ -85,9 +85,7 @@ fn test_project_batch_mint() {
let other_address: ContractAddress = contract_address_const::<'other'>();
let (project_address, _) = deploy_project();
let absorber = IAbsorberDispatcher { contract_address: project_address };
let carbon_credits = ICarbonCreditsHandlerDispatcher {
contract_address: project_address
};
let carbon_credits = ICarbonCreditsHandlerDispatcher { contract_address: project_address };

let times: Span<u64> = array![
1674579600,
Expand Down Expand Up @@ -137,28 +135,21 @@ fn test_project_batch_mint() {
]
.span();

setup_project(
project_address,
8000000000,
times,
absorptions,
);
setup_project(project_address, 8000000000, times, absorptions,);

start_prank(CheatTarget::One(project_address), owner_address);

assert(absorber.is_setup(), 'Error during setup');
assert(absorber.is_setup(), 'Error during setup');
let project_contract = IProjectDispatcher { contract_address: project_address };

let decimal: u8 = project_contract.decimals();
assert(decimal == 6, 'Error of decimal');


let balance: u256 = project_contract.balance(owner_address, 2027);
assert(balance == 0, 'Error of balance');

let share: u256 = 125000;
let cc_distribution: Span<u256> = absorber.compute_carbon_vintage_distribution(share);
let cc_years_vintages: Span<u256> = carbon_credits.get_years_vintage();
project_contract.batch_mint(owner_address, cc_years_vintages, cc_distribution);

}

0 comments on commit 5fe971f

Please sign in to comment.