From c10c09fead4afc3dc2446f358564292df7007455 Mon Sep 17 00:00:00 2001 From: Vladas Zakrevskis <146100@gmail.com> Date: Mon, 25 Sep 2023 16:57:05 +0300 Subject: [PATCH] Store user jars in map (#24) * wip * some more migration progress * fixed all todos, removed JarState * fixed claim * all tests passing * store last jar index in contract * fixed and updated integration tests * claim jars by indices * remove account id from withdraw api * remeasure after claim * return slices instead of vector for account jars getter * remove account id parameter from restake * added documentation * renamed index to ID * added ids to get principal and get interest * store last jar id for each user * ID -> Id * increment jar index in one place * delete jar only after full claim and withdraw, some test fixes * new github token * Rename * delete empty jar on after_claim * extracted claim_interest * removed unreachable test part * build push binary in docker --------- Co-authored-by: Vasily Styagov --- .github/workflows/push.yml | 4 +- .github/workflows/test.yml | 8 +- contract/src/assert.rs | 6 +- contract/src/claim/api.rs | 110 ++++-- contract/src/claim/mod.rs | 57 +-- contract/src/claim/tests.rs | 157 ++++++++ contract/src/common/mod.rs | 4 +- contract/src/common/tests.rs | 4 +- contract/src/event.rs | 16 +- contract/src/ft_interface.rs | 2 + contract/src/ft_receiver.rs | 36 +- contract/src/internal.rs | 53 +-- contract/src/jar/api.rs | 102 +++--- contract/src/jar/model.rs | 230 ++++++------ contract/src/jar/tests.rs | 44 ++- contract/src/jar/view.rs | 22 +- contract/src/lib.rs | 340 +++--------------- contract/src/migration/api.rs | 18 +- contract/src/penalty/api.rs | 19 +- contract/src/tests.rs | 286 +++++++++++++++ contract/src/withdraw/api.rs | 228 ++---------- contract/src/withdraw/mod.rs | 1 + contract/src/withdraw/tests.rs | 222 ++++++++++++ .../src/jar_contract_interface.rs | 8 +- integration-tests/src/measure/claim_total.rs | 27 +- integration-tests/src/migration.rs | 4 +- integration-tests/src/product.rs | 2 +- integration-tests/src/withdraw_fee.rs | 4 +- res/sweat_jar.wasm | Bin 578071 -> 565064 bytes 29 files changed, 1152 insertions(+), 862 deletions(-) create mode 100644 contract/src/claim/tests.rs create mode 100644 contract/src/tests.rs create mode 100644 contract/src/withdraw/tests.rs diff --git a/.github/workflows/push.yml b/.github/workflows/push.yml index c039cef5..653b90b7 100644 --- a/.github/workflows/push.yml +++ b/.github/workflows/push.yml @@ -16,7 +16,7 @@ jobs: uses: actions/checkout@v3 - name: Build - run: make build + run: make build-in-docker - name: Upload binary uses: actions/upload-artifact@v3 @@ -72,4 +72,4 @@ jobs: with: message: Updated binary branch: main - github_token: ${{ secrets.GITHUB_TOKEN }} + github_token: ${{ secrets.ACTIONS_TOKEN }} diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index b8668dd7..92c270a1 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -16,13 +16,7 @@ jobs: uses: actions/checkout@v3 - name: Build - run: make build-in-docker - - - name: Upload binary - uses: actions/upload-artifact@v3 - with: - name: sweat-jar - path: res/sweat_jar.wasm + run: make build lint: runs-on: ubuntu-latest diff --git a/contract/src/assert.rs b/contract/src/assert.rs index 12c06e34..0efcfc13 100644 --- a/contract/src/assert.rs +++ b/contract/src/assert.rs @@ -2,14 +2,10 @@ use near_sdk::{require, AccountId}; use crate::{ common::{Timestamp, TokenAmount}, - jar::model::{Jar, JarState}, + jar::model::Jar, product::model::Product, }; -pub(crate) fn assert_is_not_closed(jar: &Jar) { - assert_ne!(jar.state, JarState::Closed, "Jar is closed"); -} - pub(crate) fn assert_sufficient_balance(jar: &Jar, amount: TokenAmount) { require!(jar.principal >= amount, "Insufficient balance"); } diff --git a/contract/src/claim/api.rs b/contract/src/claim/api.rs index f05b2631..d4812687 100644 --- a/contract/src/claim/api.rs +++ b/contract/src/claim/api.rs @@ -1,12 +1,12 @@ use std::cmp; -use near_sdk::{env, ext_contract, is_promise_success, json_types::U128, near_bindgen, PromiseOrValue}; +use near_sdk::{env, ext_contract, is_promise_success, json_types::U128, near_bindgen, AccountId, PromiseOrValue}; use crate::{ common::{TokenAmount, GAS_FOR_AFTER_CLAIM}, event::{emit, ClaimEventItem, EventKind}, ft_interface::FungibleTokenInterface, - jar::model::{Jar, JarIndex}, + jar::model::{Jar, JarId}, Contract, ContractExt, Promise, }; @@ -20,11 +20,11 @@ pub trait ClaimApi { /// interest across all jars is zero, the returned value will also be zero. fn claim_total(&mut self) -> PromiseOrValue; - /// Claims interest from specific deposit jars with provided indices. + /// Claims interest from specific deposit jars with provided IDs. /// /// # Arguments /// - /// * `jar_indices` - A `Vec` containing the indices of the deposit jars from which interest is being claimed. + /// * `jar_ids` - A `Vec` containing the IDs of the deposit jars from which interest is being claimed. /// * `amount` - An optional `TokenAmount` specifying the desired amount of tokens to claim. If provided, the method /// will attempt to claim this specific amount of tokens. If not provided or if the specified amount /// is greater than the total available interest in the provided jars, the method will claim the maximum @@ -34,7 +34,7 @@ pub trait ClaimApi { /// /// A `PromiseOrValue` representing the amount of tokens claimed. If the total available interest /// across the specified jars is zero or the provided `amount` is zero, the returned value will also be zero. - fn claim_jars(&mut self, jar_indices: Vec, amount: Option) -> PromiseOrValue; + fn claim_jars(&mut self, jar_ids: Vec, amount: Option) -> PromiseOrValue; } #[ext_contract(ext_self)] @@ -46,18 +46,19 @@ pub trait ClaimCallbacks { impl ClaimApi for Contract { fn claim_total(&mut self) -> PromiseOrValue { let account_id = env::predecessor_account_id(); - let jar_indices = self.account_jar_ids(&account_id); - self.claim_jars(jar_indices, None) + let jar_ids = self.account_jars(&account_id).iter().map(|a| a.id).collect(); + self.claim_jars(jar_ids, None) } - fn claim_jars(&mut self, jar_indices: Vec, amount: Option) -> PromiseOrValue { + fn claim_jars(&mut self, jar_ids: Vec, amount: Option) -> PromiseOrValue { let account_id = env::predecessor_account_id(); let now = env::block_timestamp_ms(); - let unlocked_jars: Vec = jar_indices - .into_iter() - .map(|index| self.get_jar_internal(index)) - .filter(|jar| !jar.is_pending_withdraw && jar.account_id == account_id) + let unlocked_jars: Vec = self + .account_jars(&account_id) + .iter() + .filter(|jar| !jar.is_pending_withdraw && jar_ids.contains(&jar.id)) + .cloned() .collect(); let mut total_interest_to_claim: TokenAmount = 0; @@ -71,41 +72,77 @@ impl ClaimApi for Contract { cmp::min(available_interest, amount.0 - total_interest_to_claim) }); - let updated_jar = jar.claimed(available_interest, interest_to_claim, now).locked(); - self.jars.replace(jar.index, updated_jar); + self.get_jar_mut_internal(&jar.account_id, jar.id) + .claim(available_interest, interest_to_claim, now) + .lock(); if interest_to_claim > 0 { total_interest_to_claim += interest_to_claim; event_data.push(ClaimEventItem { - index: jar.index, + id: jar.id, interest_to_claim: U128(interest_to_claim), }); } } if total_interest_to_claim > 0 { - self.ft_contract() - .transfer(&account_id, total_interest_to_claim, "claim", &None) - .then(after_claim_call( - U128(total_interest_to_claim), - unlocked_jars, - EventKind::Claim(event_data), - )) - .into() + self.claim_interest( + &account_id, + U128(total_interest_to_claim), + unlocked_jars, + EventKind::Claim(event_data), + ) } else { PromiseOrValue::Value(U128(0)) } } } -#[near_bindgen] -impl ClaimCallbacks for Contract { - #[private] - fn after_claim(&mut self, claimed_amount: U128, jars_before_transfer: Vec, event: EventKind) -> U128 { - if is_promise_success() { +impl Contract { + #[cfg(test)] + fn claim_interest( + &mut self, + _account_id: &AccountId, + claimed_amount: U128, + jars_before_transfer: Vec, + event: EventKind, + ) -> PromiseOrValue { + PromiseOrValue::Value(self.after_claim_internal(claimed_amount, jars_before_transfer, event, true)) + } + + #[cfg(not(test))] + fn claim_interest( + &mut self, + account_id: &AccountId, + claimed_amount: U128, + jars_before_transfer: Vec, + event: EventKind, + ) -> PromiseOrValue { + self.ft_contract() + .transfer(account_id, claimed_amount.0, "claim", &None) + .then(after_claim_call(claimed_amount, jars_before_transfer, event)) + .into() + } + + fn after_claim_internal( + &mut self, + claimed_amount: U128, + jars_before_transfer: Vec, + event: EventKind, + is_promise_success: bool, + ) -> U128 { + if is_promise_success { for jar_before_transfer in jars_before_transfer { - self.get_jar_mut_internal(jar_before_transfer.index).unlock(); + let jar = self.get_jar_mut_internal(&jar_before_transfer.account_id, jar_before_transfer.id); + + jar.unlock(); + + if let Some(ref cache) = jar.cache { + if cache.interest == 0 && jar.principal == 0 { + self.delete_jar(jar_before_transfer); + } + } } emit(event); @@ -113,8 +150,10 @@ impl ClaimCallbacks for Contract { claimed_amount } else { for jar_before_transfer in jars_before_transfer { - self.jars - .replace(jar_before_transfer.index, jar_before_transfer.unlocked()); + let account_id = jar_before_transfer.account_id.clone(); + let jar_id = jar_before_transfer.id; + + *self.get_jar_mut_internal(&account_id, jar_id) = jar_before_transfer.unlocked(); } U128(0) @@ -122,6 +161,15 @@ impl ClaimCallbacks for Contract { } } +#[near_bindgen] +impl ClaimCallbacks for Contract { + #[private] + fn after_claim(&mut self, claimed_amount: U128, jars_before_transfer: Vec, event: EventKind) -> U128 { + self.after_claim_internal(claimed_amount, jars_before_transfer, event, is_promise_success()) + } +} + +#[cfg(not(test))] fn after_claim_call(claimed_amount: U128, jars_before_transfer: Vec, event: EventKind) -> Promise { ext_self::ext(env::current_account_id()) .with_static_gas(GAS_FOR_AFTER_CLAIM) diff --git a/contract/src/claim/mod.rs b/contract/src/claim/mod.rs index 27d5837b..a7bbbbc9 100644 --- a/contract/src/claim/mod.rs +++ b/contract/src/claim/mod.rs @@ -1,57 +1,2 @@ pub mod api; - -#[cfg(test)] -mod tests { - use near_sdk::{json_types::U128, test_utils::accounts, PromiseOrValue}; - - use crate::{ - claim::api::ClaimApi, - common::{tests::Context, u32::U32, udecimal::UDecimal, MS_IN_YEAR}, - jar::{api::JarApi, model::Jar}, - product::model::{Apy, Product}, - }; - - #[test] - fn claim_total_when_nothing_to_claim() { - let alice = accounts(0); - let admin = accounts(1); - - let product = generate_product(); - let jar = Jar::generate(0, &alice, &product.id).principal(100_000_000); - let mut context = Context::new(admin).with_products(&[product]).with_jars(&[jar]); - - context.switch_account(&alice); - let result = context.contract.claim_total(); - - if let PromiseOrValue::Value(value) = result { - assert_eq!(0, value.0); - } else { - panic!(); - } - } - - #[test] - fn claim_partially_when_having_tokens_to_claim() { - let alice = accounts(0); - let admin = accounts(1); - - let product = generate_product(); - let jar = Jar::generate(0, &alice, &product.id).principal(100_000_000_000); - let mut context = Context::new(admin).with_products(&[product]).with_jars(&[jar.clone()]); - - context.set_block_timestamp_in_days(365); - - context.switch_account(&alice); - context.contract.claim_jars(vec![jar.index], Some(U128(100))); - - let jar = context.contract.get_jar(U32(jar.index)); - assert_eq!(100, jar.claimed_balance.0); - } - - fn generate_product() -> Product { - Product::generate("product") - .enabled(true) - .lockup_term(MS_IN_YEAR) - .apy(Apy::Constant(UDecimal::new(12, 2))) - } -} +mod tests; diff --git a/contract/src/claim/tests.rs b/contract/src/claim/tests.rs new file mode 100644 index 00000000..d8098d0a --- /dev/null +++ b/contract/src/claim/tests.rs @@ -0,0 +1,157 @@ +#![cfg(test)] + +use near_sdk::{json_types::U128, test_utils::accounts, PromiseOrValue}; + +use crate::{ + claim::api::ClaimApi, + common::{tests::Context, u32::U32, udecimal::UDecimal, MS_IN_YEAR}, + jar::{api::JarApi, model::Jar}, + product::model::{Apy, Product}, + withdraw::api::WithdrawApi, +}; + +#[test] +fn claim_total_when_nothing_to_claim() { + let alice = accounts(0); + let admin = accounts(1); + + let product = generate_product(); + let jar = Jar::generate(0, &alice, &product.id).principal(100_000_000); + let mut context = Context::new(admin).with_products(&[product]).with_jars(&[jar]); + + context.switch_account(&alice); + let result = context.contract.claim_total(); + + let PromiseOrValue::Value(value) = result else { + panic!(); + }; + + assert_eq!(0, value.0); +} + +#[test] +fn claim_partially_when_having_tokens_to_claim() { + let alice = accounts(0); + let admin = accounts(1); + + let product = generate_product(); + let jar = Jar::generate(0, &alice, &product.id).principal(100_000_000_000); + let mut context = Context::new(admin).with_products(&[product]).with_jars(&[jar.clone()]); + + context.set_block_timestamp_in_days(365); + + context.switch_account(&alice); + let PromiseOrValue::Value(claimed) = context.contract.claim_jars(vec![jar.id], Some(U128(100))) else { + panic!() + }; + + dbg!(&claimed); + + let jar = context.contract.get_jar(alice, U32(jar.id)); + assert_eq!(100, jar.claimed_balance.0); +} + +#[test] +fn dont_delete_jar_on_all_interest_claim() { + let alice = accounts(0); + let admin = accounts(1); + + let product = generate_product().apy(Apy::Constant(UDecimal::new(2, 1))); + let jar = Jar::generate(0, &alice, &product.id).principal(1_000_000); + let mut context = Context::new(admin).with_products(&[product]).with_jars(&[jar.clone()]); + + context.set_block_timestamp_in_days(365); + + context.switch_account(&alice); + context.contract.claim_jars(vec![jar.id], Some(U128(200_000))); + + let jar = context.contract.get_jar_internal(&alice, jar.id); + assert_eq!(200_000, jar.claimed_balance); + + let Some(ref cache) = jar.cache else { panic!() }; + + assert_eq!(cache.interest, 0); + assert_eq!(jar.principal, 1_000_000); +} + +#[test] +#[should_panic(expected = "Jar with id: 0 doesn't exist")] +fn claim_all_withdraw_all_and_delete_jar() { + let alice = accounts(0); + let admin = accounts(1); + + let product = generate_product().apy(Apy::Constant(UDecimal::new(2, 1))); + let jar = Jar::generate(0, &alice, &product.id).principal(1_000_000); + + let jar_id = jar.id; + + let mut context = Context::new(admin) + .with_products(&[product.clone()]) + .with_jars(&[jar.clone()]); + + context.set_block_timestamp_in_ms(product.get_lockup_term().unwrap() + 1); + + context.switch_account(&alice); + context.contract.claim_jars(vec![jar_id], Some(U128(200_000))); + + let jar = context.contract.get_jar_internal(&alice, jar_id); + assert_eq!(200_000, jar.claimed_balance); + + let Some(ref cache) = jar.cache else { panic!() }; + + assert_eq!(cache.interest, 0); + assert_eq!(jar.principal, 1_000_000); + + let PromiseOrValue::Value(withdrawn) = context.contract.withdraw(U32(jar_id), None) else { + panic!() + }; + + assert_eq!(withdrawn.withdrawn_amount, U128(1_000_000)); + assert_eq!(withdrawn.fee, U128(0)); + + let _jar = context.contract.get_jar_internal(&alice, jar_id); +} + +#[test] +#[should_panic(expected = "Jar with id: 0 doesn't exist")] +fn withdraw_all_claim_all_and_delete_jar() { + let alice = accounts(0); + let admin = accounts(1); + + let product = generate_product().apy(Apy::Constant(UDecimal::new(2, 1))); + let jar = Jar::generate(0, &alice, &product.id).principal(1_000_000); + + let jar_id = jar.id; + + let mut context = Context::new(admin) + .with_products(&[product.clone()]) + .with_jars(&[jar.clone()]); + + context.set_block_timestamp_in_ms(product.get_lockup_term().unwrap() + 1); + + context.switch_account(&alice); + + let PromiseOrValue::Value(withdrawn) = context.contract.withdraw(U32(jar_id), None) else { + panic!() + }; + + assert_eq!(withdrawn.withdrawn_amount, U128(1_000_000)); + assert_eq!(withdrawn.fee, U128(0)); + + let jar = context.contract.get_jar_internal(&alice, jar_id); + + let PromiseOrValue::Value(claimed) = context.contract.claim_jars(vec![jar_id], Some(U128(200_000))) else { + panic!(); + }; + + assert_eq!(claimed, U128(200_000)); + + let _jar = context.contract.get_jar_internal(&alice, jar_id); +} + +fn generate_product() -> Product { + Product::generate("product") + .enabled(true) + .lockup_term(MS_IN_YEAR) + .apy(Apy::Constant(UDecimal::new(12, 2))) +} diff --git a/contract/src/common/mod.rs b/contract/src/common/mod.rs index 69e8a5bb..f39c579e 100644 --- a/contract/src/common/mod.rs +++ b/contract/src/common/mod.rs @@ -29,11 +29,11 @@ pub const fn tgas(val: u64) -> Gas { const INITIAL_GAS_FOR_AFTER_CLAIM: u64 = 4 * TERA; /// Cost of adding 1 additional jar in after claim call. Measured with `measure_after_claim_total_test` -const ADDITIONAL_AFTER_CLAIM_JAR_COST: u64 = 300 * GIGA; +const ADDITIONAL_AFTER_CLAIM_JAR_COST: u64 = 80 * GIGA; /// Values are measured with `measure_after_claim_total_test` /// For now number of jars is arbitrary -pub(crate) const GAS_FOR_AFTER_CLAIM: Gas = Gas(INITIAL_GAS_FOR_AFTER_CLAIM + ADDITIONAL_AFTER_CLAIM_JAR_COST * 50); +pub(crate) const GAS_FOR_AFTER_CLAIM: Gas = Gas(INITIAL_GAS_FOR_AFTER_CLAIM + ADDITIONAL_AFTER_CLAIM_JAR_COST * 200); /// Value is measured with `measure_withdraw_test` /// Average gas for this method call don't exceed 3.4 `TGas`. 4 here just in case. diff --git a/contract/src/common/tests.rs b/contract/src/common/tests.rs index 4e26e0a6..bdaa399f 100644 --- a/contract/src/common/tests.rs +++ b/contract/src/common/tests.rs @@ -48,13 +48,11 @@ impl Context { pub(crate) fn with_jars(mut self, jars: &[Jar]) -> Self { for jar in jars { - self.contract.jars.push(jar.clone()); - self.contract .account_jars .entry(jar.account_id.clone()) .or_default() - .insert(jar.index); + .push(jar.clone()); } self diff --git a/contract/src/event.rs b/contract/src/event.rs index a323ce9a..228dc2be 100644 --- a/contract/src/event.rs +++ b/contract/src/event.rs @@ -7,7 +7,7 @@ use near_sdk::{ use crate::{ env, - jar::model::{Jar, JarIndex}, + jar::model::{Jar, JarId}, product::model::{Product, ProductId}, PACKAGE_NAME, VERSION, }; @@ -44,35 +44,35 @@ struct SweatJarEvent { #[derive(Serialize, Deserialize, Debug)] #[serde(crate = "near_sdk::serde")] pub struct ClaimEventItem { - pub index: JarIndex, + pub id: JarId, pub interest_to_claim: U128, } #[derive(Serialize, Deserialize, Debug)] #[serde(crate = "near_sdk::serde")] pub struct WithdrawData { - pub index: JarIndex, + pub id: JarId, } #[derive(Serialize, Deserialize, Debug)] #[serde(crate = "near_sdk::serde")] pub struct MigrationEventItem { pub original_id: String, - pub index: JarIndex, + pub id: JarId, pub account_id: AccountId, } #[derive(Serialize, Deserialize, Debug)] #[serde(crate = "near_sdk::serde")] pub struct RestakeData { - pub old_index: JarIndex, - pub new_index: JarIndex, + pub old_id: JarId, + pub new_id: JarId, } #[derive(Serialize, Deserialize, Debug)] #[serde(crate = "near_sdk::serde")] pub struct PenaltyData { - pub index: JarIndex, + pub id: JarId, pub is_applied: bool, } @@ -93,7 +93,7 @@ pub struct ChangeProductPublicKeyData { #[derive(Serialize, Deserialize, Debug)] #[serde(crate = "near_sdk::serde")] pub struct TopUpData { - pub index: JarIndex, + pub id: JarId, pub amount: U128, } diff --git a/contract/src/ft_interface.rs b/contract/src/ft_interface.rs index f70a8224..b73e1adc 100644 --- a/contract/src/ft_interface.rs +++ b/contract/src/ft_interface.rs @@ -22,6 +22,7 @@ pub struct Fee { } impl FungibleTokenContract { + #[cfg(not(test))] fn new(address: AccountId) -> Self { Self { address } } @@ -29,6 +30,7 @@ impl FungibleTokenContract { #[near_bindgen] impl Contract { + #[cfg(not(test))] pub(crate) fn ft_contract(&self) -> impl FungibleTokenInterface { FungibleTokenContract::new(self.token_account_id.clone()) } diff --git a/contract/src/ft_receiver.rs b/contract/src/ft_receiver.rs index 076ec7d2..f3205e22 100644 --- a/contract/src/ft_receiver.rs +++ b/contract/src/ft_receiver.rs @@ -8,7 +8,7 @@ use near_sdk::{ use crate::{ jar::model::JarTicket, migration::model::CeFiJar, near_bindgen, AccountId, Base64VecU8, Contract, ContractExt, - JarIndex, + JarId, }; /// The `FtMessage` enum represents various commands for actions available via transferring tokens to an account @@ -22,8 +22,8 @@ pub enum FtMessage { /// Represents a request to create DeFi Jars from provided CeFi Jars. Migrate(Vec), - /// Represents a request to refill (top up) an existing jar using its `JarIndex`. - TopUp(JarIndex), + /// Represents a request to refill (top up) an existing jar using its `JarId`. + TopUp(JarId), } /// The `StakeMessage` struct represents a request to create a new jar for a corresponding product. @@ -57,8 +57,8 @@ impl FungibleTokenReceiver for Contract { self.migrate_jars(jars, amount); } - FtMessage::TopUp(jar_index) => { - self.top_up(jar_index, amount); + FtMessage::TopUp(jar_id) => { + self.top_up(&sender_id, jar_id, amount); } } @@ -102,10 +102,12 @@ mod tests { }); context.switch_account_to_ft_contract_account(); - context.contract.ft_on_transfer(alice, U128(1_000_000), msg.to_string()); + context + .contract + .ft_on_transfer(alice.clone(), U128(1_000_000), msg.to_string()); - let jar = context.contract.get_jar(U32(0)); - assert_eq!(jar.index.0, 0); + let jar = context.contract.get_jar(alice, U32(1)); + assert_eq!(jar.id.0, 1); } #[test] @@ -147,8 +149,8 @@ mod tests { .contract .ft_on_transfer(alice.clone(), U128(ticket_amount), msg.to_string()); - let jar = context.contract.get_jar(U32(0)); - assert_eq!(jar.index.0, 0); + let jar = context.contract.get_jar(alice.clone(), U32(1)); + assert_eq!(jar.id.0, 1); let result = catch_unwind(move || { context @@ -177,16 +179,16 @@ mod tests { let msg = json!({ "type": "top_up", - "data": reference_jar.index, + "data": reference_jar.id, }); context.switch_account_to_ft_contract_account(); let top_up_amount = 700; context .contract - .ft_on_transfer(alice, U128(top_up_amount), msg.to_string()); + .ft_on_transfer(alice.clone(), U128(top_up_amount), msg.to_string()); - let jar = context.contract.get_jar(U32(0)); + let jar = context.contract.get_jar(alice, U32(0)); assert_eq!(initial_jar_principal + top_up_amount, jar.principal.0); } @@ -209,7 +211,7 @@ mod tests { let msg = json!({ "type": "top_up", - "data": reference_jar.index, + "data": reference_jar.id, }); context.switch_account_to_ft_contract_account(); @@ -235,7 +237,7 @@ mod tests { let msg = json!({ "type": "top_up", - "data": reference_jar.index, + "data": reference_jar.id, }); context.switch_account_to_ft_contract_account(); @@ -243,9 +245,9 @@ mod tests { let top_up_amount = 1_000; context .contract - .ft_on_transfer(alice, U128(top_up_amount), msg.to_string()); + .ft_on_transfer(alice.clone(), U128(top_up_amount), msg.to_string()); - let jar = context.contract.get_jar(U32(0)); + let jar = context.contract.get_jar(alice, U32(0)); assert_eq!(initial_jar_principal + top_up_amount, jar.principal.0); } diff --git a/contract/src/internal.rs b/contract/src/internal.rs index 634966a5..9ca84e95 100644 --- a/contract/src/internal.rs +++ b/contract/src/internal.rs @@ -1,6 +1,10 @@ use near_sdk::require; -use crate::{env, AccountId, Contract, Jar, JarIndex, Product, ProductId}; +use crate::{ + env, + jar::{model::JarId, view::JarIdView}, + AccountId, Contract, Jar, Product, ProductId, +}; impl Contract { pub(crate) fn assert_manager(&self) { @@ -17,38 +21,47 @@ impl Contract { ); } + pub(crate) fn increment_and_get_last_jar_id(&mut self) -> JarId { + self.last_jar_id += 1; + self.last_jar_id + } + pub(crate) fn get_product(&self, product_id: &ProductId) -> &Product { self.products .get(product_id) - .unwrap_or_else(|| env::panic_str(&format!("Product {product_id} doesn't exist"))) + .unwrap_or_else(|| env::panic_str(&format!("Product '{product_id}' doesn't exist"))) } pub(crate) fn get_product_mut(&mut self, product_id: &ProductId) -> &mut Product { self.products .get_mut(product_id) - .unwrap_or_else(|| env::panic_str(&format!("Product {product_id} doesn't exist"))) + .unwrap_or_else(|| env::panic_str(&format!("Product '{product_id}' doesn't exist"))) } - pub(crate) fn account_jar_ids(&self, account_id: &AccountId) -> Vec { - self.account_jars - .get(account_id) - .map_or_else(Vec::new, |items| items.iter().copied().collect()) + pub(crate) fn account_jars(&self, account_id: &AccountId) -> &[Jar] { + self.account_jars.get(account_id).map_or(&[], |jars| jars.as_slice()) } - pub(crate) fn save_jar(&mut self, account_id: &AccountId, jar: Jar) { - let jar_index = jar.index; - self.insert_or_update_jar(jar); - self.account_jars - .entry(account_id.clone()) - .or_default() - .insert(jar_index); - } + pub(crate) fn account_jars_with_ids(&self, account_id: &AccountId, ids: &[JarIdView]) -> Vec<&Jar> { + let mut result: Vec<&Jar> = vec![]; + + let all_jars = self.account_jars(account_id); - fn insert_or_update_jar(&mut self, jar: Jar) { - if jar.index < self.jars.len() { - self.jars.replace(jar.index, jar); - } else { - self.jars.push(jar); + for id in ids { + result.push( + all_jars + .iter() + .find(|jar| jar.id == id.0) + .unwrap_or_else(|| env::panic_str(&format!("Jar with id: '{}' doesn't exist", id.0))), + ); } + + result + } + + pub(crate) fn add_new_jar(&mut self, account_id: &AccountId, jar: Jar) { + let jars = self.account_jars.entry(account_id.clone()).or_default(); + jars.last_id = jar.id; + jars.push(jar); } } diff --git a/contract/src/jar/api.rs b/contract/src/jar/api.rs index fe8333ea..cf26ece4 100644 --- a/contract/src/jar/api.rs +++ b/contract/src/jar/api.rs @@ -6,8 +6,8 @@ use crate::{ assert_ownership, common::{u32::U32, TokenAmount}, event::{emit, EventKind, RestakeData}, - jar::view::{AggregatedInterestView, AggregatedTokenAmountView, JarIndexView, JarView}, - Contract, ContractExt, Jar, JarIndex, + jar::view::{AggregatedInterestView, AggregatedTokenAmountView, JarIdView, JarView}, + Contract, ContractExt, Jar, }; /// The `JarApi` trait defines methods for managing deposit jars and their associated data within the smart contract. @@ -16,12 +16,12 @@ pub trait JarApi { /// /// # Arguments /// - /// * `jar_index` - The index of the deposit jar for which information is being retrieved. + /// * `jar_id` - The ID of the deposit jar for which information is being retrieved. /// /// # Returns /// /// A `JarView` struct containing details about the specified deposit jar. - fn get_jar(&self, jar_index: JarIndexView) -> JarView; + fn get_jar(&self, account_id: AccountId, jar_id: JarIdView) -> JarView; /// Retrieves information about all deposit jars associated with a given account. /// @@ -50,13 +50,15 @@ pub trait JarApi { /// /// # Arguments /// - /// * `jar_indices` - A `Vec` containing the indices of the deposit jars for which the + /// * `jar_ids` - A `Vec` containing the IDs of the deposit jars for which the /// principal is being retrieved. /// + /// * `account_id` - The `AccountId` of the account for which the principal is being retrieved. + /// /// # Returns /// /// An `U128` representing the sum of principal amounts for the specified deposit jars. - fn get_principal(&self, jar_indices: Vec) -> AggregatedTokenAmountView; + fn get_principal(&self, jar_ids: Vec, account_id: AccountId) -> AggregatedTokenAmountView; /// Retrieves the total interest amount across all deposit jars for a provided account. /// @@ -74,20 +76,20 @@ pub trait JarApi { /// /// # Arguments /// - /// * `jar_indices` - A `Vec` containing the indices of the deposit jars for which the + /// * `jar_ids` - A `Vec` containing the IDs of the deposit jars for which the /// interest is being retrieved. /// /// # Returns /// /// An `U128` representing the sum of interest amounts for the specified deposit jars. /// - fn get_interest(&self, jar_indices: Vec) -> AggregatedInterestView; + fn get_interest(&self, jar_ids: Vec, account_id: AccountId) -> AggregatedInterestView; /// Restakes the contents of a specified deposit jar into a new jar. /// /// # Arguments /// - /// * `jar_index` - The index of the deposit jar from which the restaking is being initiated. + /// * `jar_id` - The ID of the deposit jar from which the restaking is being initiated. /// /// # Returns /// @@ -99,37 +101,35 @@ pub trait JarApi { /// - If the product of the original jar does not support restaking. /// - If the function is called by an account other than the owner of the original jar. /// - If the original jar is not yet mature. - fn restake(&mut self, jar_index: JarIndexView) -> JarView; + fn restake(&mut self, jar_id: JarIdView) -> JarView; } #[near_bindgen] impl JarApi for Contract { - fn get_jar(&self, jar_index: JarIndexView) -> JarView { - self.get_jar_internal(jar_index.0).into() + fn get_jar(&self, account_id: AccountId, jar_id: JarIdView) -> JarView { + self.get_jar_internal(&account_id, jar_id.0).into() } fn get_jars_for_account(&self, account_id: AccountId) -> Vec { - self.account_jar_ids(&account_id) - .into_iter() - .map(|index| self.get_jar(U32(index))) - .collect() + self.account_jars(&account_id).iter().map(Into::into).collect() } fn get_total_principal(&self, account_id: AccountId) -> AggregatedTokenAmountView { - let jar_indices = self.account_jar_ids(&account_id).into_iter().map(U32).collect(); - - self.get_principal(jar_indices) + self.get_principal( + self.account_jars(&account_id).iter().map(|a| U32(a.id)).collect(), + account_id, + ) } - fn get_principal(&self, jar_indices: Vec) -> AggregatedTokenAmountView { - let mut detailed_amounts = HashMap::::new(); + fn get_principal(&self, jar_ids: Vec, account_id: AccountId) -> AggregatedTokenAmountView { + let mut detailed_amounts = HashMap::::new(); let mut total_amount: TokenAmount = 0; - for index in jar_indices { - let index = index.0; - let principal = self.get_jar_internal(index).principal; + for jar in self.account_jars_with_ids(&account_id, &jar_ids) { + let id = jar.id; + let principal = jar.principal; - detailed_amounts.insert(U32(index), U128(principal)); + detailed_amounts.insert(U32(id), U128(principal)); total_amount += principal; } @@ -140,23 +140,22 @@ impl JarApi for Contract { } fn get_total_interest(&self, account_id: AccountId) -> AggregatedInterestView { - let jar_indices = self.account_jar_ids(&account_id).into_iter().map(U32).collect(); - - self.get_interest(jar_indices) + self.get_interest( + self.account_jars(&account_id).iter().map(|a| U32(a.id)).collect(), + account_id, + ) } - fn get_interest(&self, jar_indices: Vec) -> AggregatedInterestView { + fn get_interest(&self, jar_ids: Vec, account_id: AccountId) -> AggregatedInterestView { let now = env::block_timestamp_ms(); - let mut detailed_amounts = HashMap::::new(); + let mut detailed_amounts = HashMap::::new(); let mut total_amount: TokenAmount = 0; - for index in jar_indices { - let index = index.0; - let jar = self.get_jar_internal(index); + for jar in self.account_jars_with_ids(&account_id, &jar_ids) { let interest = jar.get_interest(self.get_product(&jar.product_id), now); - detailed_amounts.insert(U32(index), U128(interest)); + detailed_amounts.insert(U32(jar.id), U128(interest)); total_amount += interest; } @@ -169,12 +168,15 @@ impl JarApi for Contract { } } - fn restake(&mut self, jar_index: JarIndexView) -> JarView { - let jar_index = jar_index.0; - let jar = self.get_jar_internal(jar_index); + fn restake(&mut self, jar_id: JarIdView) -> JarView { + let jar_id = jar_id.0; let account_id = env::predecessor_account_id(); - assert_ownership(&jar, &account_id); + let restaked_jar_id = self.increment_and_get_last_jar_id(); + + let jar = self.get_jar_internal(&account_id, jar_id); + + assert_ownership(jar, &account_id); let product = self.get_product(&jar.product_id); @@ -185,22 +187,30 @@ impl JarApi for Contract { require!(jar.is_liquidable(product, now), "The jar is not mature yet"); require!(!jar.is_empty(), "The jar is empty, nothing to restake"); - let index = self.jars.len() as JarIndex; + let principal = jar.principal; + let new_jar = Jar::create( - index, + restaked_jar_id, jar.account_id.clone(), jar.product_id.clone(), - jar.principal, + principal, now, ); - let withdraw_jar = jar.withdrawn(product, jar.principal, now); - self.save_jar(&account_id, withdraw_jar); - self.save_jar(&account_id, new_jar.clone()); + let (should_be_closed, withdraw_jar) = jar.withdrawn(product, principal, now); + + if should_be_closed { + self.delete_jar(withdraw_jar); + } else { + let jar_id = withdraw_jar.id; + *self.get_jar_mut_internal(&account_id, jar_id) = withdraw_jar; + } + + self.add_new_jar(&account_id, new_jar.clone()); emit(EventKind::Restake(RestakeData { - old_index: jar_index, - new_index: new_jar.index, + old_id: jar_id, + new_id: new_jar.id, })); new_jar.into() diff --git a/contract/src/jar/model.rs b/contract/src/jar/model.rs index b3e99041..7b745a3f 100644 --- a/contract/src/jar/model.rs +++ b/contract/src/jar/model.rs @@ -4,7 +4,7 @@ use ed25519_dalek::{VerifyingKey, PUBLIC_KEY_LENGTH, SIGNATURE_LENGTH}; use near_sdk::{ borsh::{self, BorshDeserialize, BorshSerialize}, env, - env::sha256, + env::{panic_str, sha256}, json_types::{U128, U64}, require, serde::{Deserialize, Serialize}, @@ -16,10 +16,10 @@ use crate::{ event::{emit, EventKind, TopUpData}, jar::view::JarView, product::model::{Apy, Product, ProductId, Terms}, - Base64VecU8, Contract, Signature, + Base64VecU8, Contract, JarsStorage, Signature, }; -pub type JarIndex = u32; +pub type JarId = u32; /// The `JarTicket` struct represents a request to create a deposit jar for a corresponding product. /// @@ -43,11 +43,13 @@ pub struct JarTicket { } /// The `Jar` struct represents a deposit jar within the smart contract. -#[derive(BorshDeserialize, BorshSerialize, Serialize, Deserialize, Clone, Debug)] +#[derive( + BorshDeserialize, BorshSerialize, Serialize, Deserialize, Clone, Debug, Eq, PartialEq, Hash, Ord, PartialOrd, +)] #[serde(crate = "near_sdk::serde", rename_all = "snake_case")] pub struct Jar { - /// The index of the jar in the `Contracts.jars` vector. Also serves as the unique identifier for the jar. - pub index: JarIndex, + /// The unique identifier for the jar. + pub id: JarId, /// The account ID of the owner of the jar. pub account_id: AccountId, @@ -72,9 +74,6 @@ pub struct Jar { /// Indicates whether an operation involving cross-contract calls is in progress for this jar. pub is_pending_withdraw: bool, - /// The state of the jar, indicating whether it is active or closed. - pub state: JarState, - /// Indicates whether a penalty has been applied to the jar's owner due to violating product terms. pub is_penalty_applied: bool, } @@ -82,37 +81,25 @@ pub struct Jar { /// A cached value that stores calculated interest based on the current state of the jar. /// This cache is updated whenever properties that impact interest calculation change, /// allowing for efficient interest calculations between state changes. -#[derive(BorshDeserialize, BorshSerialize, Serialize, Deserialize, Clone, Debug)] +#[derive( + BorshDeserialize, BorshSerialize, Serialize, Deserialize, Clone, Debug, Eq, PartialEq, Hash, Ord, PartialOrd, +)] #[serde(crate = "near_sdk::serde")] pub struct JarCache { pub updated_at: Timestamp, pub interest: TokenAmount, } -/// The state of a jar, indicating whether it is active or closed. -#[derive(BorshDeserialize, BorshSerialize, Serialize, Deserialize, Clone, Eq, PartialEq, Debug)] -#[serde(crate = "near_sdk::serde", rename_all = "snake_case")] -pub enum JarState { - Active, - Closed, -} - -impl JarState { - pub(crate) fn is_active(&self) -> bool { - matches!(self, JarState::Active) - } -} - impl Jar { pub(crate) fn create( - index: JarIndex, + id: JarId, account_id: AccountId, product_id: ProductId, principal: TokenAmount, created_at: Timestamp, ) -> Self { Self { - index, + id, account_id, product_id, principal, @@ -120,7 +107,6 @@ impl Jar { cache: None, claimed_balance: 0, is_pending_withdraw: false, - state: JarState::Active, is_penalty_applied: false, } } @@ -132,6 +118,10 @@ impl Jar { } } + pub(crate) fn lock(&mut self) { + self.is_pending_withdraw = true; + } + pub(crate) fn unlocked(&self) -> Self { Self { is_pending_withdraw: false, @@ -143,49 +133,49 @@ impl Jar { self.is_pending_withdraw = false; } - pub(crate) fn with_penalty_applied(&self, is_applied: bool) -> Self { - Self { - is_penalty_applied: is_applied, - ..self.clone() - } + pub(crate) fn apply_penalty(&mut self, is_applied: bool) { + self.is_penalty_applied = is_applied; } - pub(crate) fn topped_up(&self, amount: TokenAmount, product: &Product, now: Timestamp) -> Self { + pub(crate) fn top_up(&mut self, amount: TokenAmount, product: &Product, now: Timestamp) -> &mut Self { let current_interest = self.get_interest(product, now); - Self { - principal: self.principal + amount, - cache: Some(JarCache { - updated_at: now, - interest: current_interest, - }), - ..self.clone() - } + + self.principal += amount; + self.cache = Some(JarCache { + updated_at: now, + interest: current_interest, + }); + self } - pub(crate) fn claimed(&self, available_yield: TokenAmount, claimed_amount: TokenAmount, now: Timestamp) -> Self { - Self { - claimed_balance: self.claimed_balance + claimed_amount, - cache: Some(JarCache { - updated_at: now, - interest: available_yield - claimed_amount, - }), - ..self.clone() - } + pub(crate) fn claim( + &mut self, + available_yield: TokenAmount, + claimed_amount: TokenAmount, + now: Timestamp, + ) -> &mut Self { + self.claimed_balance += claimed_amount; + self.cache = Some(JarCache { + updated_at: now, + interest: available_yield - claimed_amount, + }); + self } - pub(crate) fn withdrawn(&self, product: &Product, withdrawn_amount: TokenAmount, now: Timestamp) -> Self { + pub(crate) fn withdrawn(&self, product: &Product, withdrawn_amount: TokenAmount, now: Timestamp) -> (bool, Self) { let current_interest = self.get_interest(product, now); - let state = get_final_state(product, self, withdrawn_amount); - Self { - principal: self.principal - withdrawn_amount, - cache: Some(JarCache { - updated_at: now, - interest: current_interest, - }), - state, - ..self.clone() - } + ( + should_be_closed(product, self, withdrawn_amount) && current_interest == 0, + Self { + principal: self.principal - withdrawn_amount, + cache: Some(JarCache { + updated_at: now, + interest: current_interest, + }), + ..self.clone() + }, + ) } /// Indicates whether a user can withdraw tokens from the jar at the moment or not. @@ -245,12 +235,8 @@ impl Jar { } } -fn get_final_state(product: &Product, original_jar: &Jar, withdrawn_amount: TokenAmount) -> JarState { - if product.is_flexible() || original_jar.principal - withdrawn_amount > 0 { - JarState::Active - } else { - JarState::Closed - } +fn should_be_closed(product: &Product, original_jar: &Jar, withdrawn_amount: TokenAmount) -> bool { + !(product.is_flexible() || original_jar.principal - withdrawn_amount > 0) } impl Contract { @@ -269,76 +255,106 @@ impl Contract { product.assert_cap(amount); self.verify(&account_id, amount, &ticket, signature); - let index = self.jars.len() as JarIndex; + let id = self.increment_and_get_last_jar_id(); let now = env::block_timestamp_ms(); - let jar = Jar::create(index, account_id.clone(), product_id.clone(), amount, now); + let jar = Jar::create(id, account_id.clone(), product_id.clone(), amount, now); - self.save_jar(&account_id, jar.clone()); + self.add_new_jar(&account_id, jar.clone()); emit(EventKind::CreateJar(jar.clone())); jar.into() } - pub(crate) fn top_up(&mut self, jar_index: JarIndex, amount: U128) -> U128 { - let jar = self.get_jar_internal(jar_index); - - require!(jar.state.is_active(), "Closed jar doesn't allow top-ups"); - - let product = self.get_product(&jar.product_id); + pub(crate) fn top_up(&mut self, account: &AccountId, jar_id: JarId, amount: U128) -> U128 { + let jar = self.get_jar_internal(account, jar_id); + let product = self.get_product(&jar.product_id).clone(); require!(product.allows_top_up(), "The product doesn't allow top-ups"); product.assert_cap(jar.principal + amount.0); let now = env::block_timestamp_ms(); - let topped_up_jar = jar.topped_up(amount.0, product, now); - self.jars.replace(jar_index, topped_up_jar.clone()); + let principal = self + .get_jar_mut_internal(account, jar_id) + .top_up(amount.0, &product, now) + .principal; - emit(EventKind::TopUp(TopUpData { - index: jar_index, - amount, - })); + emit(EventKind::TopUp(TopUpData { id: jar_id, amount })); - U128(topped_up_jar.principal) + U128(principal) } - pub(crate) fn get_jar_mut_internal(&mut self, index: JarIndex) -> &mut Jar { - self.jars - .get_mut(index) - .unwrap_or_else(|| env::panic_str(&format!("Jar on index {index} doesn't exist"))) + pub(crate) fn delete_jar(&mut self, jar: Jar) { + let account = &jar.account_id; + + let jars = self + .account_jars + .get_mut(account) + .unwrap_or_else(|| env::panic_str(&format!("Account '{account}' doesn't exist"))); + + require!(!jars.is_empty(), "Trying to delete jar from empty account"); + + if jars.len() == 1 { + jars.clear(); + return; + } + + // On jar deletion, we move the last jar in the vector in the deleted jar's place. + // This way we don't need to shift all jars to fill empty space in the vector. + + let jar_position = jars + .iter() + .position(|j| j.id == jar.id) + .unwrap_or_else(|| env::panic_str(&format!("Jar with id {} doesn't exist", jar.id))); + + let last_jar = jars.pop().unwrap(); + + if jar_position != jars.len() { + jars[jar_position] = last_jar; + } } - pub(crate) fn get_jar_internal(&self, index: JarIndex) -> Jar { - self.jars.get(index).map_or_else( - || env::panic_str(&format!("Jar on index {index} doesn't exist")), - Clone::clone, - ) + pub(crate) fn get_jar_mut_internal(&mut self, account: &AccountId, id: JarId) -> &mut Jar { + self.account_jars + .get_mut(account) + .unwrap_or_else(|| env::panic_str(&format!("Account '{account}' doesn't exist"))) + .get_jar_mut(id) + } + + pub(crate) fn get_jar_internal(&self, account: &AccountId, id: JarId) -> &Jar { + self.account_jars + .get(account) + .unwrap_or_else(|| env::panic_str(&format!("Account '{account}' doesn't exist"))) + .get_jar(id) } pub(crate) fn verify( - &self, + &mut self, account_id: &AccountId, amount: TokenAmount, ticket: &JarTicket, signature: Option, ) { + let last_jar_id = self.account_jars.entry(account_id.clone()).or_default().last_id; let product = self.get_product(&ticket.product_id); + if let Some(pk) = &product.public_key { - let signature = signature.expect("Signature is required"); - let last_jar_index = self - .account_jars - .get(account_id) - .map(|jars| *jars.iter().max().unwrap_or_else(|| env::panic_str("Jar is empty."))); + let Some(signature) = signature else { + panic_str("Signature is required"); + }; - let hash = Self::get_ticket_hash(account_id, amount, ticket, last_jar_index); - let is_signature_valid = Self::verify_signature(&signature.0, pk, &hash); + let is_time_valid = env::block_timestamp_ms() <= ticket.valid_until.0; + require!(is_time_valid, "Ticket is outdated"); - require!(is_signature_valid, "Not matching signature"); + // If this is the first jar for this user ever, oracle will send empty string as nonce. + // Which is equivalent to `None` value here. + let last_jar_id = if last_jar_id == 0 { None } else { Some(last_jar_id) }; - let is_time_valid = env::block_timestamp_ms() <= ticket.valid_until.0; + let hash = Self::get_ticket_hash(account_id, amount, ticket, last_jar_id); + let is_signature_valid = Self::verify_signature(&signature.0, pk, &hash); - require!(is_time_valid, "Ticket is outdated"); + require!(is_signature_valid, "Not matching signature"); } } @@ -346,7 +362,7 @@ impl Contract { account_id: &AccountId, amount: TokenAmount, ticket: &JarTicket, - last_jar_index: Option, + last_jar_id: Option, ) -> Vec { sha256( Self::get_signature_material( @@ -355,7 +371,7 @@ impl Contract { &ticket.product_id, amount, ticket.valid_until.0, - last_jar_index, + last_jar_id, ) .as_bytes(), ) @@ -367,7 +383,7 @@ impl Contract { product_id: &ProductId, amount: TokenAmount, valid_until: Timestamp, - last_jar_index: Option, + last_jar_id: Option, ) -> String { format!( "{},{},{},{},{},{}", @@ -375,7 +391,7 @@ impl Contract { receiver_account_id, product_id, amount, - last_jar_index.map_or_else(String::new, |value| value.to_string(),), + last_jar_id.map_or_else(String::new, |value| value.to_string(),), valid_until, ) } diff --git a/contract/src/jar/tests.rs b/contract/src/jar/tests.rs index 92596e4b..774292bf 100644 --- a/contract/src/jar/tests.rs +++ b/contract/src/jar/tests.rs @@ -73,7 +73,7 @@ mod signature_tests { let signer = MessageSigner::new(); let reference_product = generate_premium_product("premium_product", &signer); - let context = Context::new(admin.clone()).with_products(&[reference_product.clone()]); + let mut context = Context::new(admin.clone()).with_products(&[reference_product.clone()]); let amount = 14_000_000; let ticket = JarTicket { @@ -96,7 +96,7 @@ mod signature_tests { let signer = MessageSigner::new(); let reference_product = generate_premium_product("premium_product", &signer); - let context = Context::new(admin).with_products(&[reference_product.clone()]); + let mut context = Context::new(admin).with_products(&[reference_product.clone()]); let amount = 1_000_000; let ticket = JarTicket { @@ -120,7 +120,7 @@ mod signature_tests { let product = generate_premium_product("premium_product", &signer); let another_product = generate_premium_product("another_premium_product", &MessageSigner::new()); - let context = Context::new(admin.clone()).with_products(&[product, another_product.clone()]); + let mut context = Context::new(admin.clone()).with_products(&[product, another_product.clone()]); let amount = 15_000_000; let ticket_for_another_product = JarTicket { @@ -169,7 +169,7 @@ mod signature_tests { } #[test] - #[should_panic(expected = "Product not_existing_product doesn't exist")] + #[should_panic(expected = "Product 'not_existing_product' doesn't exist")] fn verify_ticket_with_not_existing_product() { let admin = accounts(0); @@ -200,7 +200,7 @@ mod signature_tests { let signer = MessageSigner::new(); let product = generate_premium_product("not_existing_product", &signer); - let context = Context::new(admin.clone()).with_products(&[product.clone()]); + let mut context = Context::new(admin.clone()).with_products(&[product.clone()]); let amount = 3_000_000; let ticket = JarTicket { @@ -216,7 +216,7 @@ mod signature_tests { let admin = accounts(0); let product = generate_product("regular_product"); - let context = Context::new(admin.clone()).with_products(&[product.clone()]); + let mut context = Context::new(admin.clone()).with_products(&[product.clone()]); let amount = 4_000_000_000; let ticket = JarTicket { @@ -228,7 +228,7 @@ mod signature_tests { } #[test] - #[should_panic(expected = "Account doesn't own this jar")] + #[should_panic(expected = "Account 'bob' doesn't exist")] fn restake_by_not_owner() { let alice = accounts(0); let admin = accounts(1); @@ -240,7 +240,7 @@ mod signature_tests { .with_jars(&[alice_jar.clone()]); context.switch_account(&admin); - context.contract.restake(U32(alice_jar.index)); + context.contract.restake(U32(alice_jar.id)); } #[test] @@ -254,7 +254,7 @@ mod signature_tests { let mut context = Context::new(admin).with_products(&[product]).with_jars(&[jar.clone()]); context.switch_account(&alice); - context.contract.restake(U32(jar.index)); + context.contract.restake(U32(jar.id)); } #[test] @@ -268,7 +268,7 @@ mod signature_tests { let mut context = Context::new(admin).with_products(&[product]).with_jars(&[jar.clone()]); context.switch_account(&alice); - context.contract.restake(U32(jar.index)); + context.contract.restake(U32(jar.id)); } #[test] @@ -289,7 +289,7 @@ mod signature_tests { context.set_block_timestamp_in_days(366); context.switch_account(&alice); - context.contract.restake(U32(jar.index)); + context.contract.restake(U32(jar.id)); } #[test] @@ -307,7 +307,7 @@ mod signature_tests { context.set_block_timestamp_in_days(366); context.switch_account(&alice); - context.contract.restake(U32(jar.index)); + context.contract.restake(U32(jar.id)); } #[test] @@ -324,14 +324,15 @@ mod signature_tests { context.set_block_timestamp_in_days(366); context.switch_account(&alice); - context.contract.restake(U32(jar.index)); + context.contract.restake(U32(jar.id)); let alice_jars = context.contract.get_jars_for_account(alice); + assert_eq!(2, alice_jars.len()); - assert_eq!(0, alice_jars.iter().find(|item| item.index.0 == 0).unwrap().principal.0); + assert_eq!(0, alice_jars.iter().find(|item| item.id.0 == 0).unwrap().principal.0); assert_eq!( 1_000_000, - alice_jars.iter().find(|item| item.index.0 == 1).unwrap().principal.0 + alice_jars.iter().find(|item| item.id.0 == 1).unwrap().principal.0 ); } @@ -350,7 +351,7 @@ mod signature_tests { context.set_block_timestamp_in_days(366); context.switch_account(&alice); - context.contract.restake(U32(jar.index)); + context.contract.restake(U32(jar.id)); } #[test] @@ -391,16 +392,12 @@ mod signature_tests { mod helpers { use near_sdk::AccountId; - use crate::{ - common::TokenAmount, - jar::model::{Jar, JarState}, - product::model::ProductId, - }; + use crate::{common::TokenAmount, jar::model::Jar, product::model::ProductId}; impl Jar { - pub(crate) fn generate(index: u32, account_id: &AccountId, product_id: &ProductId) -> Jar { + pub(crate) fn generate(id: u32, account_id: &AccountId, product_id: &ProductId) -> Jar { Self { - index, + id, account_id: account_id.clone(), product_id: product_id.clone(), created_at: 0, @@ -408,7 +405,6 @@ mod helpers { cache: None, claimed_balance: 0, is_pending_withdraw: false, - state: JarState::Active, is_penalty_applied: false, } } diff --git a/contract/src/jar/view.rs b/contract/src/jar/view.rs index d8903e72..68041e0a 100644 --- a/contract/src/jar/view.rs +++ b/contract/src/jar/view.rs @@ -12,12 +12,12 @@ use crate::{ Jar, }; -pub type JarIndexView = U32; +pub type JarIdView = U32; #[derive(Serialize, Deserialize, Debug, PartialEq)] #[serde(crate = "near_sdk::serde")] pub struct JarView { - pub index: JarIndexView, + pub id: JarIdView, pub account_id: AccountId, pub product_id: ProductId, pub created_at: U64, @@ -29,7 +29,7 @@ pub struct JarView { impl From for JarView { fn from(value: Jar) -> Self { Self { - index: U32(value.index), + id: U32(value.id), account_id: value.account_id, product_id: value.product_id, created_at: U64(value.created_at), @@ -40,10 +40,24 @@ impl From for JarView { } } +impl From<&Jar> for JarView { + fn from(value: &Jar) -> Self { + Self { + id: U32(value.id), + account_id: value.account_id.clone(), + product_id: value.product_id.clone(), + created_at: U64(value.created_at), + principal: U128(value.principal), + claimed_balance: U128(value.claimed_balance), + is_penalty_applied: value.is_penalty_applied, + } + } +} + #[derive(Serialize, Deserialize, Debug, PartialEq)] #[serde(crate = "near_sdk::serde")] pub struct AggregatedTokenAmountView { - pub detailed: HashMap, + pub detailed: HashMap, pub total: U128, } diff --git a/contract/src/lib.rs b/contract/src/lib.rs index 576e5557..816341c6 100644 --- a/contract/src/lib.rs +++ b/contract/src/lib.rs @@ -1,19 +1,21 @@ +use std::ops::{Deref, DerefMut}; + use ed25519_dalek::Signature; use near_sdk::{ assert_one_yocto, - borsh::{self, maybestd::collections::HashSet, BorshDeserialize, BorshSerialize}, + borsh::{self, BorshDeserialize, BorshSerialize}, env, json_types::Base64VecU8, near_bindgen, - store::{LookupMap, UnorderedMap, Vector}, + store::{LookupMap, UnorderedMap}, AccountId, BorshStorageKey, Gas, PanicOnDefault, Promise, }; use near_self_update::SelfUpdate; use product::model::{Apy, Product, ProductId}; use crate::{ - assert::{assert_is_not_closed, assert_ownership}, - jar::model::{Jar, JarIndex, JarState}, + assert::assert_ownership, + jar::model::{Jar, JarId}, }; mod assert; @@ -27,6 +29,7 @@ mod jar; mod migration; mod penalty; mod product; +mod tests; mod withdraw; // TODO: document all the numbers @@ -51,17 +54,37 @@ pub struct Contract { /// A collection of products, each representing terms for specific deposit jars. pub products: UnorderedMap, - /// A vector containing information about all deposit jars. - pub jars: Vector, + /// The last jar ID. Is used as nonce in `get_ticket_hash` method. + pub last_jar_id: JarId, + + /// A lookup map that associates account IDs with sets of jars owned by each account. + pub account_jars: LookupMap, +} + +#[derive(Default, BorshDeserialize, BorshSerialize)] +pub struct AccountJars { + /// The last jar ID. Is used as nonce in `get_ticket_hash` method. + pub last_id: JarId, + pub jars: Vec, +} + +impl Deref for AccountJars { + type Target = Vec; - /// A lookup map that associates account IDs with sets of jar indexes owned by each account. - pub account_jars: LookupMap>, + fn deref(&self) -> &Self::Target { + &self.jars + } +} + +impl DerefMut for AccountJars { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.jars + } } #[derive(BorshStorageKey, BorshSerialize)] pub(crate) enum StorageKey { Products, - Jars, AccountJars, } @@ -76,298 +99,27 @@ impl Contract { fee_account_id, manager, products: UnorderedMap::new(StorageKey::Products), - jars: Vector::new(StorageKey::Jars), account_jars: LookupMap::new(StorageKey::AccountJars), + last_jar_id: 0, } } } -#[cfg(test)] -mod tests { - use std::collections::HashMap; - - use common::tests::Context; - use near_sdk::{json_types::U128, test_utils::accounts}; - - use super::*; - use crate::{ - claim::api::ClaimApi, - common::{u32::U32, udecimal::UDecimal, MS_IN_YEAR}, - jar::{ - api::JarApi, - view::{AggregatedTokenAmountView, JarView}, - }, - penalty::api::PenaltyApi, - product::{api::*, helpers::MessageSigner, model::DowngradableApy, tests::get_register_product_command}, - withdraw::api::WithdrawApi, - }; - - #[test] - fn add_product_to_list_by_admin() { - let admin = accounts(0); - let mut context = Context::new(admin.clone()); - - context.switch_account(&admin); - context.with_deposit_yocto(1, |context| { - context.contract.register_product(get_register_product_command()) - }); - - let products = context.contract.get_products(); - assert_eq!(products.len(), 1); - assert_eq!(products.first().unwrap().id, "product".to_string()); - } - - #[test] - #[should_panic(expected = "Can be performed only by admin")] - fn add_product_to_list_by_not_admin() { - let admin = accounts(0); - let mut context = Context::new(admin); - - context.with_deposit_yocto(1, |context| { - context.contract.register_product(get_register_product_command()) - }); - } - - #[test] - fn get_principle_with_no_jars() { - let alice = accounts(0); - let admin = accounts(1); - let context = Context::new(admin); - - let principal = context.contract.get_total_principal(alice); - assert_eq!(principal.total.0, 0); - } - - #[test] - fn get_principal_with_single_jar() { - let alice = accounts(0); - let admin = accounts(1); - - let reference_product = generate_product(); - let reference_jar = Jar::generate(0, &alice, &reference_product.id).principal(100); - let context = Context::new(admin) - .with_products(&[reference_product]) - .with_jars(&[reference_jar]); - - let principal = context.contract.get_total_principal(alice).total.0; - assert_eq!(principal, 100); - } - - #[test] - fn get_principal_with_multiple_jars() { - let alice = accounts(0); - let admin = accounts(1); - - let reference_product = generate_product(); - let jars = &[ - Jar::generate(0, &alice, &reference_product.id).principal(100), - Jar::generate(1, &alice, &reference_product.id).principal(200), - Jar::generate(2, &alice, &reference_product.id).principal(400), - ]; - - let context = Context::new(admin).with_products(&[reference_product]).with_jars(jars); - - let principal = context.contract.get_total_principal(alice).total.0; - assert_eq!(principal, 700); - } - - #[test] - fn get_total_interest_with_no_jars() { - let alice = accounts(0); - let admin = accounts(1); - - let context = Context::new(admin); - - let interest = context.contract.get_total_interest(alice); - - assert_eq!(interest.amount.total.0, 0); - assert_eq!(interest.amount.detailed, HashMap::new()); - } - - #[test] - fn get_total_interest_with_single_jar_after_30_minutes() { - let alice = accounts(0); - let admin = accounts(1); - - let reference_product = generate_product(); - - let jar_index = 0; - let jar = Jar::generate(jar_index, &alice, &reference_product.id).principal(100_000_000); - let mut context = Context::new(admin) - .with_products(&[reference_product]) - .with_jars(&[jar.clone()]); - - let contract_jar = JarView::from(context.contract.jars.get(jar_index).unwrap().clone()); - assert_eq!(JarView::from(jar), contract_jar); - - context.set_block_timestamp_in_minutes(30); - - let interest = context.contract.get_total_interest(alice); - - assert_eq!(interest.amount.total.0, 684); - assert_eq!(interest.amount.detailed, HashMap::from([(U32(0), U128(684))])) - } - - #[test] - fn get_total_interest_with_single_jar_on_maturity() { - let alice = accounts(0); - let admin = accounts(1); - - let reference_product = generate_product(); - - let jar_index = 0; - let jar = Jar::generate(jar_index, &alice, &reference_product.id).principal(100_000_000); - let mut context = Context::new(admin) - .with_products(&[reference_product]) - .with_jars(&[jar.clone()]); - - let contract_jar = JarView::from(context.contract.jars.get(jar_index).unwrap().clone()); - assert_eq!(JarView::from(jar), contract_jar); - - context.set_block_timestamp_in_days(365); - - let interest = context.contract.get_total_interest(alice); - - assert_eq!( - interest.amount, - AggregatedTokenAmountView { - detailed: [(U32(0), U128(12_000_000))].into(), - total: U128(12_000_000) - } - ) - } - - #[test] - fn get_total_interest_with_single_jar_after_maturity() { - let alice = accounts(0); - let admin = accounts(1); - - let reference_product = generate_product(); - - let jar_index = 0; - let jar = Jar::generate(jar_index, &alice, &reference_product.id).principal(100_000_000); - let mut context = Context::new(admin) - .with_products(&[reference_product]) - .with_jars(&[jar.clone()]); - - let contract_jar = JarView::from(context.contract.jars.get(jar_index).unwrap().clone()); - assert_eq!(JarView::from(jar), contract_jar); - - context.set_block_timestamp_in_days(400); - - let interest = context.contract.get_total_interest(alice).amount.total.0; - assert_eq!(interest, 12_000_000); - } - - #[test] - fn get_total_interest_with_single_jar_after_claim_on_half_term_and_maturity() { - let alice = accounts(0); - let admin = accounts(1); - - let reference_product = generate_product(); - - let jar_index = 0; - let jar = Jar::generate(jar_index, &alice, &reference_product.id).principal(100_000_000); - let mut context = Context::new(admin) - .with_products(&[reference_product]) - .with_jars(&[jar.clone()]); - - let contract_jar = JarView::from(context.contract.jars.get(jar_index).unwrap().clone()); - assert_eq!(JarView::from(jar), contract_jar); - - context.set_block_timestamp_in_days(182); - - let mut interest = context.contract.get_total_interest(alice.clone()).amount.total.0; - assert_eq!(interest, 5_983_561); - - context.switch_account(&alice); - context.contract.claim_total(); - - context.set_block_timestamp_in_days(365); - - interest = context.contract.get_total_interest(alice.clone()).amount.total.0; - assert_eq!(interest, 6_016_438); - } - - #[test] - #[should_panic(expected = "Penalty is not applicable for constant APY")] - fn penalty_is_not_applicable_for_constant_apy() { - let alice = accounts(0); - let admin = accounts(1); - - let signer = MessageSigner::new(); - let reference_product = Product::generate("premium_product") - .enabled(true) - .apy(Apy::Constant(UDecimal::new(20, 2))) - .public_key(signer.public_key()); - let reference_jar = Jar::generate(0, &alice, &reference_product.id).principal(100_000_000); - - let mut context = Context::new(admin.clone()) - .with_products(&[reference_product]) - .with_jars(&[reference_jar]); - - context.switch_account(&admin); - context.contract.set_penalty(0, true); - } - - #[test] - fn get_total_interest_for_premium_with_penalty_after_half_term() { - let alice = accounts(0); - let admin = accounts(1); - - let signer = MessageSigner::new(); - let reference_product = Product::generate("premium_product") - .enabled(true) - .apy(Apy::Downgradable(DowngradableApy { - default: UDecimal::new(20, 2), - fallback: UDecimal::new(10, 2), - })) - .public_key(signer.public_key()); - let reference_jar = Jar::generate(0, &alice, &reference_product.id).principal(100_000_000); - - let mut context = Context::new(admin.clone()) - .with_products(&[reference_product]) - .with_jars(&[reference_jar]); - - context.set_block_timestamp_in_days(182); - - let mut interest = context.contract.get_total_interest(alice.clone()).amount.total.0; - assert_eq!(interest, 9_972_602); - - context.switch_account(&admin); - context.contract.set_penalty(0, true); - - context.set_block_timestamp_in_days(365); - - interest = context.contract.get_total_interest(alice).amount.total.0; - assert_eq!(interest, 10_000_000); - } - - #[test] - fn get_interest_after_withdraw() { - let alice = accounts(0); - let admin = accounts(1); - - let reference_product = generate_product(); - let reference_jar = &Jar::generate(0, &alice, &reference_product.id).principal(100_000_000); - - let mut context = Context::new(admin) - .with_products(&[reference_product]) - .with_jars(&[reference_jar.clone()]); - - context.set_block_timestamp_in_days(400); - - context.switch_account(&alice); - context.contract.withdraw(U32(reference_jar.index), None); +pub(crate) trait JarsStorage { + fn get_jar(&self, id: JarId) -> &Jar; + fn get_jar_mut(&mut self, id: JarId) -> &mut Jar; +} - let interest = context.contract.get_total_interest(alice.clone()); - assert_eq!(12_000_000, interest.amount.total.0); +impl JarsStorage for Vec { + fn get_jar(&self, id: JarId) -> &Jar { + self.iter() + .find(|jar| jar.id == id) + .unwrap_or_else(|| env::panic_str(&format!("Jar with id: {id} doesn't exist"))) } - fn generate_product() -> Product { - Product::generate("product") - .enabled(true) - .lockup_term(MS_IN_YEAR) - .apy(Apy::Constant(UDecimal::new(12, 2))) + fn get_jar_mut(&mut self, id: JarId) -> &mut Jar { + self.iter_mut() + .find(|jar| jar.id == id) + .unwrap_or_else(|| env::panic_str(&format!("Jar with id: {id} doesn't exist"))) } } diff --git a/contract/src/migration/api.rs b/contract/src/migration/api.rs index 8665c64e..79be4ac6 100644 --- a/contract/src/migration/api.rs +++ b/contract/src/migration/api.rs @@ -5,7 +5,7 @@ use crate::{ event::{emit, EventKind, MigrationEventItem}, migration::model::CeFiJar, product::model::ProductId, - Contract, Jar, JarState, + Contract, Jar, }; impl Contract { @@ -51,10 +51,12 @@ impl Contract { format!("Product {} is not registered", ce_fi_jar.product_id), ); - let index = self.jars.len(); + let id = self.increment_and_get_last_jar_id(); + + let account_jars = self.account_jars.entry(ce_fi_jar.account_id.clone()).or_default(); let jar = Jar { - index, + id, account_id: ce_fi_jar.account_id, product_id: ce_fi_jar.product_id, created_at: ce_fi_jar.created_at.0, @@ -62,22 +64,16 @@ impl Contract { cache: None, claimed_balance: 0, is_pending_withdraw: false, - state: JarState::Active, is_penalty_applied: false, }; - self.jars.push(jar.clone()); - - self.account_jars - .entry(jar.account_id.clone()) - .or_default() - .insert(jar.index); + account_jars.push(jar.clone()); total_amount += jar.principal; event_data.push(MigrationEventItem { original_id: ce_fi_jar.id, - index: jar.index, + id: jar.id, account_id: jar.account_id, }); } diff --git a/contract/src/penalty/api.rs b/contract/src/penalty/api.rs index c87b64e0..9d64ece4 100644 --- a/contract/src/penalty/api.rs +++ b/contract/src/penalty/api.rs @@ -1,8 +1,8 @@ -use near_sdk::{env, near_bindgen}; +use near_sdk::{env, near_bindgen, AccountId}; use crate::{ event::{emit, EventKind::ApplyPenalty, PenaltyData}, - jar::model::JarIndex, + jar::model::JarId, product::model::Apy, Contract, ContractExt, }; @@ -17,33 +17,30 @@ pub trait PenaltyApi { /// /// # Arguments /// - /// * `jar_index` - The index of the jar for which the penalty status is being modified. + /// * `jar_id` - The ID of the jar for which the penalty status is being modified. /// * `value` - A boolean value indicating whether the penalty should be applied (`true`) or canceled (`false`). /// /// # Panics /// /// This method will panic if the jar's associated product has a constant APY rather than a downgradable APY. - fn set_penalty(&mut self, jar_index: JarIndex, value: bool); + fn set_penalty(&mut self, account_id: AccountId, jar_id: JarId, value: bool); } #[near_bindgen] impl PenaltyApi for Contract { - fn set_penalty(&mut self, jar_index: JarIndex, value: bool) { + fn set_penalty(&mut self, account_id: AccountId, jar_id: JarId, value: bool) { self.assert_manager(); - let jar = self.get_jar_internal(jar_index); + let jar = self.get_jar_internal(&account_id, jar_id); let product = self.get_product(&jar.product_id); match product.apy { - Apy::Downgradable(_) => { - let updated_jar = jar.with_penalty_applied(value); - self.jars.replace(jar.index, updated_jar); - } + Apy::Downgradable(_) => self.get_jar_mut_internal(&account_id, jar_id).apply_penalty(value), Apy::Constant(_) => env::panic_str("Penalty is not applicable for constant APY"), }; emit(ApplyPenalty(PenaltyData { - index: jar_index, + id: jar_id, is_applied: value, })); } diff --git a/contract/src/tests.rs b/contract/src/tests.rs new file mode 100644 index 00000000..f2ddda4c --- /dev/null +++ b/contract/src/tests.rs @@ -0,0 +1,286 @@ +#![cfg(test)] + +use std::collections::HashMap; + +use common::tests::Context; +use near_sdk::{json_types::U128, test_utils::accounts}; + +use super::*; +use crate::{ + claim::api::ClaimApi, + common::{u32::U32, udecimal::UDecimal, MS_IN_YEAR}, + jar::{ + api::JarApi, + view::{AggregatedTokenAmountView, JarView}, + }, + penalty::api::PenaltyApi, + product::{api::*, helpers::MessageSigner, model::DowngradableApy, tests::get_register_product_command}, + withdraw::api::WithdrawApi, +}; + +#[test] +fn add_product_to_list_by_admin() { + let admin = accounts(0); + let mut context = Context::new(admin.clone()); + + context.switch_account(&admin); + context.with_deposit_yocto(1, |context| { + context.contract.register_product(get_register_product_command()) + }); + + let products = context.contract.get_products(); + assert_eq!(products.len(), 1); + assert_eq!(products.first().unwrap().id, "product".to_string()); +} + +#[test] +#[should_panic(expected = "Can be performed only by admin")] +fn add_product_to_list_by_not_admin() { + let admin = accounts(0); + let mut context = Context::new(admin); + + context.with_deposit_yocto(1, |context| { + context.contract.register_product(get_register_product_command()) + }); +} + +#[test] +fn get_principle_with_no_jars() { + let alice = accounts(0); + let admin = accounts(1); + let context = Context::new(admin); + + let principal = context.contract.get_total_principal(alice); + assert_eq!(principal.total.0, 0); +} + +#[test] +fn get_principal_with_single_jar() { + let alice = accounts(0); + let admin = accounts(1); + + let reference_product = generate_product(); + let reference_jar = Jar::generate(0, &alice, &reference_product.id).principal(100); + let context = Context::new(admin) + .with_products(&[reference_product]) + .with_jars(&[reference_jar]); + + let principal = context.contract.get_total_principal(alice).total.0; + assert_eq!(principal, 100); +} + +#[test] +fn get_principal_with_multiple_jars() { + let alice = accounts(0); + let admin = accounts(1); + + let reference_product = generate_product(); + let jars = &[ + Jar::generate(0, &alice, &reference_product.id).principal(100), + Jar::generate(1, &alice, &reference_product.id).principal(200), + Jar::generate(2, &alice, &reference_product.id).principal(400), + ]; + + let context = Context::new(admin).with_products(&[reference_product]).with_jars(jars); + + let principal = context.contract.get_total_principal(alice).total.0; + assert_eq!(principal, 700); +} + +#[test] +fn get_total_interest_with_no_jars() { + let alice = accounts(0); + let admin = accounts(1); + + let context = Context::new(admin); + + let interest = context.contract.get_total_interest(alice); + + assert_eq!(interest.amount.total.0, 0); + assert_eq!(interest.amount.detailed, HashMap::new()); +} + +#[test] +fn get_total_interest_with_single_jar_after_30_minutes() { + let alice = accounts(0); + let admin = accounts(1); + + let reference_product = generate_product(); + + let jar_id = 0; + let jar = Jar::generate(jar_id, &alice, &reference_product.id).principal(100_000_000); + let mut context = Context::new(admin) + .with_products(&[reference_product]) + .with_jars(&[jar.clone()]); + + let contract_jar = JarView::from(context.contract.account_jars.get(&alice).unwrap().get_jar(jar_id)); + assert_eq!(JarView::from(jar), contract_jar); + + context.set_block_timestamp_in_minutes(30); + + let interest = context.contract.get_total_interest(alice); + + assert_eq!(interest.amount.total.0, 684); + assert_eq!(interest.amount.detailed, HashMap::from([(U32(0), U128(684))])) +} + +#[test] +fn get_total_interest_with_single_jar_on_maturity() { + let alice = accounts(0); + let admin = accounts(1); + + let reference_product = generate_product(); + + let jar_id = 0; + let jar = Jar::generate(jar_id, &alice, &reference_product.id).principal(100_000_000); + let mut context = Context::new(admin) + .with_products(&[reference_product]) + .with_jars(&[jar.clone()]); + + let contract_jar = JarView::from(context.contract.account_jars.get(&alice).unwrap().get_jar(jar_id)); + assert_eq!(JarView::from(jar), contract_jar); + + context.set_block_timestamp_in_days(365); + + let interest = context.contract.get_total_interest(alice); + + assert_eq!( + interest.amount, + AggregatedTokenAmountView { + detailed: [(U32(0), U128(12_000_000))].into(), + total: U128(12_000_000) + } + ) +} + +#[test] +fn get_total_interest_with_single_jar_after_maturity() { + let alice = accounts(0); + let admin = accounts(1); + + let reference_product = generate_product(); + + let jar_id = 0; + let jar = Jar::generate(jar_id, &alice, &reference_product.id).principal(100_000_000); + let mut context = Context::new(admin) + .with_products(&[reference_product]) + .with_jars(&[jar.clone()]); + + let contract_jar = JarView::from(context.contract.account_jars.get(&alice).unwrap().get_jar(jar_id)); + assert_eq!(JarView::from(jar), contract_jar); + + context.set_block_timestamp_in_days(400); + + let interest = context.contract.get_total_interest(alice).amount.total.0; + assert_eq!(interest, 12_000_000); +} + +#[test] +fn get_total_interest_with_single_jar_after_claim_on_half_term_and_maturity() { + let alice = accounts(0); + let admin = accounts(1); + + let reference_product = generate_product(); + + let jar_id = 0; + let jar = Jar::generate(jar_id, &alice, &reference_product.id).principal(100_000_000); + let mut context = Context::new(admin) + .with_products(&[reference_product]) + .with_jars(&[jar.clone()]); + + let contract_jar = JarView::from(context.contract.account_jars.get(&alice).unwrap().get_jar(jar_id)); + assert_eq!(JarView::from(jar), contract_jar); + + context.set_block_timestamp_in_days(182); + + let mut interest = context.contract.get_total_interest(alice.clone()).amount.total.0; + assert_eq!(interest, 5_983_561); + + context.switch_account(&alice); + context.contract.claim_total(); + + context.set_block_timestamp_in_days(365); + + interest = context.contract.get_total_interest(alice.clone()).amount.total.0; + assert_eq!(interest, 6_016_438); +} + +#[test] +#[should_panic(expected = "Penalty is not applicable for constant APY")] +fn penalty_is_not_applicable_for_constant_apy() { + let alice = accounts(0); + let admin = accounts(1); + + let signer = MessageSigner::new(); + let reference_product = Product::generate("premium_product") + .enabled(true) + .apy(Apy::Constant(UDecimal::new(20, 2))) + .public_key(signer.public_key()); + let reference_jar = Jar::generate(0, &alice, &reference_product.id).principal(100_000_000); + + let mut context = Context::new(admin.clone()) + .with_products(&[reference_product]) + .with_jars(&[reference_jar]); + + context.switch_account(&admin); + context.contract.set_penalty(alice, 0, true); +} + +#[test] +fn get_total_interest_for_premium_with_penalty_after_half_term() { + let alice = accounts(0); + let admin = accounts(1); + + let signer = MessageSigner::new(); + let reference_product = Product::generate("premium_product") + .enabled(true) + .apy(Apy::Downgradable(DowngradableApy { + default: UDecimal::new(20, 2), + fallback: UDecimal::new(10, 2), + })) + .public_key(signer.public_key()); + let reference_jar = Jar::generate(0, &alice, &reference_product.id).principal(100_000_000); + + let mut context = Context::new(admin.clone()) + .with_products(&[reference_product]) + .with_jars(&[reference_jar]); + + context.set_block_timestamp_in_days(182); + + let mut interest = context.contract.get_total_interest(alice.clone()).amount.total.0; + assert_eq!(interest, 9_972_602); + + context.switch_account(&admin); + context.contract.set_penalty(alice.clone(), 0, true); + + context.set_block_timestamp_in_days(365); + + interest = context.contract.get_total_interest(alice).amount.total.0; + assert_eq!(interest, 10_000_000); +} + +#[test] +fn get_interest_after_withdraw() { + let alice = accounts(0); + let admin = accounts(1); + + let product = generate_product(); + let jar = Jar::generate(0, &alice, &product.id).principal(100_000_000); + + let mut context = Context::new(admin).with_products(&[product]).with_jars(&[jar.clone()]); + + context.set_block_timestamp_in_days(400); + + context.switch_account(&alice); + context.contract.withdraw(U32(jar.id), None); + + let interest = context.contract.get_total_interest(alice.clone()); + assert_eq!(12_000_000, interest.amount.total.0); +} + +fn generate_product() -> Product { + Product::generate("product") + .enabled(true) + .lockup_term(MS_IN_YEAR) + .apy(Apy::Constant(UDecimal::new(12, 2))) +} diff --git a/contract/src/withdraw/api.rs b/contract/src/withdraw/api.rs index 4bcad61e..a2b91f61 100644 --- a/contract/src/withdraw/api.rs +++ b/contract/src/withdraw/api.rs @@ -2,12 +2,12 @@ use near_sdk::{ext_contract, is_promise_success, json_types::U128, near_bindgen, use crate::{ assert::{assert_is_liquidable, assert_sufficient_balance}, - assert_is_not_closed, assert_ownership, - common::{TokenAmount, GAS_FOR_AFTER_WITHDRAW}, + assert_ownership, + common::TokenAmount, env, event::{emit, EventKind, WithdrawData}, ft_interface::Fee, - jar::view::JarIndexView, + jar::view::JarIdView, product::model::WithdrawalFee, withdraw::view::WithdrawView, AccountId, Contract, ContractExt, Jar, Product, @@ -21,7 +21,7 @@ pub trait WithdrawApi { /// /// # Arguments /// - /// * `jar_index` - The index of the deposit jar from which the withdrawal is being made. + /// * `jar_id` - The ID of the deposit jar from which the withdrawal is being made. /// * `amount` - An optional `U128` value indicating the amount of tokens to withdraw. If `None` is provided, /// the entire balance of the jar will be withdrawn. /// @@ -38,7 +38,7 @@ pub trait WithdrawApi { /// - If the caller is not the owner of the specified jar. /// - If the withdrawal amount exceeds the available balance in the jar. /// - If attempting to withdraw from a Fixed jar that is not yet mature. - fn withdraw(&mut self, jar_index: JarIndexView, amount: Option) -> PromiseOrValue; + fn withdraw(&mut self, jar_id: JarIdView, amount: Option) -> PromiseOrValue; } #[ext_contract(ext_self)] @@ -53,15 +53,14 @@ pub trait WithdrawCallbacks { #[near_bindgen] impl WithdrawApi for Contract { - fn withdraw(&mut self, jar_index: JarIndexView, amount: Option) -> PromiseOrValue { - let jar = self.get_jar_internal(jar_index.0).locked(); + fn withdraw(&mut self, jar_id: JarIdView, amount: Option) -> PromiseOrValue { + let account_id = env::predecessor_account_id(); + let jar = self.get_jar_internal(&account_id, jar_id.0).locked(); let amount = amount.map_or(jar.principal, |value| value.0); - let account_id = env::predecessor_account_id(); assert_ownership(&jar, &account_id); assert_sufficient_balance(&jar, amount); - assert_is_not_closed(&jar); let now = env::block_timestamp_ms(); let product = self.get_product(&jar.product_id); @@ -83,24 +82,32 @@ impl Contract { if is_promise_success { let product = self.get_product(&jar_before_transfer.product_id); let now = env::block_timestamp_ms(); - let jar = jar_before_transfer.withdrawn(product, withdrawn_amount, now); + let (should_be_closed, jar) = jar_before_transfer.withdrawn(product, withdrawn_amount, now); + + let jar_id = jar.id; - self.jars.replace(jar_before_transfer.index, jar.unlocked()); + if should_be_closed { + self.delete_jar(jar); + } else { + let stored_jar = self.get_jar_mut_internal(&jar.account_id, jar_id); + *stored_jar = jar; + stored_jar.unlock(); + } - emit(EventKind::Withdraw(WithdrawData { index: jar.index })); + emit(EventKind::Withdraw(WithdrawData { id: jar_id })); WithdrawView::new(withdrawn_amount, fee) } else { - self.jars - .replace(jar_before_transfer.index, jar_before_transfer.unlocked()); + let stored_jar = self.get_jar_mut_internal(&jar_before_transfer.account_id, jar_before_transfer.id); + + *stored_jar = jar_before_transfer.unlocked(); WithdrawView::new(0, None) } } fn do_transfer(&mut self, account_id: &AccountId, jar: &Jar, amount: TokenAmount) -> PromiseOrValue { - self.jars.replace(jar.index, jar.locked()); - + self.get_jar_mut_internal(account_id, jar.id).lock(); self.transfer_withdraw(account_id, amount, jar) } @@ -138,7 +145,7 @@ impl Contract { fn after_withdraw_call(jar_before_transfer: Jar, withdrawn_balance: TokenAmount, fee: &Option) -> Promise { ext_self::ext(env::current_account_id()) - .with_static_gas(GAS_FOR_AFTER_WITHDRAW) + .with_static_gas(crate::common::GAS_FOR_AFTER_WITHDRAW) .after_withdraw(jar_before_transfer, withdrawn_balance, fee.clone()) } } @@ -167,190 +174,3 @@ impl WithdrawCallbacks for Contract { self.after_withdraw_internal(jar_before_transfer, withdrawn_amount, fee, is_promise_success()) } } - -#[cfg(test)] -mod tests { - use near_sdk::{json_types::U128, test_utils::accounts, AccountId, PromiseOrValue}; - - use crate::{ - common::{tests::Context, u32::U32, udecimal::UDecimal}, - jar::{api::JarApi, model::Jar}, - product::model::{Product, WithdrawalFee}, - withdraw::api::WithdrawApi, - }; - - fn prepare_jar(product: &Product) -> (AccountId, Jar, Context) { - let alice = accounts(0); - let admin = accounts(1); - - let jar = Jar::generate(0, &alice, &product.id).principal(1_000_000); - let context = Context::new(admin) - .with_products(&[product.clone()]) - .with_jars(&[jar.clone()]); - - (alice, jar, context) - } - - #[test] - #[should_panic(expected = "Account doesn't own this jar")] - fn withdraw_locked_jar_before_maturity_by_not_owner() { - let (_, _, mut context) = prepare_jar(&generate_product()); - - context.contract.withdraw(U32(0), None); - } - - #[test] - #[should_panic(expected = "The jar is not mature yet")] - fn withdraw_locked_jar_before_maturity_by_owner() { - let (alice, jar, mut context) = prepare_jar(&generate_product()); - - context.switch_account(&alice); - context.contract.withdraw(U32(jar.index), None); - } - - #[test] - #[should_panic(expected = "Account doesn't own this jar")] - fn withdraw_locked_jar_after_maturity_by_not_owner() { - let product = generate_product(); - let (_, jar, mut context) = prepare_jar(&product); - - context.set_block_timestamp_in_ms(product.get_lockup_term().unwrap() + 1); - context.contract.withdraw(U32(jar.index), None); - } - - #[test] - fn withdraw_locked_jar_after_maturity_by_owner() { - let product = generate_product(); - let (alice, jar, mut context) = prepare_jar(&product); - - context.set_block_timestamp_in_ms(product.get_lockup_term().unwrap() + 1); - context.switch_account(&alice); - context.contract.withdraw(U32(jar.index), None); - } - - #[test] - #[should_panic(expected = "Account doesn't own this jar")] - fn withdraw_flexible_jar_by_not_owner() { - let product = generate_flexible_product(); - let (_, jar, mut context) = prepare_jar(&product); - - context.set_block_timestamp_in_days(1); - context.contract.withdraw(U32(jar.index), None); - } - - #[test] - fn withdraw_flexible_jar_by_owner_full() { - let product = generate_flexible_product(); - let (alice, reference_jar, mut context) = prepare_jar(&product); - - context.set_block_timestamp_in_days(1); - context.switch_account(&alice); - - context.contract.withdraw(U32(reference_jar.index), None); - let jar = context.contract.get_jar(U32(reference_jar.index)); - assert_eq!(0, jar.principal.0); - } - - #[test] - fn withdraw_flexible_jar_by_owner_with_sufficient_balance() { - let product = generate_flexible_product(); - let (alice, reference_jar, mut context) = prepare_jar(&product); - - context.set_block_timestamp_in_days(1); - context.switch_account(&alice); - - context.contract.withdraw(U32(0), Some(U128(100_000))); - let jar = context.contract.get_jar(U32(reference_jar.index)); - assert_eq!(900_000, jar.principal.0); - } - - #[test] - #[should_panic(expected = "Insufficient balance")] - fn withdraw_flexible_jar_by_owner_with_insufficient_balance() { - let product = generate_flexible_product(); - let (alice, jar, mut context) = prepare_jar(&product); - - context.set_block_timestamp_in_days(1); - context.switch_account(&alice); - context.contract.withdraw(U32(jar.index), Some(U128(2_000_000))); - } - - #[test] - fn product_with_fixed_fee() { - let fee = 10; - let product = generate_product_with_fee(&WithdrawalFee::Fix(fee)); - let (alice, reference_jar, mut context) = prepare_jar(&product); - - let initial_principal = reference_jar.principal; - - context.set_block_timestamp_in_ms(product.get_lockup_term().unwrap() + 1); - context.switch_account(&alice); - - let withdraw_amount = 100_000; - let PromiseOrValue::Value(withdraw) = context.contract.withdraw(U32(0), Some(U128(withdraw_amount))) else { - panic!("Invalid promise type"); - }; - - assert_eq!(withdraw.withdrawn_amount, U128(withdraw_amount - fee)); - assert_eq!(withdraw.fee, U128(fee)); - - let jar = context.contract.get_jar(U32(reference_jar.index)); - - assert_eq!(jar.principal, U128(initial_principal - withdraw_amount)); - } - - #[test] - fn product_with_percent_fee() { - let fee_value = UDecimal::new(5, 4); - let fee = WithdrawalFee::Percent(fee_value.clone()); - let product = generate_product_with_fee(&fee); - let (alice, reference_jar, mut context) = prepare_jar(&product); - - let initial_principal = reference_jar.principal; - - context.set_block_timestamp_in_ms(product.get_lockup_term().unwrap() + 1); - context.switch_account(&alice); - - let withdrawn_amount = 100_000; - let PromiseOrValue::Value(withdraw) = context.contract.withdraw(U32(0), Some(U128(withdrawn_amount))) else { - panic!("Invalid promise type"); - }; - - let reference_fee = fee_value * initial_principal; - assert_eq!(withdraw.withdrawn_amount, U128(withdrawn_amount - reference_fee)); - assert_eq!(withdraw.fee, U128(reference_fee)); - - let jar = context.contract.get_jar(U32(reference_jar.index)); - - assert_eq!(jar.principal, U128(initial_principal - withdrawn_amount)); - } - - #[test] - fn test_failed_withdraw() { - let product = generate_product(); - let (_, reference_jar, mut context) = prepare_jar(&product); - - let jar_view = context.contract.get_jar(U32(reference_jar.index)); - let jar = context.contract.jars[0].clone(); - let withdraw = context.contract.after_withdraw_internal(jar, 1234, None, false); - - assert_eq!(withdraw.withdrawn_amount, U128(0)); - assert_eq!(withdraw.fee, U128(0)); - - assert_eq!(jar_view, context.contract.get_jar(U32(0))); - } - - pub(crate) fn generate_product() -> Product { - Product::generate("product").enabled(true) - } - - pub(crate) fn generate_flexible_product() -> Product { - Product::generate("flexible_product").enabled(true).flexible() - } - - pub(crate) fn generate_product_with_fee(fee: &WithdrawalFee) -> Product { - Product::generate("product_with_fee") - .enabled(true) - .with_withdrawal_fee(fee.clone()) - } -} diff --git a/contract/src/withdraw/mod.rs b/contract/src/withdraw/mod.rs index 68c36638..78fb6ba1 100644 --- a/contract/src/withdraw/mod.rs +++ b/contract/src/withdraw/mod.rs @@ -1,2 +1,3 @@ pub mod api; +mod tests; pub mod view; diff --git a/contract/src/withdraw/tests.rs b/contract/src/withdraw/tests.rs new file mode 100644 index 00000000..4266e077 --- /dev/null +++ b/contract/src/withdraw/tests.rs @@ -0,0 +1,222 @@ +#![cfg(test)] + +use near_sdk::{json_types::U128, test_utils::accounts, AccountId, PromiseOrValue}; + +use crate::{ + common::{tests::Context, u32::U32, udecimal::UDecimal, MS_IN_YEAR}, + jar::{api::JarApi, model::Jar}, + product::model::{Apy, Product, WithdrawalFee}, + withdraw::api::WithdrawApi, +}; + +fn prepare_jar(product: &Product) -> (AccountId, Jar, Context) { + let alice = accounts(0); + let admin = accounts(1); + + let jar = Jar::generate(0, &alice, &product.id).principal(1_000_000); + let context = Context::new(admin) + .with_products(&[product.clone()]) + .with_jars(&[jar.clone()]); + + (alice, jar, context) +} + +#[test] +#[should_panic(expected = "Account 'owner' doesn't exist")] +fn withdraw_locked_jar_before_maturity_by_not_owner() { + let (_, _, mut context) = prepare_jar(&generate_product()); + + context.contract.withdraw(U32(0), None); +} + +#[test] +#[should_panic(expected = "The jar is not mature yet")] +fn withdraw_locked_jar_before_maturity_by_owner() { + let (alice, jar, mut context) = prepare_jar(&generate_product()); + + context.switch_account(&alice); + context.contract.withdraw(U32(jar.id), None); +} + +#[test] +#[should_panic(expected = "Account 'owner' doesn't exist")] +fn withdraw_locked_jar_after_maturity_by_not_owner() { + let product = generate_product(); + let (_, jar, mut context) = prepare_jar(&product); + + context.set_block_timestamp_in_ms(product.get_lockup_term().unwrap() + 1); + context.contract.withdraw(U32(jar.id), None); +} + +#[test] +fn withdraw_locked_jar_after_maturity_by_owner() { + let product = generate_product(); + let (alice, jar, mut context) = prepare_jar(&product); + + context.set_block_timestamp_in_ms(product.get_lockup_term().unwrap() + 1); + context.switch_account(&alice); + context.contract.withdraw(U32(jar.id), None); +} + +#[test] +#[should_panic(expected = "Account 'owner' doesn't exist")] +fn withdraw_flexible_jar_by_not_owner() { + let product = generate_flexible_product(); + let (_, jar, mut context) = prepare_jar(&product); + + context.set_block_timestamp_in_days(1); + context.contract.withdraw(U32(jar.id), None); +} + +#[test] +fn withdraw_flexible_jar_by_owner_full() { + let product = generate_flexible_product(); + let (alice, reference_jar, mut context) = prepare_jar(&product); + + context.set_block_timestamp_in_days(1); + context.switch_account(&alice); + + context.contract.withdraw(U32(reference_jar.id), None); + let jar = context.contract.get_jar(alice.clone(), U32(reference_jar.id)); + assert_eq!(0, jar.principal.0); +} + +#[test] +fn withdraw_flexible_jar_by_owner_with_sufficient_balance() { + let product = generate_flexible_product(); + let (alice, reference_jar, mut context) = prepare_jar(&product); + + context.set_block_timestamp_in_days(1); + context.switch_account(&alice); + + context.contract.withdraw(U32(0), Some(U128(100_000))); + let jar = context.contract.get_jar(alice.clone(), U32(reference_jar.id)); + assert_eq!(900_000, jar.principal.0); +} + +#[test] +#[should_panic(expected = "Insufficient balance")] +fn withdraw_flexible_jar_by_owner_with_insufficient_balance() { + let product = generate_flexible_product(); + let (alice, jar, mut context) = prepare_jar(&product); + + context.set_block_timestamp_in_days(1); + context.switch_account(&alice); + context.contract.withdraw(U32(jar.id), Some(U128(2_000_000))); +} + +#[test] +fn dont_delete_jar_after_withdraw_with_interest_left() { + let product = generate_product() + .lockup_term(MS_IN_YEAR) + .apy(Apy::Constant(UDecimal::new(2, 1))); + + let (alice, _, mut context) = prepare_jar(&product); + + context.set_block_timestamp_in_ms(product.get_lockup_term().unwrap() + 1); + context.switch_account(&alice); + + let jar = context.contract.get_jar_internal(&alice, 0); + + let PromiseOrValue::Value(withdrawn) = context.contract.withdraw(U32(jar.id), Some(U128(1_000_000))) else { + panic!(); + }; + + assert_eq!(withdrawn.withdrawn_amount, U128(1_000_000)); + assert_eq!(withdrawn.fee, U128(0)); + + let jar = context.contract.get_jar_internal(&alice, 0); + assert_eq!(jar.principal, 0); + + let Some(ref cache) = jar.cache else { + panic!(); + }; + + assert_eq!(cache.interest, 200_000); +} + +#[test] +fn product_with_fixed_fee() { + let fee = 10; + let product = generate_product_with_fee(&WithdrawalFee::Fix(fee)); + let (alice, reference_jar, mut context) = prepare_jar(&product); + + let initial_principal = reference_jar.principal; + + context.set_block_timestamp_in_ms(product.get_lockup_term().unwrap() + 1); + context.switch_account(&alice); + + let withdraw_amount = 100_000; + let PromiseOrValue::Value(withdraw) = context.contract.withdraw(U32(0), Some(U128(withdraw_amount))) else { + panic!("Invalid promise type"); + }; + + assert_eq!(withdraw.withdrawn_amount, U128(withdraw_amount - fee)); + assert_eq!(withdraw.fee, U128(fee)); + + let jar = context.contract.get_jar(alice, U32(reference_jar.id)); + + assert_eq!(jar.principal, U128(initial_principal - withdraw_amount)); +} + +#[test] +fn product_with_percent_fee() { + let fee_value = UDecimal::new(5, 4); + let fee = WithdrawalFee::Percent(fee_value.clone()); + let product = generate_product_with_fee(&fee); + let (alice, reference_jar, mut context) = prepare_jar(&product); + + let initial_principal = reference_jar.principal; + + context.set_block_timestamp_in_ms(product.get_lockup_term().unwrap() + 1); + context.switch_account(&alice); + + let withdrawn_amount = 100_000; + let PromiseOrValue::Value(withdraw) = context.contract.withdraw(U32(0), Some(U128(withdrawn_amount))) else { + panic!("Invalid promise type"); + }; + + let reference_fee = fee_value * initial_principal; + assert_eq!(withdraw.withdrawn_amount, U128(withdrawn_amount - reference_fee)); + assert_eq!(withdraw.fee, U128(reference_fee)); + + let jar = context.contract.get_jar(alice, U32(reference_jar.id)); + + assert_eq!(jar.principal, U128(initial_principal - withdrawn_amount)); +} + +#[test] +fn test_failed_withdraw() { + let product = generate_product(); + let (alice, reference_jar, mut context) = prepare_jar(&product); + + let jar_view = context.contract.get_jar(alice.clone(), U32(reference_jar.id)); + let jar = context + .contract + .account_jars + .get(&alice) + .unwrap() + .iter() + .next() + .unwrap(); + let withdraw = context.contract.after_withdraw_internal(jar.clone(), 1234, None, false); + + assert_eq!(withdraw.withdrawn_amount, U128(0)); + assert_eq!(withdraw.fee, U128(0)); + + assert_eq!(jar_view, context.contract.get_jar(alice, U32(0))); +} + +pub(crate) fn generate_product() -> Product { + Product::generate("product").enabled(true) +} + +pub(crate) fn generate_flexible_product() -> Product { + Product::generate("flexible_product").enabled(true).flexible() +} + +pub(crate) fn generate_product_with_fee(fee: &WithdrawalFee) -> Product { + Product::generate("product_with_fee") + .enabled(true) + .with_withdrawal_fee(fee.clone()) +} diff --git a/integration-tests/src/jar_contract_interface.rs b/integration-tests/src/jar_contract_interface.rs index 514672e6..d7c8b2ef 100644 --- a/integration-tests/src/jar_contract_interface.rs +++ b/integration-tests/src/jar_contract_interface.rs @@ -34,7 +34,7 @@ pub(crate) trait JarContractInterface { async fn get_jars_for_account(&self, user: &Account) -> anyhow::Result; - async fn withdraw(&self, user: &Account, jar_index: &str) -> anyhow::Result; + async fn withdraw(&self, user: &Account, jar_id: &str) -> anyhow::Result; async fn claim_total(&self, user: &Account) -> anyhow::Result; } @@ -189,11 +189,11 @@ impl JarContractInterface for Contract { Ok(result) } - async fn withdraw(&self, user: &Account, jar_index: &str) -> anyhow::Result { - println!("▶️ Withdraw jar #{jar_index}"); + async fn withdraw(&self, user: &Account, jar_id: &str) -> anyhow::Result { + println!("▶️ Withdraw jar #{jar_id}"); let args = json!({ - "jar_index": jar_index, + "jar_id": jar_id, }); let result = user diff --git a/integration-tests/src/measure/claim_total.rs b/integration-tests/src/measure/claim_total.rs index 03b26dec..44b418a4 100644 --- a/integration-tests/src/measure/claim_total.rs +++ b/integration-tests/src/measure/claim_total.rs @@ -1,5 +1,7 @@ #![cfg(test)] +use std::collections::HashMap; + use itertools::Itertools; use workspaces::{types::Gas, Account}; @@ -20,7 +22,7 @@ async fn measure_after_claim_total_test() -> anyhow::Result<()> { RegisterProductCommand::Locked6Months6Percents, RegisterProductCommand::Locked6Months6PercentsWithWithdrawFee, ], - &(1..10).collect_vec(), + &(1..5).collect_vec(), ), measure_after_claim_total, ) @@ -28,6 +30,29 @@ async fn measure_after_claim_total_test() -> anyhow::Result<()> { dbg!(&measured); + let mut map: HashMap> = HashMap::new(); + + for measure in measured { + map.entry(measure.0 .0).or_default().push(measure.1); + } + + dbg!(&map); + + let map: HashMap = map + .into_iter() + .map(|(key, gas_cost)| { + let mut differences: Vec = Vec::new(); + for i in 1..gas_cost.len() { + let diff = gas_cost[i] - gas_cost[i - 1]; + differences.push(diff); + } + + (key, (gas_cost, differences)) + }) + .collect(); + + dbg!(&map); + Ok(()) } diff --git a/integration-tests/src/migration.rs b/integration-tests/src/migration.rs index 37eb8411..f8afb6c0 100644 --- a/integration-tests/src/migration.rs +++ b/integration-tests/src/migration.rs @@ -81,11 +81,11 @@ async fn migration() -> anyhow::Result<()> { assert_eq!(2, alice_jars.len()); let alice_first_jar = alice_jars.get(0).unwrap(); - assert_eq!("0", alice_first_jar.get("index").unwrap().as_str().unwrap()); + assert_eq!("1", alice_first_jar.get("id").unwrap().as_str().unwrap()); assert_eq!("2000000", alice_first_jar.get("principal").unwrap().as_str().unwrap()); let alice_second_jar = alice_jars.get(1).unwrap(); - assert_eq!("1", alice_second_jar.get("index").unwrap().as_str().unwrap()); + assert_eq!("2", alice_second_jar.get("id").unwrap().as_str().unwrap()); assert_eq!("700000", alice_second_jar.get("principal").unwrap().as_str().unwrap()); let alice_principal = context.jar_contract.get_total_principal(alice).await?; diff --git a/integration-tests/src/product.rs b/integration-tests/src/product.rs index e117ad71..ddccd5a7 100644 --- a/integration-tests/src/product.rs +++ b/integration-tests/src/product.rs @@ -1,6 +1,6 @@ use serde_json::{json, Value}; -#[derive(Debug, Copy, Clone)] +#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] pub(crate) enum RegisterProductCommand { Locked12Months12Percents, Locked6Months6Percents, diff --git a/integration-tests/src/withdraw_fee.rs b/integration-tests/src/withdraw_fee.rs index dcc6e007..327bc18b 100644 --- a/integration-tests/src/withdraw_fee.rs +++ b/integration-tests/src/withdraw_fee.rs @@ -31,7 +31,7 @@ async fn test_fixed_withdraw_fee() -> anyhow::Result<()> { context.fast_forward_hours(1).await?; - let withdraw_result = context.jar_contract.withdraw(&alice, "0").await?; + let withdraw_result = context.jar_contract.withdraw(&alice, "1").await?; let withdrawn_amount = withdraw_result.get_u128("withdrawn_amount"); let fee_amount = withdraw_result.get_u128("fee"); @@ -75,7 +75,7 @@ async fn test_percent_withdraw_fee() -> anyhow::Result<()> { context.fast_forward_hours(1).await?; - let withdraw_result = context.jar_contract.withdraw(&alice, "0").await?; + let withdraw_result = context.jar_contract.withdraw(&alice, "1").await?; let withdrawn_amount = withdraw_result.get_u128("withdrawn_amount"); let fee_amount = withdraw_result.get_u128("fee"); diff --git a/res/sweat_jar.wasm b/res/sweat_jar.wasm index 9996898d07017a1cad30fab439511a458c2c4254..aece572ec9e19c9f7b75bfd57e3af233ae78135f 100755 GIT binary patch delta 221051 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

uu;uRtOH+qHkdL&1~|6$F!A=m!32Ri3dP+9 zfp^nG4d@81awMz@G-Yf2dVP={nByKO%btT81+n=!WQa>OaD0sY-C3ugCa~YJy<(3$ z2gHuVYmaWm^K=tizQIm?wwFODmYfoqJE$Cu0Bl%=rAf(%up9mwK=l_RXd%X<5t&(41AQ$N#nxsPQ|@0MUWi5w*b1kMOMn!VRy;M(Wte$qTQN4Sc2vi@7-tKnkSQwkH71Dl2@= zx8XitX3X$##!%5^jnS?45J6T$!6RM*I`q$t<`eDq+idZUDoHrN=62b{y|kZl=Gx8o6Y);?j>19#3Z z4(+4gJjokWEGiG7cuN+UA zK(h;up zyvh_{@wW>(VJ>Ddgh?dxa;tvyRB!mnFdE=@P7ZoYV!A;E^_vQemZqkcPKCEf|FY!P1 zUA6^|29q7ArOP!Gh2}}!vPQ3UiUc6e6#dU1dWSf(_4qTqkuL7ao^*yczJ|`T7=K}r ztOA8+$GN&U>ygH|e)0@ WLTspKL82&KdjVM&UA|hU2u5 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 literal 578071 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%0D#|?)GUEI?LdRPz-_GAfDuuhEjOUB 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 z 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 >Bk>sjuY^~#dtWdU}_#Il?s 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