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..c08f2f5 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, PSP34Mintable)] #[openbrush::contract] pub mod shiden34 { - use openbrush::{ - contracts::psp34::extensions::{ - enumerable::*, - mintable::*, - metadata::*, - }, - contracts::ownable::*, - traits::{Storage, String}, - }; + 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)] + #[openbrush::modifiers(only_owner)] + fn mint(&mut self, account: AccountId, id: Id) -> Result<(), PSP34Error> { + psp34::InternalImpl::_mint_to(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 +}