Skip to content

Commit

Permalink
Merge pull request #37 from juliancwirko/release/1.4.2
Browse files Browse the repository at this point in the history
v1.4.2
  • Loading branch information
juliancwirko authored Feb 17, 2022
2 parents 69b9b2d + bf2de3a commit 99d26bc
Show file tree
Hide file tree
Showing 10 changed files with 47 additions and 32 deletions.
3 changes: 3 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
### [1.4.2](https://github.com/juliancwirko/elven-nft-minter-sc/releases/tag/v1.4.2) (2022-02-17)
- fixed bug related to the limits per address - u32 underflow in one case

### [1.4.1](https://github.com/juliancwirko/elven-nft-minter-sc/releases/tag/v1.4.1) (2022-02-14)
- fix populate indexes after changes in the Elrond's architecture, check out: [#34](https://github.com/juliancwirko/elven-nft-minter-sc/issues/34) for more details. It results in more transactions that have to be done. But for now, it is necessary.

Expand Down
2 changes: 1 addition & 1 deletion Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "elven-nft-minter"
version = "1.4.1"
version = "1.4.2"
authors = ["Julian Ćwirko <julian.cwirko@gmail.com>"]
edition = "2018"
publish = false
Expand Down
4 changes: 2 additions & 2 deletions meta/Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion meta/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "elven-nft-minter-meta"
version = "1.4.1"
version = "1.4.2"
authors = ["Julian Ćwirko <julian.cwirko@gmail.com>"]
edition = "2018"
publish = false
Expand Down
2 changes: 1 addition & 1 deletion output/elven-nft-minter.abi.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
},
"contractCrate": {
"name": "elven-nft-minter",
"version": "1.4.1"
"version": "1.4.2"
},
"framework": {
"name": "elrond-wasm",
Expand Down
Binary file modified output/elven-nft-minter.wasm
Binary file not shown.
58 changes: 35 additions & 23 deletions src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -44,14 +44,16 @@ pub trait ElvenTools {

self.image_base_cid().set_if_empty(&image_base_cid);
self.metadata_base_cid().set_if_empty(&metadata_base_cid);
self.amount_of_tokens_total().set_if_empty(&amount_of_tokens);
self.amount_of_tokens_total()
.set_if_empty(&amount_of_tokens);
self.tokens_limit_per_address_total()
.set_if_empty(&tokens_limit_per_address);
self.provenance_hash()
.set_if_empty(&provenance_hash.into_option().unwrap_or_default());
self.royalties().set_if_empty(&royalties);
self.selling_price().set_if_empty(&selling_price);
self.tags().set_if_empty(&tags.into_option().unwrap_or_default());
self.tags()
.set_if_empty(&tags.into_option().unwrap_or_default());
self.file_extension().set_if_empty(
&file_extension
.into_option()
Expand Down Expand Up @@ -304,25 +306,25 @@ pub trait ElvenTools {
#[only_owner]
#[endpoint(enableAllowlist)]
fn enable_allowlist(&self) -> SCResult<()> {
self.is_allowlist_enabled().set(true);
self.is_allowlist_enabled().set(true);

Ok(())
Ok(())
}

#[only_owner]
#[endpoint(disableAllowlist)]
fn disable_allowlist(&self) -> SCResult<()> {
self.is_allowlist_enabled().set(false);
self.is_allowlist_enabled().set(false);

Ok(())
Ok(())
}

#[only_owner]
#[endpoint(populateAllowlist)]
fn populate_allowlist(&self, addresses: ManagedVec<ManagedAddress>) -> SCResult<()> {
self.allowlist().extend(&addresses);
self.allowlist().extend(&addresses);

Ok(())
Ok(())
}

// Main mint function - takes the payment sum for all tokens to mint.
Expand All @@ -337,9 +339,12 @@ pub trait ElvenTools {

let is_allowlist_enabled = self.is_allowlist_enabled().get();
if is_allowlist_enabled {
require!(self.allowlist().contains(&caller), "The allowlist is enabled. Only eligible addresses can mint!");
require!(
self.allowlist().contains(&caller),
"The allowlist is enabled. Only eligible addresses can mint!"
);
}

require!(
amount_of_tokens > 0,
"The number of tokens provided can't be less than 1!"
Expand Down Expand Up @@ -374,10 +379,16 @@ pub trait ElvenTools {
let minted_per_address = self.minted_per_address_total(&caller).get();
let tokens_limit_per_address = self.tokens_limit_per_address_total().get();

let tokens_left_to_mint = tokens_limit_per_address - minted_per_address;
let tokens_left_to_mint: u32;

if tokens_limit_per_address < minted_per_address {
tokens_left_to_mint = 0;
} else {
tokens_left_to_mint = tokens_limit_per_address - minted_per_address;
}

require!(
tokens_left_to_mint >= amount_of_tokens,
tokens_left_to_mint > 0 && tokens_left_to_mint >= amount_of_tokens,
"You can't mint such an amount of tokens. Check the limits by one address!"
);

Expand All @@ -390,11 +401,17 @@ pub trait ElvenTools {
.unwrap_or_default();
let tokens_limit_per_address_per_drop = self.tokens_limit_per_address_per_drop().get();

let tokens_left_to_mint_per_drop =
tokens_limit_per_address_per_drop - minted_per_address_per_drop;
let tokens_left_to_mint_per_drop;

if tokens_limit_per_address_per_drop < minted_per_address_per_drop {
tokens_left_to_mint_per_drop = 0;
} else {
tokens_left_to_mint_per_drop =
tokens_limit_per_address_per_drop - minted_per_address_per_drop;
}

require!(
tokens_left_to_mint_per_drop >= amount_of_tokens,
tokens_left_to_mint_per_drop > 0 && tokens_left_to_mint_per_drop >= amount_of_tokens,
"You can't mint such an amount of tokens. Check the limits by one address! You have to fit in limits with the whole amount."
);
}
Expand Down Expand Up @@ -463,13 +480,8 @@ pub trait ElvenTools {
receiver = &giveaway_address;
}

self.send().direct(
&receiver,
&token,
nonce,
&BigUint::from(NFT_AMOUNT),
&[],
);
self.send()
.direct(&receiver, &token, nonce, &BigUint::from(NFT_AMOUNT), &[]);

if payment_amount > 0 {
self.minted_per_address_total(&caller)
Expand Down Expand Up @@ -676,7 +688,7 @@ pub trait ElvenTools {
tokens_left = self.total_tokens_left().ok().unwrap_or_default();
}

if tokens_left <= 0 {
if tokens_left == 0 {
self.paused().set(&paused);
}

Expand Down
4 changes: 2 additions & 2 deletions wasm/Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion wasm/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "elven-nft-minter-wasm"
version = "1.4.1"
version = "1.4.2"
authors = ["Julian Ćwirko <julian.cwirko@gmail.com>"]
edition = "2018"
publish = false
Expand Down

0 comments on commit 99d26bc

Please sign in to comment.