From 12ae18568a63329e4449f319c007e41ef5b96382 Mon Sep 17 00:00:00 2001 From: Vladas Zakrevskis <146100@gmail.com> Date: Fri, 3 Nov 2023 13:24:46 +0200 Subject: [PATCH] fixed warnings --- contract/src/burn/api.rs | 135 ++++++++------ contract/src/burn/tests.rs | 2 +- contract/src/claim/api.rs | 173 ++++++++++-------- contract/src/claim/tests.rs | 2 +- contract/src/common/asserts.rs | 2 +- contract/src/common/mod.rs | 8 +- contract/src/record/api.rs | 11 +- .../src/interface/claim_contract.rs | 2 +- res/sweat_claim.wasm | Bin 206860 -> 215680 bytes 9 files changed, 181 insertions(+), 154 deletions(-) diff --git a/contract/src/burn/api.rs b/contract/src/burn/api.rs index 570e2bf..109d705 100644 --- a/contract/src/burn/api.rs +++ b/contract/src/burn/api.rs @@ -1,15 +1,7 @@ use model::{api::BurnApi, TokensAmount, UnixTimestamp}; -use near_sdk::{ - env, ext_contract, is_promise_success, json_types::U128, near_bindgen, require, serde_json::json, Gas, Promise, - PromiseOrValue, -}; +use near_sdk::{json_types::U128, near_bindgen, require, PromiseOrValue}; -#[cfg(test)] -use crate::common::tests::data::get_test_future_success; -use crate::{common::unix_timestamp, Contract, ContractExt}; - -#[cfg(test)] -pub(crate) const EXT_BURN_FUTURE: &str = "ext_burn"; +use crate::{common::now_seconds, Contract, ContractExt}; #[near_bindgen] impl BurnApi for Contract { @@ -22,7 +14,7 @@ impl BurnApi for Contract { let mut total_to_burn = 0; let mut keys_to_remove: Vec = vec![]; - let now: UnixTimestamp = unix_timestamp(env::block_timestamp_ms()); + let now = now_seconds(); for (datetime, (_, total)) in self.accruals.iter() { if now - datetime >= self.burn_period { @@ -41,57 +33,7 @@ impl BurnApi for Contract { } } -#[cfg(not(test))] -#[ext_contract(ext_self)] -pub trait SelfCallback { - fn on_burn(&mut self, total_to_burn: TokensAmount, keys_to_remove: Vec) -> U128; -} - -#[cfg(not(test))] -#[near_bindgen] -impl SelfCallback for Contract { - fn on_burn(&mut self, total_to_burn: TokensAmount, keys_to_remove: Vec) -> U128 { - self.on_burn_internal(total_to_burn, keys_to_remove, is_promise_success()) - } -} - impl Contract { - #[cfg(not(test))] - fn burn_external( - &mut self, - total_to_burn: TokensAmount, - keys_to_remove: Vec, - ) -> PromiseOrValue { - let args = json!({ - "amount": U128(total_to_burn), - }) - .to_string() - .as_bytes() - .to_vec(); - - Promise::new(self.token_account_id.clone()) - .function_call("burn".to_string(), args, 0, Gas(5 * Gas::ONE_TERA.0)) - .then( - ext_self::ext(env::current_account_id()) - .with_static_gas(Gas(5 * Gas::ONE_TERA.0)) - .on_burn(total_to_burn, keys_to_remove), - ) - .into() - } - - #[cfg(test)] - fn burn_external( - &mut self, - total_to_burn: TokensAmount, - keys_to_remove: Vec, - ) -> PromiseOrValue { - PromiseOrValue::Value(self.on_burn_internal( - total_to_burn, - keys_to_remove, - get_test_future_success(EXT_BURN_FUTURE), - )) - } - fn on_burn_internal( &mut self, total_to_burn: TokensAmount, @@ -111,3 +53,74 @@ impl Contract { } } } + +#[cfg(not(test))] +pub(crate) mod not_test { + use model::{TokensAmount, UnixTimestamp}; + use near_sdk::{ + env, ext_contract, is_promise_success, json_types::U128, near_bindgen, serde_json::json, Gas, Promise, + PromiseOrValue, + }; + + use crate::{Contract, ContractExt}; + + #[ext_contract(ext_self)] + pub trait SelfCallback { + fn on_burn(&mut self, total_to_burn: TokensAmount, keys_to_remove: Vec) -> U128; + } + + #[near_bindgen] + impl SelfCallback for Contract { + fn on_burn(&mut self, total_to_burn: TokensAmount, keys_to_remove: Vec) -> U128 { + self.on_burn_internal(total_to_burn, keys_to_remove, is_promise_success()) + } + } + + impl Contract { + pub(crate) fn burn_external( + &mut self, + total_to_burn: TokensAmount, + keys_to_remove: Vec, + ) -> PromiseOrValue { + let args = json!({ + "amount": U128(total_to_burn), + }) + .to_string() + .as_bytes() + .to_vec(); + + Promise::new(self.token_account_id.clone()) + .function_call("burn".to_string(), args, 0, Gas(5 * Gas::ONE_TERA.0)) + .then( + ext_self::ext(env::current_account_id()) + .with_static_gas(Gas(5 * Gas::ONE_TERA.0)) + .on_burn(total_to_burn, keys_to_remove), + ) + .into() + } + } +} + +#[cfg(test)] +pub(crate) mod test { + use model::{TokensAmount, UnixTimestamp}; + use near_sdk::{json_types::U128, PromiseOrValue}; + + use crate::{common::tests::data::get_test_future_success, Contract}; + + pub(crate) const EXT_BURN_FUTURE: &str = "ext_burn"; + + impl Contract { + pub(crate) fn burn_external( + &mut self, + total_to_burn: TokensAmount, + keys_to_remove: Vec, + ) -> PromiseOrValue { + PromiseOrValue::Value(self.on_burn_internal( + total_to_burn, + keys_to_remove, + get_test_future_success(EXT_BURN_FUTURE), + )) + } + } +} diff --git a/contract/src/burn/tests.rs b/contract/src/burn/tests.rs index b5488dd..98d6af0 100644 --- a/contract/src/burn/tests.rs +++ b/contract/src/burn/tests.rs @@ -4,7 +4,7 @@ use model::api::{BurnApi, ClaimApi, RecordApi}; use near_sdk::{json_types::U128, PromiseOrValue}; use crate::{ - burn::api::EXT_BURN_FUTURE, + burn::api::test::EXT_BURN_FUTURE, common::tests::{data::set_test_future_success, Context}, }; diff --git a/contract/src/claim/api.rs b/contract/src/claim/api.rs index bd504a6..3a72e08 100644 --- a/contract/src/claim/api.rs +++ b/contract/src/claim/api.rs @@ -1,22 +1,14 @@ -use model::{api::ClaimApi, AccrualIndex, ClaimAvailabilityView, TokensAmount, UnixTimestamp}; -use near_sdk::{ - env, ext_contract, is_promise_success, json_types::U128, near_bindgen, require, serde_json::json, store::Vector, - AccountId, Gas, Promise, PromiseOrValue, -}; +use model::{api::ClaimApi, ClaimAvailabilityView, TokensAmount, UnixTimestamp}; +use near_sdk::{env, json_types::U128, near_bindgen, require, store::Vector, AccountId, PromiseOrValue}; -#[cfg(test)] -use crate::common::tests::data::get_test_future_success; -use crate::{common::unix_timestamp, Contract, ContractExt, StorageKey::AccrualsEntry}; - -#[cfg(test)] -pub(crate) const EXT_TRANSFER_FUTURE: &str = "ext_transfer"; +use crate::{common::now_seconds, Contract, ContractExt, StorageKey::AccrualsEntry}; #[near_bindgen] impl ClaimApi for Contract { fn get_claimable_balance_for_account(&self, account_id: AccountId) -> U128 { if let Some(account_data) = self.accounts.get(&account_id) { let mut total_accrual: TokensAmount = 0; - let now: UnixTimestamp = unix_timestamp(env::block_timestamp_ms()); + let now = now_seconds(); for (datetime, index) in &account_data.accruals { if now - datetime > self.burn_period { @@ -42,7 +34,7 @@ impl ClaimApi for Contract { return ClaimAvailabilityView::Available; }; - let now_seconds = unix_timestamp(env::block_timestamp_ms()); + let now_seconds = now_seconds(); if now_seconds - last_claim_at > self.claim_period { ClaimAvailabilityView::Available @@ -64,7 +56,7 @@ impl ClaimApi for Contract { let account_data = self.accounts.get_mut(&account_id).expect("Account data is not found"); - let now = unix_timestamp(env::block_timestamp_ms()); + let now = now_seconds(); let mut total_accrual: TokensAmount = 0; let mut details: Vec<(UnixTimestamp, TokensAmount)> = vec![]; @@ -94,72 +86,7 @@ impl ClaimApi for Contract { } } -#[cfg(not(test))] -#[ext_contract(ext_self)] -pub trait SelfCallback { - fn on_transfer( - &mut self, - account_id: AccountId, - total_accrual: TokensAmount, - details: Vec<(UnixTimestamp, TokensAmount)>, - ) -> U128; -} - -#[cfg(not(test))] -#[near_bindgen] -impl SelfCallback for Contract { - fn on_transfer( - &mut self, - account_id: AccountId, - total_accrual: TokensAmount, - details: Vec<(UnixTimestamp, TokensAmount)>, - ) -> U128 { - self.on_transfer_internal(account_id, total_accrual, details, is_promise_success()) - } -} - impl Contract { - #[cfg(not(test))] - fn transfer_external( - &mut self, - account_id: AccountId, - total_accrual: TokensAmount, - details: Vec<(UnixTimestamp, TokensAmount)>, - ) -> PromiseOrValue { - let args = json!({ - "receiver_id": account_id, - "amount": total_accrual.to_string(), - "memo": "", - }) - .to_string() - .as_bytes() - .to_vec(); - - Promise::new(self.token_account_id.clone()) - .function_call("ft_transfer".to_string(), args, 1, Gas(5 * Gas::ONE_TERA.0)) - .then( - ext_self::ext(env::current_account_id()) - .with_static_gas(Gas(5 * Gas::ONE_TERA.0)) - .on_transfer(account_id, total_accrual, details), - ) - .into() - } - - #[cfg(test)] - fn transfer_external( - &mut self, - account_id: AccountId, - total_accrual: TokensAmount, - details: Vec<(UnixTimestamp, TokensAmount)>, - ) -> PromiseOrValue { - PromiseOrValue::Value(self.on_transfer_internal( - account_id, - total_accrual, - details, - get_test_future_success(EXT_TRANSFER_FUTURE), - )) - } - fn on_transfer_internal( &mut self, account_id: AccountId, @@ -170,7 +97,7 @@ impl Contract { let account = self.accounts.get_mut(&account_id).expect("Account not found"); if is_success { - account.last_claim_at = Some(unix_timestamp(env::block_timestamp_ms())); + account.last_claim_at = Some(now_seconds()); U128(total_accrual) } else { @@ -191,3 +118,89 @@ impl Contract { } } } + +#[cfg(not(test))] +mod not_test { + use model::{TokensAmount, UnixTimestamp}; + use near_sdk::{ + env, ext_contract, is_promise_success, json_types::U128, near_bindgen, serde_json::json, AccountId, Gas, + Promise, PromiseOrValue, + }; + + use crate::{Contract, ContractExt}; + + #[ext_contract(ext_self)] + pub trait SelfCallback { + fn on_transfer( + &mut self, + account_id: AccountId, + total_accrual: TokensAmount, + details: Vec<(UnixTimestamp, TokensAmount)>, + ) -> U128; + } + + #[near_bindgen] + impl SelfCallback for Contract { + fn on_transfer( + &mut self, + account_id: AccountId, + total_accrual: TokensAmount, + details: Vec<(UnixTimestamp, TokensAmount)>, + ) -> U128 { + self.on_transfer_internal(account_id, total_accrual, details, is_promise_success()) + } + } + + impl Contract { + pub(crate) fn transfer_external( + &mut self, + account_id: AccountId, + total_accrual: TokensAmount, + details: Vec<(UnixTimestamp, TokensAmount)>, + ) -> PromiseOrValue { + let args = json!({ + "receiver_id": account_id, + "amount": total_accrual.to_string(), + "memo": "", + }) + .to_string() + .as_bytes() + .to_vec(); + + Promise::new(self.token_account_id.clone()) + .function_call("ft_transfer".to_string(), args, 1, Gas(5 * Gas::ONE_TERA.0)) + .then( + ext_self::ext(env::current_account_id()) + .with_static_gas(Gas(5 * Gas::ONE_TERA.0)) + .on_transfer(account_id, total_accrual, details), + ) + .into() + } + } +} + +#[cfg(test)] +pub(crate) mod test { + use model::{TokensAmount, UnixTimestamp}; + use near_sdk::{json_types::U128, AccountId, PromiseOrValue}; + + use crate::{common::tests::data::get_test_future_success, Contract}; + + pub(crate) const EXT_TRANSFER_FUTURE: &str = "ext_transfer"; + + impl Contract { + pub(crate) fn transfer_external( + &mut self, + account_id: AccountId, + total_accrual: TokensAmount, + details: Vec<(UnixTimestamp, TokensAmount)>, + ) -> PromiseOrValue { + PromiseOrValue::Value(self.on_transfer_internal( + account_id, + total_accrual, + details, + get_test_future_success(EXT_TRANSFER_FUTURE), + )) + } + } +} diff --git a/contract/src/claim/tests.rs b/contract/src/claim/tests.rs index 48ed738..6aa95cd 100644 --- a/contract/src/claim/tests.rs +++ b/contract/src/claim/tests.rs @@ -7,7 +7,7 @@ use model::{ use near_sdk::{json_types::U128, PromiseOrValue}; use crate::{ - claim::api::EXT_TRANSFER_FUTURE, + claim::api::test::EXT_TRANSFER_FUTURE, common::tests::{data::set_test_future_success, Context}, }; diff --git a/contract/src/common/asserts.rs b/contract/src/common/asserts.rs index 8ca404c..8db8c1f 100644 --- a/contract/src/common/asserts.rs +++ b/contract/src/common/asserts.rs @@ -6,7 +6,7 @@ impl Contract { pub(crate) fn assert_oracle(&self) { require!( self.oracles.contains(&env::predecessor_account_id()), - "Unauthorized access" + "Unauthorized access! Only oracle can do this!" ); } diff --git a/contract/src/common/mod.rs b/contract/src/common/mod.rs index c0109c9..34b80b0 100644 --- a/contract/src/common/mod.rs +++ b/contract/src/common/mod.rs @@ -1,10 +1,14 @@ use model::UnixTimestamp; -use near_sdk::env::panic_str; +use near_sdk::env::{block_timestamp_ms, panic_str}; mod asserts; pub(crate) mod tests; -pub(crate) fn unix_timestamp(ms: u64) -> UnixTimestamp { +fn ms_timestamp_to_seconds(ms: u64) -> UnixTimestamp { u32::try_from(ms / 1000) .unwrap_or_else(|err| panic_str(&format!("Failed to get convert milliseconds to Unix timestamp: {err}"))) } + +pub(crate) fn now_seconds() -> UnixTimestamp { + ms_timestamp_to_seconds(block_timestamp_ms()) +} diff --git a/contract/src/record/api.rs b/contract/src/record/api.rs index 9d3d5d8..d7a1c3b 100644 --- a/contract/src/record/api.rs +++ b/contract/src/record/api.rs @@ -1,19 +1,16 @@ use model::{account_record::AccountRecord, api::RecordApi, TokensAmount}; -use near_sdk::{env, env::log_str, json_types::U128, near_bindgen, require, store::Vector, AccountId}; +use near_sdk::{env::log_str, json_types::U128, near_bindgen, store::Vector, AccountId}; -use crate::{common::unix_timestamp, Contract, ContractExt, StorageKey::AccrualsEntry}; +use crate::{common::now_seconds, Contract, ContractExt, StorageKey::AccrualsEntry}; #[near_bindgen] impl RecordApi for Contract { fn record_batch_for_hold(&mut self, amounts: Vec<(AccountId, U128)>) { log_str(&format!("Record batch: {amounts:?}")); - require!( - self.oracles.contains(&env::predecessor_account_id()), - "Unauthorized access! Only oracle can do this!" - ); + self.assert_oracle(); - let now_seconds = unix_timestamp(env::block_timestamp_ms()); + let now_seconds = now_seconds(); let mut balances: Vector = Vector::new(AccrualsEntry(now_seconds)); let mut total_balance: TokensAmount = 0; diff --git a/integration-tests/src/interface/claim_contract.rs b/integration-tests/src/interface/claim_contract.rs index 6c400b9..220e10a 100644 --- a/integration-tests/src/interface/claim_contract.rs +++ b/integration-tests/src/interface/claim_contract.rs @@ -118,7 +118,7 @@ impl ClaimApiIntegration for SweatClaim<'_> { .await } - async fn claim(&mut self) -> Result<()> { + async fn claim(&mut self) -> Result { self.call_user("claim", ()).await } } diff --git a/res/sweat_claim.wasm b/res/sweat_claim.wasm index a7ab4e3c37fc5eeb195578cddb1879587dcbe911..28793bd7a648ba24ce0a89d7fe9d1119ff47df92 100755 GIT binary patch delta 53420 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 NBoxA{48GEN{~H=i+k5~3 delta 45998 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