diff --git a/src/contracts/project.cairo b/src/contracts/project.cairo index 3000b5f..17eb204 100644 --- a/src/contracts/project.cairo +++ b/src/contracts/project.cairo @@ -72,6 +72,7 @@ pub trait IExternal { fn cc_to_internal(self: @TContractState, cc_value_to_send: u256, token_id: u256) -> u256; fn internal_to_cc(self: @TContractState, internal_value_to_send: u256, token_id: u256) -> u256; + fn get_balances(self: @TContractState, account: ContractAddress) -> Span; } @@ -425,6 +426,19 @@ pub mod Project { let initial_project_supply = self.vintage.get_initial_project_cc_supply(); internal_value_to_send * vintage_supply / initial_project_supply } + + fn get_balances(self: @ContractState, account: ContractAddress) -> Span { + let mut token_ids = array![]; + let mut accounts = array![]; + let num_vintages = self.vintage.get_num_vintages(); + for i in 0 + ..num_vintages { + let token_id = (i + 1).into(); + token_ids.append(token_id); + accounts.append(account); + }; + super::IExternal::balance_of_batch(self, accounts.span(), token_ids.span()) + } } #[abi(embed_v0)] @@ -638,3 +652,4 @@ pub mod Project { } } } +