From 45453d59731dffdf1efd042fc3e5b0f5c799369f Mon Sep 17 00:00:00 2001 From: Bobo Date: Thu, 27 Jul 2023 13:46:31 +0200 Subject: [PATCH 1/4] Uplift to latest ink! and Openbrush --- contracts/shiden34/Cargo.toml | 15 ++------ contracts/shiden34/lib.rs | 69 ++++++++++++++++------------------- 2 files changed, 36 insertions(+), 48 deletions(-) diff --git a/contracts/shiden34/Cargo.toml b/contracts/shiden34/Cargo.toml index ccb1477..394e4da 100644 --- a/contracts/shiden34/Cargo.toml +++ b/contracts/shiden34/Cargo.toml @@ -1,24 +1,17 @@ [package] name = "shiden34" -version = "3.0.0" +version = "3.1.0" authors = ["Astar builder"] edition = "2021" [dependencies] -ink = { version = "~4.0.0", default-features = false} - +ink = { version = "4.2.1", default-features = false } scale = { package = "parity-scale-codec", version = "3", default-features = false, features = ["derive"] } -scale-info = { version = "2.3", default-features = false, features = ["derive"], optional = true } - -openbrush = { tag = "3.0.0", git = "https://github.com/727-Ventures/openbrush-contracts", default-features = false, features = ["psp34", "ownable"] } +scale-info = { version = "2.6", default-features = false, features = ["derive"], optional = true } +openbrush = { tag = "v4.0.0-beta", git = "https://github.com/Brushfam/openbrush-contracts", default-features = false, features = ["psp34", "ownable"] } [lib] -name = "shiden34" path = "lib.rs" -crate-type = [ - # Used for normal contract Wasm blobs. - "cdylib", -] [features] default = ["std"] diff --git a/contracts/shiden34/lib.rs b/contracts/shiden34/lib.rs index 498b31c..9ede400 100644 --- a/contracts/shiden34/lib.rs +++ b/contracts/shiden34/lib.rs @@ -1,55 +1,50 @@ -#![cfg_attr(not(feature = "std"), no_std)] -#![feature(min_specialization)] +#![cfg_attr(not(feature = "std"), no_std, no_main)] +#[openbrush::implementation(PSP34, Ownable, PSP34Enumerable, PSP34Metadata)] #[openbrush::contract] pub mod shiden34 { - use openbrush::{ - contracts::psp34::extensions::{ - enumerable::*, - mintable::*, - metadata::*, - }, - contracts::ownable::*, - traits::{Storage, String}, - }; + use openbrush::contracts::traits::psp34::extensions::mintable::*; + use openbrush::traits::Storage; #[ink(storage)] #[derive(Default, Storage)] pub struct Shiden34 { #[storage_field] - psp34: psp34::Data, - #[storage_field] - ownable: ownable::Data, + psp34: psp34::Data, #[storage_field] - metadata: metadata::Data, + ownable: ownable::Data, + #[storage_field] + metadata: metadata::Data, + #[storage_field] + enumerable: enumerable::Data, } - impl PSP34 for Shiden34 {} - impl Ownable for Shiden34 {} - impl PSP34Mintable for Shiden34 { - #[ink(message)] - #[openbrush::modifiers(only_owner)] - fn mint( - &mut self, - account: AccountId, - id: Id - ) -> Result<(), PSP34Error> { - self._mint_to(account, id) - } + #[overrider(PSP34Mintable)] + fn mint(&mut self, account: AccountId, id: Id) -> Result<(), PSP34Error> { + psp34::InternalImpl::_mint_to(&mut self, account, id) } - impl PSP34Enumerable for Shiden34 {} - impl PSP34Metadata for Shiden34 {} impl Shiden34 { #[ink(constructor)] pub fn new() -> Self { - let mut instance = Self::default(); - instance._init_with_owner(instance.env().caller()); - instance._mint_to(instance.env().caller(), Id::U8(1)).expect("Can't mint"); - let collection_id = instance.collection_id(); - instance._set_attribute(collection_id.clone(), String::from("name"), String::from("Shiden34")); - instance._set_attribute(collection_id, String::from("symbol"), String::from("SH34")); - instance + let mut _instance = Self::default(); + ownable::Internal::_init_with_owner(&mut _instance, Self::env().caller()); + psp34::Internal::_mint_to(&mut _instance, Self::env().caller(), Id::U8(1)) + .expect("Can mint"); + let collection_id = psp34::PSP34Impl::collection_id(&_instance); + metadata::Internal::_set_attribute( + &mut _instance, + collection_id.clone(), + String::from("name"), + String::from("Shiden34"), + ); + metadata::Internal::_set_attribute( + &mut _instance, + collection_id, + String::from("symbol"), + String::from("SH34"), + ); + _instance } } -} \ No newline at end of file +} From 242626e9791a4413bef37f28acf2e063e65d230d Mon Sep 17 00:00:00 2001 From: Bobo Date: Thu, 27 Jul 2023 13:48:18 +0200 Subject: [PATCH 2/4] Added a missing attribute --- contracts/shiden34/lib.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/contracts/shiden34/lib.rs b/contracts/shiden34/lib.rs index 9ede400..75b1b89 100644 --- a/contracts/shiden34/lib.rs +++ b/contracts/shiden34/lib.rs @@ -20,6 +20,7 @@ pub mod shiden34 { } #[overrider(PSP34Mintable)] + #[openbrush::modifiers(only_owner)] fn mint(&mut self, account: AccountId, id: Id) -> Result<(), PSP34Error> { psp34::InternalImpl::_mint_to(&mut self, account, id) } From b3c35526bbcc330503e4bd9d5b61c9cb8966e4e5 Mon Sep 17 00:00:00 2001 From: Bobo Date: Thu, 27 Jul 2023 14:26:56 +0200 Subject: [PATCH 3/4] Bugfix --- contracts/shiden34/lib.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/contracts/shiden34/lib.rs b/contracts/shiden34/lib.rs index 75b1b89..106139c 100644 --- a/contracts/shiden34/lib.rs +++ b/contracts/shiden34/lib.rs @@ -1,6 +1,6 @@ #![cfg_attr(not(feature = "std"), no_std, no_main)] -#[openbrush::implementation(PSP34, Ownable, PSP34Enumerable, PSP34Metadata)] +#[openbrush::implementation(PSP34, Ownable, PSP34Enumerable, PSP34Metadata, PSP34Mintable)] #[openbrush::contract] pub mod shiden34 { use openbrush::contracts::traits::psp34::extensions::mintable::*; @@ -19,7 +19,7 @@ pub mod shiden34 { enumerable: enumerable::Data, } - #[overrider(PSP34Mintable)] + #[overrider(PSP34MintableImpl)] #[openbrush::modifiers(only_owner)] fn mint(&mut self, account: AccountId, id: Id) -> Result<(), PSP34Error> { psp34::InternalImpl::_mint_to(&mut self, account, id) From d4c0e0731a0f3d3d41065c9329ea6b761455e0fb Mon Sep 17 00:00:00 2001 From: Bobo Date: Fri, 28 Jul 2023 11:58:56 +0200 Subject: [PATCH 4/4] Proper mint override --- contracts/shiden34/lib.rs | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/contracts/shiden34/lib.rs b/contracts/shiden34/lib.rs index 106139c..c08f2f5 100644 --- a/contracts/shiden34/lib.rs +++ b/contracts/shiden34/lib.rs @@ -3,7 +3,6 @@ #[openbrush::implementation(PSP34, Ownable, PSP34Enumerable, PSP34Metadata, PSP34Mintable)] #[openbrush::contract] pub mod shiden34 { - use openbrush::contracts::traits::psp34::extensions::mintable::*; use openbrush::traits::Storage; #[ink(storage)] @@ -19,10 +18,10 @@ pub mod shiden34 { enumerable: enumerable::Data, } - #[overrider(PSP34MintableImpl)] + #[overrider(PSP34Mintable)] #[openbrush::modifiers(only_owner)] fn mint(&mut self, account: AccountId, id: Id) -> Result<(), PSP34Error> { - psp34::InternalImpl::_mint_to(&mut self, account, id) + psp34::InternalImpl::_mint_to(self, account, id) } impl Shiden34 {