From c050cec14d7924a791d11aef42e4522fa8880b28 Mon Sep 17 00:00:00 2001 From: Sorin Petreasca Date: Tue, 9 Jul 2024 14:22:11 +0300 Subject: [PATCH 1/3] unlock schedule update endpoint --- .../src/token_release.rs | 50 +++++++++++++++++++ launchpad-guaranteed-tickets/wasm/src/lib.rs | 5 +- 2 files changed, 53 insertions(+), 2 deletions(-) diff --git a/launchpad-guaranteed-tickets/src/token_release.rs b/launchpad-guaranteed-tickets/src/token_release.rs index 985e512..ee75376 100644 --- a/launchpad-guaranteed-tickets/src/token_release.rs +++ b/launchpad-guaranteed-tickets/src/token_release.rs @@ -85,6 +85,56 @@ pub trait TokenReleaseModule: config::ConfigModule { self.unlock_schedule().set(unlock_schedule); } + #[only_owner] + #[endpoint(updateUnlockSchedule)] + fn update_unlock_schedule( + &self, + vesting_release_times: u64, + vesting_release_percentage: u64, + vesting_release_period: u64, + ) { + let unlock_schedule_mapper = self.unlock_schedule(); + require!( + !unlock_schedule_mapper.is_empty(), + "Unlock schedule is not set" + ); + + let unlocks_schedule = unlock_schedule_mapper.get(); + let current_round = self.blockchain().get_block_round(); + require!( + current_round > unlocks_schedule.claim_start_round, + "Unlock schedule update only possible after claim start round" + ); + require!( + current_round < unlocks_schedule.claim_start_round + vesting_release_period, + "Unlock schedule update only possible between start claim and first vesting release" + ); + + require!( + vesting_release_period > 0 + || unlocks_schedule.initial_release_percentage == MAX_PERCENTAGE, + "Wrong vesting release recurrency" + ); + + let unlock_percentage = unlocks_schedule.initial_release_percentage + + vesting_release_times * vesting_release_percentage; + + require!( + unlock_percentage == MAX_PERCENTAGE, + "Unlock percentage is not 100%" + ); + + let unlock_schedule = UnlockSchedule::new( + unlocks_schedule.claim_start_round, + unlocks_schedule.initial_release_percentage, + vesting_release_times, + vesting_release_percentage, + vesting_release_period, + ); + + self.unlock_schedule().set(unlock_schedule); + } + #[view(getClaimableTokens)] fn compute_claimable_tokens(&self, address: &ManagedAddress) -> BigUint { let user_total_claimable_balance = self.user_total_claimable_balance(address).get(); diff --git a/launchpad-guaranteed-tickets/wasm/src/lib.rs b/launchpad-guaranteed-tickets/wasm/src/lib.rs index edcc270..7be4211 100644 --- a/launchpad-guaranteed-tickets/wasm/src/lib.rs +++ b/launchpad-guaranteed-tickets/wasm/src/lib.rs @@ -5,9 +5,9 @@ //////////////////////////////////////////////////// // Init: 1 -// Endpoints: 39 +// Endpoints: 40 // Async Callback (empty): 1 -// Total number of exported functions: 41 +// Total number of exported functions: 42 #![no_std] #![feature(lang_items)] @@ -53,6 +53,7 @@ multiversx_sc_wasm_adapter::endpoints! { confirmTickets hasUserClaimedTokens setUnlockSchedule + updateUnlockSchedule getClaimableTokens getUserTotalClaimableBalance getUserClaimedBalance From cd8f776c1935d906b8534cff3abdfeda17466dab Mon Sep 17 00:00:00 2001 From: ovidiuolteanu Date: Tue, 9 Jul 2024 15:38:32 +0300 Subject: [PATCH 2/3] actions update --- .github/workflows/actions.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/actions.yml b/.github/workflows/actions.yml index 0badafa..44cf36d 100644 --- a/.github/workflows/actions.yml +++ b/.github/workflows/actions.yml @@ -16,7 +16,8 @@ jobs: name: Contracts uses: multiversx/mx-sc-actions/.github/workflows/contracts.yml@v2.3.5 with: - rust-toolchain: nightly-2023-05-27 + rust-toolchain: nightly-2023-05-26 + sc-meta-version: 0.41.1 vmtools-version: v1.4.60 secrets: token: ${{ secrets.GITHUB_TOKEN }} From 9940a510635e689b6a0f4ae24e55bc9b94517967 Mon Sep 17 00:00:00 2001 From: Sorin Petreasca Date: Tue, 9 Jul 2024 16:00:18 +0300 Subject: [PATCH 3/3] upgrade endpoint --- launchpad-guaranteed-tickets/src/lib.rs | 3 +++ launchpad-guaranteed-tickets/wasm/src/lib.rs | 5 +++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/launchpad-guaranteed-tickets/src/lib.rs b/launchpad-guaranteed-tickets/src/lib.rs index aeb957e..9b95980 100644 --- a/launchpad-guaranteed-tickets/src/lib.rs +++ b/launchpad-guaranteed-tickets/src/lib.rs @@ -64,6 +64,9 @@ pub trait LaunchpadGuaranteedTickets: .set(min_confirmed_for_guaranteed_ticket); } + #[endpoint] + fn upgrade(&self) {} + #[only_owner] #[endpoint(addTickets)] fn add_tickets_endpoint( diff --git a/launchpad-guaranteed-tickets/wasm/src/lib.rs b/launchpad-guaranteed-tickets/wasm/src/lib.rs index 7be4211..8f7ea1d 100644 --- a/launchpad-guaranteed-tickets/wasm/src/lib.rs +++ b/launchpad-guaranteed-tickets/wasm/src/lib.rs @@ -5,9 +5,9 @@ //////////////////////////////////////////////////// // Init: 1 -// Endpoints: 40 +// Endpoints: 41 // Async Callback (empty): 1 -// Total number of exported functions: 42 +// Total number of exported functions: 43 #![no_std] #![feature(lang_items)] @@ -18,6 +18,7 @@ multiversx_sc_wasm_adapter::panic_handler!(); multiversx_sc_wasm_adapter::endpoints! { launchpad_guaranteed_tickets ( + upgrade addTickets depositLaunchpadTokens addUsersToBlacklist