From fa03a4c078d9c6ac80dcf3d22ab47294318d3de5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julian=20=C4=86wirko?= Date: Wed, 9 Feb 2022 13:49:46 +0100 Subject: [PATCH] fixed setting drops bug --- CHANGELOG.md | 3 ++ Cargo.lock | 2 +- Cargo.toml | 2 +- meta/Cargo.lock | 4 +- meta/Cargo.toml | 2 +- output/elven-nft-minter.abi.json | 2 +- output/elven-nft-minter.wasm | Bin 34296 -> 32354 bytes src/lib.rs | 76 +++++++++++++++++++++---------- wasm/Cargo.lock | 4 +- wasm/Cargo.toml | 2 +- 10 files changed, 63 insertions(+), 34 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5265d40..8cd66ca 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +### [1.3.1](https://github.com/juliancwirko/elven-nft-minter-sc/releases/tag/v1.3.0) (2022-02-09) +- Fixed the bug related to not optimal usage of storage clearing functions for managing the 'drops'. + ### [1.3.0](https://github.com/juliancwirko/elven-nft-minter-sc/releases/tag/v1.3.0) (2022-02-06) - the `amount_of_tokens` for the `mint` endpoint is now mandatory. It cleans up the code a little bit and makes it less prone to bugs. CLI requires the amount anyway, the same with the `giveaway` endpoint. So it is now unified. diff --git a/Cargo.lock b/Cargo.lock index 6d33eb5..bdd2471 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -164,7 +164,7 @@ dependencies = [ [[package]] name = "elven-nft-minter" -version = "1.3.0" +version = "1.3.1" dependencies = [ "elrond-wasm", "elrond-wasm-debug", diff --git a/Cargo.toml b/Cargo.toml index e3eda73..dbc3115 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "elven-nft-minter" -version = "1.3.0" +version = "1.3.1" authors = ["Julian Ćwirko "] edition = "2018" publish = false diff --git a/meta/Cargo.lock b/meta/Cargo.lock index e9c3301..9e930d2 100644 --- a/meta/Cargo.lock +++ b/meta/Cargo.lock @@ -164,14 +164,14 @@ dependencies = [ [[package]] name = "elven-nft-minter" -version = "1.3.0" +version = "1.3.1" dependencies = [ "elrond-wasm", ] [[package]] name = "elven-nft-minter-meta" -version = "1.3.0" +version = "1.3.1" dependencies = [ "elrond-wasm", "elrond-wasm-debug", diff --git a/meta/Cargo.toml b/meta/Cargo.toml index dc22d9a..2b76818 100644 --- a/meta/Cargo.toml +++ b/meta/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "elven-nft-minter-meta" -version = "1.3.0" +version = "1.3.1" authors = ["Julian Ćwirko "] edition = "2018" publish = false diff --git a/output/elven-nft-minter.abi.json b/output/elven-nft-minter.abi.json index 9b18b73..8bb27d1 100644 --- a/output/elven-nft-minter.abi.json +++ b/output/elven-nft-minter.abi.json @@ -9,7 +9,7 @@ }, "contractCrate": { "name": "elven-nft-minter", - "version": "1.3.0" + "version": "1.3.1" }, "framework": { "name": "elrond-wasm", diff --git a/output/elven-nft-minter.wasm b/output/elven-nft-minter.wasm index 16ba175647191f1fefa600f50ccf00cc69bdf88a..e29fa84070d1fd9e63e38cdd5b7a3ac9b6c4488f 100755 GIT binary patch delta 9732 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 0 { - self.tokens_limit_per_address_per_drop().set(tokens_limit); + self.tokens_limit_per_address_per_drop().set(tokens_limit); + } else { + self.tokens_limit_per_address_per_drop().set(amount_of_tokens_per_drop); } self.minted_indexes_by_drop().clear(); - self.minted_per_address_per_drop().clear(); self.amount_of_tokens_per_drop() .set(&amount_of_tokens_per_drop); + if self.opened_drop().is_empty() { + self.opened_drop().set(1); + } else { + self.opened_drop().update(|sum| *sum += 1); + } + Ok(()) } #[only_owner] #[endpoint(unsetDrop)] fn unset_drop(&self) -> SCResult<()> { - self.amount_of_tokens_per_drop().clear(); self.minted_indexes_by_drop().clear(); + self.amount_of_tokens_per_drop().clear(); self.tokens_limit_per_address_per_drop().clear(); - self.minted_per_address_per_drop().clear(); + self.opened_drop().clear(); Ok(()) } @@ -195,9 +202,8 @@ pub trait ElvenTools { image_base_cid: ManagedBuffer, metadata_base_cid: ManagedBuffer, ) -> SCResult<()> { - let minted_tokens = self.minted_indexes_total().len(); require!( - minted_tokens == 0, + self.minted_indexes_total().is_empty(), "You can't change the CIDs. There are some tokens minted already!" ); @@ -348,9 +354,10 @@ pub trait ElvenTools { ); // Check if there is a drop set and the limits per address for the drop are set - if !self.tokens_limit_per_address_per_drop().is_empty() { + if !self.opened_drop().is_empty() { + let opened_drop_id = self.opened_drop().get(); let minted_per_address_per_drop = self - .minted_per_address_per_drop() + .minted_per_address_per_drop(opened_drop_id) .get(&caller) .unwrap_or_default(); let tokens_limit_per_address_per_drop = self.tokens_limit_per_address_per_drop().get(); @@ -441,19 +448,18 @@ pub trait ElvenTools { self.minted_per_address_total(&caller) .update(|sum| *sum += 1); - let tokens_limit_per_address_per_drop = self.tokens_limit_per_address_per_drop().get(); - - if tokens_limit_per_address_per_drop > 0 { + if !self.opened_drop().is_empty() { + let opened_drop_id = self.opened_drop().get(); let existing_address_value = self - .minted_per_address_per_drop() + .minted_per_address_per_drop(opened_drop_id) .get(&caller) .unwrap_or_default(); if existing_address_value > 0 { let next_value = existing_address_value + 1; - self.minted_per_address_per_drop() + self.minted_per_address_per_drop(opened_drop_id) .insert(caller, next_value); } else { - self.minted_per_address_per_drop().insert(caller, 1); + self.minted_per_address_per_drop(opened_drop_id).insert(caller, 1); } } @@ -530,10 +536,21 @@ pub trait ElvenTools { } fn handle_next_index_setup(&self, minted_index_tuple: (usize, u32)) { - self.minted_indexes_total().insert(minted_index_tuple.1); + let is_minted_indexes_total_empty = self.minted_indexes_total().is_empty(); + if is_minted_indexes_total_empty { + self.minted_indexes_total().set(1); + } else { + self.minted_indexes_total().update(|sum| *sum += 1); + } + let drop_amount = self.amount_of_tokens_per_drop().get(); if drop_amount > 0 { - self.minted_indexes_by_drop().insert(minted_index_tuple.1); + let is_minted_indexes_by_drop_empty = self.minted_indexes_by_drop().is_empty(); + if is_minted_indexes_by_drop_empty { + self.minted_indexes_by_drop().set(1); + } else { + self.minted_indexes_by_drop().update(|sum| *sum += 1); + } } let total_tokens_left = self.total_tokens_left().ok().unwrap_or_default(); @@ -640,7 +657,7 @@ pub trait ElvenTools { #[view(getDropTokensLeft)] fn drop_tokens_left(&self) -> SCResult { - let minted_tokens = self.minted_indexes_by_drop().len(); + let minted_tokens = self.minted_indexes_by_drop().get(); let amount_of_tokens = self.amount_of_tokens_per_drop().get(); let left_tokens: u32 = amount_of_tokens - minted_tokens as u32; @@ -649,7 +666,7 @@ pub trait ElvenTools { #[view(getTotalTokensLeft)] fn total_tokens_left(&self) -> SCResult { - let minted_tokens = self.minted_indexes_total().len(); + let minted_tokens = self.minted_indexes_total().get(); let amount_of_tokens = self.amount_of_tokens_total().get(); let left_tokens: u32 = amount_of_tokens - minted_tokens as u32; @@ -658,10 +675,16 @@ pub trait ElvenTools { #[view(getMintedPerAddressPerDrop)] fn get_minted_per_address_per_drop(&self, address: ManagedAddress) -> SCResult { - let minted_per_address_per_drop = self - .minted_per_address_per_drop() - .get(&address) - .unwrap_or_default(); + let minted_per_address_per_drop: u32; + if !self.opened_drop().is_empty() { + let opened_drop_id = self.opened_drop().get(); + minted_per_address_per_drop = self + .minted_per_address_per_drop(opened_drop_id) + .get(&address) + .unwrap_or_default(); + } else { + minted_per_address_per_drop = 0; + } Ok(minted_per_address_per_drop) } @@ -695,7 +718,10 @@ pub trait ElvenTools { fn tokens_limit_per_address_per_drop(&self) -> SingleValueMapper; #[storage_mapper("mintedPerAddressPerDrop")] - fn minted_per_address_per_drop(&self) -> MapMapper; + fn minted_per_address_per_drop(&self, id: u16) -> MapMapper; + + #[storage_mapper("openedDrop")] + fn opened_drop(&self) -> SingleValueMapper; #[storage_mapper("iamgeBaseCid")] fn image_base_cid(&self) -> SingleValueMapper; @@ -710,10 +736,10 @@ pub trait ElvenTools { fn amount_of_tokens_total(&self) -> SingleValueMapper; #[storage_mapper("mintedIndexesTotal")] - fn minted_indexes_total(&self) -> SetMapper; + fn minted_indexes_total(&self) -> SingleValueMapper; #[storage_mapper("mintedIndexesByDrop")] - fn minted_indexes_by_drop(&self) -> SetMapper; + fn minted_indexes_by_drop(&self) -> SingleValueMapper; #[storage_mapper("royalties")] fn royalties(&self) -> SingleValueMapper; diff --git a/wasm/Cargo.lock b/wasm/Cargo.lock index cdfadb9..92ca88e 100644 --- a/wasm/Cargo.lock +++ b/wasm/Cargo.lock @@ -108,14 +108,14 @@ dependencies = [ [[package]] name = "elven-nft-minter" -version = "1.3.0" +version = "1.3.1" dependencies = [ "elrond-wasm", ] [[package]] name = "elven-nft-minter-wasm" -version = "1.3.0" +version = "1.3.1" dependencies = [ "elrond-wasm-node", "elrond-wasm-output", diff --git a/wasm/Cargo.toml b/wasm/Cargo.toml index 42e07dd..b653749 100644 --- a/wasm/Cargo.toml +++ b/wasm/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "elven-nft-minter-wasm" -version = "1.3.0" +version = "1.3.1" authors = ["Julian Ćwirko "] edition = "2018" publish = false