From 3379141bc89a6ed99889fe312681c9ad4c0d548e Mon Sep 17 00:00:00 2001 From: Serkan Reis Date: Sat, 2 Sep 2023 09:47:53 +0300 Subject: [PATCH 01/10] Update validate_address() to go a level deeper for admin check --- contracts/sg721-name/src/contract.rs | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/contracts/sg721-name/src/contract.rs b/contracts/sg721-name/src/contract.rs index cafb45a6..37a14664 100644 --- a/contracts/sg721-name/src/contract.rs +++ b/contracts/sg721-name/src/contract.rs @@ -573,8 +573,14 @@ fn validate_address(deps: Deps, sender: &Addr, addr: Addr) -> Result Date: Sun, 3 Sep 2023 13:14:16 +0300 Subject: [PATCH 02/10] Update schema files --- contracts/marketplace/schema/name-marketplace.json | 2 +- contracts/name-minter/schema/name-minter.json | 2 +- contracts/sg721-name/schema/sg721-name.json | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/contracts/marketplace/schema/name-marketplace.json b/contracts/marketplace/schema/name-marketplace.json index 17750162..0b2b8977 100644 --- a/contracts/marketplace/schema/name-marketplace.json +++ b/contracts/marketplace/schema/name-marketplace.json @@ -1,6 +1,6 @@ { "contract_name": "name-marketplace", - "contract_version": "1.2.3", + "contract_version": "1.2.5", "idl_version": "1.0.0", "instantiate": { "$schema": "http://json-schema.org/draft-07/schema#", diff --git a/contracts/name-minter/schema/name-minter.json b/contracts/name-minter/schema/name-minter.json index ab79cf01..2b30d72b 100644 --- a/contracts/name-minter/schema/name-minter.json +++ b/contracts/name-minter/schema/name-minter.json @@ -1,6 +1,6 @@ { "contract_name": "name-minter", - "contract_version": "1.2.3", + "contract_version": "1.2.5", "idl_version": "1.0.0", "instantiate": { "$schema": "http://json-schema.org/draft-07/schema#", diff --git a/contracts/sg721-name/schema/sg721-name.json b/contracts/sg721-name/schema/sg721-name.json index bdb2292d..dafebe81 100644 --- a/contracts/sg721-name/schema/sg721-name.json +++ b/contracts/sg721-name/schema/sg721-name.json @@ -1,6 +1,6 @@ { "contract_name": "sg721-name", - "contract_version": "1.2.3", + "contract_version": "1.2.5", "idl_version": "1.0.0", "instantiate": { "$schema": "http://json-schema.org/draft-07/schema#", From c0226851647d33b148b049bc12be5ed03d509edc Mon Sep 17 00:00:00 2001 From: Serkan Reis Date: Sun, 3 Sep 2023 13:21:21 +0300 Subject: [PATCH 03/10] Update rust version for circleci --- .circleci/config.yml | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index f6fbf8f2..494146f5 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -21,7 +21,7 @@ workflows: jobs: contract_marketplace: docker: - - image: rust:1.64.0 + - image: rust:1.65.0 working_directory: ~/project/contracts/marketplace steps: - checkout: @@ -31,7 +31,7 @@ jobs: command: rustc --version; cargo --version; rustup --version - restore_cache: keys: - - cargocache-marketplace-rust:1.64.0-{{ checksum "~/project/Cargo.lock" }} + - cargocache-marketplace-rust:1.65.0-{{ checksum "~/project/Cargo.lock" }} - run: name: Unit Tests environment: @@ -53,11 +53,11 @@ jobs: paths: - /usr/local/cargo/registry - target - key: cargocache-marketplace-rust:1.64.0-{{ checksum "~/project/Cargo.lock" }} + key: cargocache-marketplace-rust:1.65.0-{{ checksum "~/project/Cargo.lock" }} contract_name-minter: docker: - - image: rust:1.64.0 + - image: rust:1.65.0 working_directory: ~/project/contracts/name-minter steps: - checkout: @@ -67,7 +67,7 @@ jobs: command: rustc --version; cargo --version; rustup --version - restore_cache: keys: - - cargocache-name-minter-rust:1.64.0-{{ checksum "~/project/Cargo.lock" }} + - cargocache-name-minter-rust:1.65.0-{{ checksum "~/project/Cargo.lock" }} - run: name: Unit Tests environment: @@ -89,11 +89,11 @@ jobs: paths: - /usr/local/cargo/registry - target - key: cargocache-name-minter-rust:1.64.0-{{ checksum "~/project/Cargo.lock" }} + key: cargocache-name-minter-rust:1.65.0-{{ checksum "~/project/Cargo.lock" }} contract_sg721-name: docker: - - image: rust:1.64.0 + - image: rust:1.65.0 working_directory: ~/project/contracts/sg721-name steps: - checkout: @@ -103,7 +103,7 @@ jobs: command: rustc --version; cargo --version; rustup --version - restore_cache: keys: - - cargocache-sg721-name-rust:1.64.0-{{ checksum "~/project/Cargo.lock" }} + - cargocache-sg721-name-rust:1.65.0-{{ checksum "~/project/Cargo.lock" }} - run: name: Unit Tests environment: @@ -125,11 +125,11 @@ jobs: paths: - /usr/local/cargo/registry - target - key: cargocache-sg721-name-rust:1.64.0-{{ checksum "~/project/Cargo.lock" }} + key: cargocache-sg721-name-rust:1.65.0-{{ checksum "~/project/Cargo.lock" }} package_sg-name: docker: - - image: rust:1.64.0 + - image: rust:1.65.0 working_directory: ~/project/package/sg-name steps: - checkout: @@ -139,7 +139,7 @@ jobs: command: rustc --version; cargo --version; rustup --version - restore_cache: keys: - - cargocache-sg-name-rust:1.64.0-{{ checksum "~/project/Cargo.lock" }} + - cargocache-sg-name-rust:1.65.0-{{ checksum "~/project/Cargo.lock" }} - run: name: Unit Tests environment: @@ -149,11 +149,11 @@ jobs: paths: - /usr/local/cargo/registry - target - key: cargocache-sg-name-rust:1.64.0-{{ checksum "~/project/Cargo.lock" }} + key: cargocache-sg-name-rust:1.65.0-{{ checksum "~/project/Cargo.lock" }} lint: docker: - - image: rust:1.64.0 + - image: rust:1.65.0 steps: - checkout - run: @@ -161,7 +161,7 @@ jobs: command: rustc --version; cargo --version; rustup --version; rustup target list --installed - restore_cache: keys: - - cargocache-v2-lint-rust:1.64.0-{{ checksum "Cargo.lock" }} + - cargocache-v2-lint-rust:1.65.0-{{ checksum "Cargo.lock" }} - run: name: Add rustfmt component command: rustup component add rustfmt @@ -180,7 +180,7 @@ jobs: - target/debug/.fingerprint - target/debug/build - target/debug/deps - key: cargocache-v2-lint-rust:1.64.0-{{ checksum "Cargo.lock" }} + key: cargocache-v2-lint-rust:1.65.0-{{ checksum "Cargo.lock" }} # This runs one time on the top level to ensure all contracts compile properly into wasm. # We don't run the wasm build per contract build, and then reuse a lot of the same dependencies, so this speeds up CI time @@ -188,7 +188,7 @@ jobs: # We also sanity-check the resultant wasm files. wasm-build: docker: - - image: rust:1.64.0 + - image: rust:1.65.0 steps: - checkout: path: ~/project @@ -197,7 +197,7 @@ jobs: command: rustc --version; cargo --version; rustup --version - restore_cache: keys: - - cargocache-wasm-rust:1.64.0-{{ checksum "~/project/Cargo.lock" }} + - cargocache-wasm-rust:1.65.0-{{ checksum "~/project/Cargo.lock" }} - run: name: Add wasm32 target command: rustup target add wasm32-unknown-unknown @@ -217,7 +217,7 @@ jobs: paths: - /usr/local/cargo/registry - target - key: cargocache-wasm-rust:1.64.0-{{ checksum "~/project/Cargo.lock" }} + key: cargocache-wasm-rust:1.65.0-{{ checksum "~/project/Cargo.lock" }} - run: name: Check wasm contracts command: | From efa47be47b7c667df035b67acf780a6a0e19d717 Mon Sep 17 00:00:00 2001 From: Serkan Reis Date: Sun, 3 Sep 2023 20:13:01 +0300 Subject: [PATCH 04/10] Test name association with a contract that has no admin --- .../name-minter/src/integration_tests.rs | 77 +++++++++++++++++++ 1 file changed, 77 insertions(+) diff --git a/contracts/name-minter/src/integration_tests.rs b/contracts/name-minter/src/integration_tests.rs index 83893d24..4286fc57 100644 --- a/contracts/name-minter/src/integration_tests.rs +++ b/contracts/name-minter/src/integration_tests.rs @@ -2019,4 +2019,81 @@ mod eoa_owner { let owner = owner_of(&app, NAME.to_string()); assert_eq!(owner, USER.to_string()); } + + #[test] + fn associate_with_a_contract_with_no_admin() { + let mut app = instantiate_contracts( + None, + Some(ADMIN.to_string()), + Some(PUBLIC_MINT_START_TIME_IN_SECONDS.minus_seconds(1)), + ); + + let nft_id = app.store_code(contract_nft()); + + // For the purposes of this test, a collection contract with no admin needs to be instantiated (contract_with_no_admin) + // This contract needs to have a creator that is itself a contract and this creator contract should have an admin (USER). + // The admin (USER) of the creator contract will mint a name and associate the name with the collection contract that doesn't have an admin successfully. + + // Instantiating the creator contract with an admin (USER) + let creator_init_msg = Sg721InstantiateMsg { + name: "NFT".to_string(), + symbol: "NFT".to_string(), + minter: Addr::unchecked(MINTER).to_string(), + collection_info: CollectionInfo { + creator: USER.to_string(), + description: "Stargaze Names".to_string(), + image: "ipfs://example.com".to_string(), + external_link: None, + explicit_content: None, + start_trading_time: None, + royalty_info: None, + }, + }; + let creator_addr = app + .instantiate_contract( + nft_id, + Addr::unchecked(MINTER), + &creator_init_msg, + &[], + "NFT", + Some(USER.to_string()), + ) + .unwrap(); + + // The creator contract instantiates the collection contract with no admin + let init_msg = Sg721InstantiateMsg { + name: "NFT".to_string(), + symbol: "NFT".to_string(), + minter: creator_addr.to_string(), + collection_info: CollectionInfo { + creator: USER.to_string(), + description: "Stargaze Names".to_string(), + image: "ipfs://example.com".to_string(), + external_link: None, + explicit_content: None, + start_trading_time: None, + royalty_info: None, + }, + }; + + let collection_with_no_admin_addr = app + .instantiate_contract(nft_id, creator_addr.clone(), &init_msg, &[], "NFT", None) + .unwrap(); + + // USER mints a name + mint_and_list(&mut app, NAME, USER, None).unwrap(); + + // USER associates the name with the collection contract that doesn't have an admin + let msg = SgNameExecuteMsg::AssociateAddress { + name: NAME.to_string(), + address: Some(collection_with_no_admin_addr.to_string()), + }; + let res = app.execute_contract( + Addr::unchecked(USER), + Addr::unchecked(COLLECTION), + &msg, + &[], + ); + assert!(res.is_ok()); + } } From 607de0ca1d632a22bba6a9374215b14ff65cdc16 Mon Sep 17 00:00:00 2001 From: Serkan Reis Date: Sun, 3 Sep 2023 20:17:43 +0300 Subject: [PATCH 05/10] Make linter happy --- contracts/name-minter/src/integration_tests.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contracts/name-minter/src/integration_tests.rs b/contracts/name-minter/src/integration_tests.rs index 4286fc57..b77e545a 100644 --- a/contracts/name-minter/src/integration_tests.rs +++ b/contracts/name-minter/src/integration_tests.rs @@ -2077,7 +2077,7 @@ mod eoa_owner { }; let collection_with_no_admin_addr = app - .instantiate_contract(nft_id, creator_addr.clone(), &init_msg, &[], "NFT", None) + .instantiate_contract(nft_id, creator_addr, &init_msg, &[], "NFT", None) .unwrap(); // USER mints a name From 573a21c1c32d0d7022c5ef1d93698e9841e37748 Mon Sep 17 00:00:00 2001 From: Serkan Reis Date: Sun, 3 Sep 2023 21:03:38 +0300 Subject: [PATCH 06/10] Test fail scenario for associating a name with a contract --- .../name-minter/src/integration_tests.rs | 88 ++++++++++++++++++- 1 file changed, 86 insertions(+), 2 deletions(-) diff --git a/contracts/name-minter/src/integration_tests.rs b/contracts/name-minter/src/integration_tests.rs index b77e545a..73bc5ffe 100644 --- a/contracts/name-minter/src/integration_tests.rs +++ b/contracts/name-minter/src/integration_tests.rs @@ -67,6 +67,7 @@ pub fn contract_nft() -> Box> { const USER: &str = "user"; const USER2: &str = "user2"; const USER3: &str = "user3"; +const USER4: &str = "user4"; const BIDDER: &str = "bidder"; const BIDDER2: &str = "bidder2"; const ADMIN: &str = "admin"; @@ -182,6 +183,7 @@ fn instantiate_contracts( "addr0001".to_string(), "addr0002".to_string(), USER.to_string(), + USER4.to_string(), ADMIN2.to_string(), ], mint_discount_bps: None, @@ -816,7 +818,7 @@ mod admin { let msg = WhitelistQueryMsg::AddressCount {}; let count: u64 = app.wrap().query_wasm_smart(WHITELIST, &msg).unwrap(); - assert_eq!(count, 4); + assert_eq!(count, 5); let msg = WhitelistQueryMsg::IncludesAddress { address: USER.to_string(), @@ -1828,7 +1830,7 @@ mod whitelist { let msg = WhitelistQueryMsg::AddressCount {}; let wl_addr_count: u64 = app.wrap().query_wasm_smart(WHITELIST, &msg).unwrap(); - assert_eq!(wl_addr_count, 4); + assert_eq!(wl_addr_count, 5); let msg = WhitelistExecuteMsg::AddAddresses { addresses: vec![USER3.to_string()], @@ -2096,4 +2098,86 @@ mod eoa_owner { ); assert!(res.is_ok()); } + #[test] + fn associate_with_a_contract_with_no_admin_fail() { + let mut app = instantiate_contracts( + None, + Some(ADMIN.to_string()), + Some(PUBLIC_MINT_START_TIME_IN_SECONDS.minus_seconds(1)), + ); + + let nft_id = app.store_code(contract_nft()); + + // For the purposes of this test, a collection contract with no admin needs to be instantiated (contract_with_no_admin) + // This contract needs to have a creator that is itself a contract and this creator contract should have an admin (USER). + // An address other than the admin (USER) of the creator contract will mint a name, try to associate the name with the collection contract that doesn't have an admin and fail. + + // Instantiating the creator contract with an admin (USER) + let creator_init_msg = Sg721InstantiateMsg { + name: "NFT".to_string(), + symbol: "NFT".to_string(), + minter: Addr::unchecked(MINTER).to_string(), + collection_info: CollectionInfo { + creator: USER.to_string(), + description: "Stargaze Names".to_string(), + image: "ipfs://example.com".to_string(), + external_link: None, + explicit_content: None, + start_trading_time: None, + royalty_info: None, + }, + }; + let creator_addr = app + .instantiate_contract( + nft_id, + Addr::unchecked(MINTER), + &creator_init_msg, + &[], + "NFT", + Some(USER.to_string()), + ) + .unwrap(); + + // The creator contract instantiates the collection contract with no admin + let init_msg = Sg721InstantiateMsg { + name: "NFT".to_string(), + symbol: "NFT".to_string(), + minter: creator_addr.to_string(), + collection_info: CollectionInfo { + creator: USER.to_string(), + description: "Stargaze Names".to_string(), + image: "ipfs://example.com".to_string(), + external_link: None, + explicit_content: None, + start_trading_time: None, + royalty_info: None, + }, + }; + + let collection_with_no_admin_addr = app + .instantiate_contract(nft_id, creator_addr, &init_msg, &[], "NFT", None) + .unwrap(); + + // USER4 mints a name + mint_and_list(&mut app, NAME, USER4, None).unwrap(); + + // USER4 tries to associate the name with the collection contract that doesn't have an admin + let msg = SgNameExecuteMsg::AssociateAddress { + name: NAME.to_string(), + address: Some(collection_with_no_admin_addr.to_string()), + }; + let res = app + .execute_contract( + Addr::unchecked(USER4), + Addr::unchecked(COLLECTION), + &msg, + &[], + ) + .map_err(|e| e.downcast::().unwrap()) + .unwrap_err(); + assert!(matches!( + res, + sg721_name::ContractError::UnauthorizedCreatorOrAdmin {} + )) + } } From 8ee2b4c6afff636441748c867d6bb0a6c8ad8dbd Mon Sep 17 00:00:00 2001 From: Serkan Reis Date: Wed, 20 Sep 2023 19:23:39 +0300 Subject: [PATCH 07/10] Update address validation logic --- contracts/sg721-name/src/contract.rs | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/contracts/sg721-name/src/contract.rs b/contracts/sg721-name/src/contract.rs index 37a14664..0b032857 100644 --- a/contracts/sg721-name/src/contract.rs +++ b/contracts/sg721-name/src/contract.rs @@ -573,15 +573,18 @@ fn validate_address(deps: Deps, sender: &Addr, addr: Addr) -> Result Date: Wed, 20 Sep 2023 19:53:51 +0300 Subject: [PATCH 08/10] Improve patch coverage of tests --- .../name-minter/src/integration_tests.rs | 61 ++++++++++++++++++- 1 file changed, 60 insertions(+), 1 deletion(-) diff --git a/contracts/name-minter/src/integration_tests.rs b/contracts/name-minter/src/integration_tests.rs index 73bc5ffe..97e64a27 100644 --- a/contracts/name-minter/src/integration_tests.rs +++ b/contracts/name-minter/src/integration_tests.rs @@ -1955,7 +1955,7 @@ mod public_start_time { } } -mod eoa_owner { +mod associate_address { use super::*; use collection::transfer; @@ -2180,4 +2180,63 @@ mod eoa_owner { sg721_name::ContractError::UnauthorizedCreatorOrAdmin {} )) } + + #[test] + fn associate_with_a_contract_with_an_admin_fail() { + let mut app = instantiate_contracts( + None, + Some(ADMIN.to_string()), + Some(PUBLIC_MINT_START_TIME_IN_SECONDS.minus_seconds(1)), + ); + + let nft_id = app.store_code(contract_nft()); + + // Instantiating the creator contract with an admin (USER) + let creator_init_msg = Sg721InstantiateMsg { + name: "NFT".to_string(), + symbol: "NFT".to_string(), + minter: Addr::unchecked(MINTER).to_string(), + collection_info: CollectionInfo { + creator: USER.to_string(), + description: "Stargaze Names".to_string(), + image: "ipfs://example.com".to_string(), + external_link: None, + explicit_content: None, + start_trading_time: None, + royalty_info: None, + }, + }; + let contract_with_an_admin = app + .instantiate_contract( + nft_id, + Addr::unchecked(MINTER), + &creator_init_msg, + &[], + "NFT", + Some(USER.to_string()), + ) + .unwrap(); + + // USER4 mints a name + mint_and_list(&mut app, NAME, USER4, None).unwrap(); + + // USER4 tries to associate the name with the collection contract that has an admin (USER) + let msg = SgNameExecuteMsg::AssociateAddress { + name: NAME.to_string(), + address: Some(contract_with_an_admin.to_string()), + }; + let res = app + .execute_contract( + Addr::unchecked(USER4), + Addr::unchecked(COLLECTION), + &msg, + &[], + ) + .map_err(|e| e.downcast::().unwrap()) + .unwrap_err(); + assert!(matches!( + res, + sg721_name::ContractError::UnauthorizedCreatorOrAdmin {} + )) + } } From 7cc0f8a956b8bb5d2cdd58ba31131e656beb5721 Mon Sep 17 00:00:00 2001 From: Serkan Reis Date: Wed, 20 Sep 2023 20:16:28 +0300 Subject: [PATCH 09/10] Make use of ensure in address validation --- contracts/sg721-name/src/contract.rs | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/contracts/sg721-name/src/contract.rs b/contracts/sg721-name/src/contract.rs index 0b032857..9bed45b7 100644 --- a/contracts/sg721-name/src/contract.rs +++ b/contracts/sg721-name/src/contract.rs @@ -4,7 +4,7 @@ use crate::{ }; use cosmwasm_std::{ - to_binary, Addr, Binary, ContractInfoResponse, Deps, DepsMut, Env, Event, MessageInfo, + ensure, to_binary, Addr, Binary, ContractInfoResponse, Deps, DepsMut, Env, Event, MessageInfo, StdError, StdResult, WasmMsg, }; @@ -575,9 +575,10 @@ fn validate_address(deps: Deps, sender: &Addr, addr: Addr) -> Result Date: Thu, 21 Sep 2023 10:36:38 +0300 Subject: [PATCH 10/10] Bump version --- Cargo.lock | 18 +++++++++--------- Cargo.toml | 2 +- .../marketplace/schema/name-marketplace.json | 2 +- contracts/name-minter/schema/name-minter.json | 2 +- contracts/sg721-name/schema/sg721-name.json | 2 +- 5 files changed, 13 insertions(+), 13 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index a86f7821..2e3b77bd 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -531,7 +531,7 @@ checksum = "a3e378b66a060d48947b590737b30a1be76706c8dd7b8ba0f2fe3989c68a853f" [[package]] name = "name-marketplace" -version = "1.2.5" +version = "1.2.6" dependencies = [ "cosmwasm-schema", "cosmwasm-std", @@ -557,7 +557,7 @@ dependencies = [ [[package]] name = "name-minter" -version = "1.2.5" +version = "1.2.6" dependencies = [ "anyhow", "cosmwasm-schema", @@ -811,7 +811,7 @@ dependencies = [ [[package]] name = "sg-name" -version = "1.2.5" +version = "1.2.6" dependencies = [ "cosmwasm-schema", "cosmwasm-std", @@ -821,7 +821,7 @@ dependencies = [ [[package]] name = "sg-name-common" -version = "1.2.5" +version = "1.2.6" dependencies = [ "cosmwasm-schema", "cosmwasm-std", @@ -833,7 +833,7 @@ dependencies = [ [[package]] name = "sg-name-market" -version = "1.2.5" +version = "1.2.6" dependencies = [ "cosmwasm-schema", "cosmwasm-std", @@ -843,7 +843,7 @@ dependencies = [ [[package]] name = "sg-name-minter" -version = "1.2.5" +version = "1.2.6" dependencies = [ "cosmwasm-schema", "cosmwasm-std", @@ -869,7 +869,7 @@ dependencies = [ [[package]] name = "sg-whitelist-basic" -version = "1.2.5" +version = "1.2.6" dependencies = [ "cosmwasm-schema", "cosmwasm-std", @@ -926,7 +926,7 @@ dependencies = [ [[package]] name = "sg721-name" -version = "1.2.5" +version = "1.2.6" dependencies = [ "cosmwasm-schema", "cosmwasm-std", @@ -1130,7 +1130,7 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "whitelist-updatable" -version = "1.2.5" +version = "1.2.6" dependencies = [ "cosmwasm-schema", "cosmwasm-std", diff --git a/Cargo.toml b/Cargo.toml index 03ab2c1e..9c490453 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -3,7 +3,7 @@ members = ["packages/*", "contracts/*"] resolver = "2" [workspace.package] -version = "1.2.5" +version = "1.2.6" edition = "2021" homepage = "https://stargaze.zone" repository = "https://github.com/public-awesome/names" diff --git a/contracts/marketplace/schema/name-marketplace.json b/contracts/marketplace/schema/name-marketplace.json index 0b2b8977..36187503 100644 --- a/contracts/marketplace/schema/name-marketplace.json +++ b/contracts/marketplace/schema/name-marketplace.json @@ -1,6 +1,6 @@ { "contract_name": "name-marketplace", - "contract_version": "1.2.5", + "contract_version": "1.2.6", "idl_version": "1.0.0", "instantiate": { "$schema": "http://json-schema.org/draft-07/schema#", diff --git a/contracts/name-minter/schema/name-minter.json b/contracts/name-minter/schema/name-minter.json index 2b30d72b..717aba04 100644 --- a/contracts/name-minter/schema/name-minter.json +++ b/contracts/name-minter/schema/name-minter.json @@ -1,6 +1,6 @@ { "contract_name": "name-minter", - "contract_version": "1.2.5", + "contract_version": "1.2.6", "idl_version": "1.0.0", "instantiate": { "$schema": "http://json-schema.org/draft-07/schema#", diff --git a/contracts/sg721-name/schema/sg721-name.json b/contracts/sg721-name/schema/sg721-name.json index dafebe81..ae51a73e 100644 --- a/contracts/sg721-name/schema/sg721-name.json +++ b/contracts/sg721-name/schema/sg721-name.json @@ -1,6 +1,6 @@ { "contract_name": "sg721-name", - "contract_version": "1.2.5", + "contract_version": "1.2.6", "idl_version": "1.0.0", "instantiate": { "$schema": "http://json-schema.org/draft-07/schema#",