Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Move to cw721 package #161

Merged
merged 47 commits into from
Jun 27, 2024
Merged
Changes from 1 commit
Commits
Show all changes
47 commits
Select commit Hold shift + click to select a range
2c684b8
rename states: tokens -> nft_info, contract_info -> collection_info
taitruong Feb 27, 2024
c3dc54c
renamed structs and deprecate: TokenInfo -> NftInfo, ContractInfo -> …
taitruong Feb 27, 2024
98b7300
cargo schema
taitruong Feb 27, 2024
5fd2f3b
change storage keys for collection info and nft info, consider in mig…
taitruong Feb 28, 2024
a2b5c12
use PA repo for `cw-ownable`
taitruong Feb 28, 2024
b2f73a0
rename generics and make more readable
taitruong Feb 29, 2024
d46d2b7
CollectionInfoResponse -> CollectionInfo
taitruong Feb 29, 2024
3d101cb
add CollectionInfoExtension with RoyaltyInfo
taitruong Feb 29, 2024
ddc3758
cargo schema
taitruong Feb 29, 2024
18dd4d3
typo
taitruong Feb 29, 2024
917103c
cleanup
taitruong Feb 29, 2024
b3aac9e
rename
taitruong Feb 29, 2024
8d61f85
cargo schema
taitruong Feb 29, 2024
89da1ab
cleanup
taitruong Mar 3, 2024
fcd5159
creator and owner changes:
taitruong Mar 4, 2024
56c6dae
refactor and move key logic to cw721 package:
taitruong Mar 7, 2024
895f462
fix ci
taitruong Mar 7, 2024
920a7d4
cargo fmt
taitruong Mar 7, 2024
641ede9
cargo fmt + clippy
taitruong Mar 7, 2024
0e27df8
cargo fmt
taitruong Mar 7, 2024
8d91900
cargo schema
taitruong Mar 7, 2024
9010cac
cargo clippy
taitruong Mar 7, 2024
bebe8b2
undo: do not rename token keys
taitruong Mar 8, 2024
3d77652
fix unit test
taitruong Mar 8, 2024
6a827a3
remove useless generic `TMetadataResponse`
taitruong Mar 8, 2024
9b8b140
remove response structs to msg.rs
taitruong Mar 8, 2024
ed37215
cargo schema
taitruong Mar 9, 2024
ffa7424
move to dedicated fn
taitruong Mar 9, 2024
5db17ec
docs
taitruong Mar 9, 2024
1e32fac
rename
taitruong Mar 9, 2024
53754d7
cargo clippy
taitruong Apr 25, 2024
dc8a01f
add build script
taitruong Apr 25, 2024
9e06b0b
undo collection info extension and royalty info additions, will be ad…
taitruong Apr 30, 2024
67522f7
cleanup
taitruong May 23, 2024
a5652e2
generate schemas for entry points, cleanup
taitruong Jun 13, 2024
e02c7f9
update rustc 1.65 -> 1.71
taitruong Jun 13, 2024
6b3af84
update cosmwasm version 1.2 -> 1.5, due to rustc compiler issues
taitruong Jun 13, 2024
80a2d17
update optimizer
taitruong Jun 13, 2024
0515aa9
update rustc 1.71 -> 1.78
taitruong Jun 13, 2024
6944bcb
use optimizer
taitruong Jun 13, 2024
f135fe8
formatting
taitruong Jun 13, 2024
61d3693
install rustup first
taitruong Jun 13, 2024
d4ff6e7
set $HOME/.cargo/env
taitruong Jun 13, 2024
e34879f
install libgcc
taitruong Jun 13, 2024
410d11e
install build-base
taitruong Jun 13, 2024
495cccb
cleanup
taitruong Jun 13, 2024
33c7abc
cleanup
taitruong Jun 13, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
fix unit test
taitruong committed Mar 8, 2024
commit 3d77652f783d4100937fd0619e57f45b0742ddfa
66 changes: 22 additions & 44 deletions packages/cw721/src/testing/unit_tests.rs
Original file line number Diff line number Diff line change
@@ -3,16 +3,16 @@ use crate::{
msg::{Cw721ExecuteMsg, Cw721InstantiateMsg},
query::{Cw721Query, MAX_LIMIT},
state::{
token_owner_idx, CollectionInfo, DefaultOptionCollectionInfoExtension,
DefaultOptionMetadataExtension, Metadata, NftInfo, TokenIndexes, CREATOR, MINTER,
CollectionInfo, DefaultOptionCollectionInfoExtension, DefaultOptionMetadataExtension,
Metadata, CREATOR, MINTER,
},
};
use cosmwasm_std::{
testing::{mock_dependencies, mock_env, mock_info},
Addr, Empty, Order, StdResult,
Addr, Empty,
};
use cw2::ContractVersion;
use cw_storage_plus::{IndexedMap, Item, MultiIndex};
use cw_storage_plus::Item;
use unit_tests::{contract::Cw721Contract, multi_tests::CREATOR_ADDR};

use super::*;
@@ -204,15 +204,9 @@ fn test_migrate() {
contract
.query_collection_info(deps.as_ref(), env.clone())
.unwrap_err();
// query on minter and creator store also throws NotFound Error
// - query in new minter and creator ownership store throws NotFound Error (in v16 it was stored outside cw_ownable, in dedicated "minter" store)
MINTER.get_ownership(deps.as_ref().storage).unwrap_err();
CREATOR.get_ownership(deps.as_ref().storage).unwrap_err();
// - no tokens
let all_tokens = contract
.query_all_tokens(deps.as_ref(), env.clone(), None, Some(MAX_LIMIT))
.unwrap();
assert_eq!(all_tokens.tokens.len(), 0);

// assert legacy data before migration:
// - version
let version = cw2::get_contract_version(deps.as_ref().storage)
@@ -225,30 +219,15 @@ fn test_migrate() {
assert_eq!(legacy_minter, "legacy_minter");
// - legacy collection info is set
let legacy_collection_info_store: Item<cw721_016::ContractInfoResponse> = Item::new("nft_info");
let legacy_collection_info = legacy_collection_info_store
.load(deps.as_ref().storage)
.unwrap();
assert_eq!(legacy_collection_info.name, "legacy_name");
assert_eq!(legacy_collection_info.symbol, "legacy_symbol");
// - legacy tokens are set
let indexes = TokenIndexes {
owner: MultiIndex::new(token_owner_idx, "tokens", "tokens__owner"),
};
let legacy_tokens_store: IndexedMap<
&str,
NftInfo<DefaultOptionMetadataExtension>,
TokenIndexes<DefaultOptionMetadataExtension>,
> = IndexedMap::new("tokens", indexes);
let keys = legacy_tokens_store
.keys(deps.as_ref().storage, None, None, Order::Ascending)
.collect::<StdResult<Vec<String>>>()
let all_tokens = contract
.query_all_tokens(deps.as_ref(), env.clone(), None, Some(MAX_LIMIT))
.unwrap();
assert_eq!(keys.len(), 200);
for key in keys {
let legacy_token = legacy_tokens_store
.load(deps.as_ref().storage, &key)
assert_eq!(all_tokens.tokens.len(), 200);
for token_id in 0..200 {
let token = contract
.query_owner_of(deps.as_ref(), env.clone(), token_id.to_string(), false)
.unwrap();
assert_eq!(legacy_token.owner.as_str(), "owner");
assert_eq!(token.owner.as_str(), "owner");
}

Cw721Contract::<
@@ -301,13 +280,13 @@ fn test_migrate() {
name: "legacy_name".to_string(),
symbol: "legacy_symbol".to_string(),
extension: None,
updated_at: env.block.time,
updated_at: env.clone().block.time,
};
assert_eq!(collection_info, legacy_contract_info);

// assert tokens
let all_tokens = contract
.query_all_tokens(deps.as_ref(), env, None, Some(MAX_LIMIT))
.query_all_tokens(deps.as_ref(), env.clone(), None, Some(MAX_LIMIT))
.unwrap();
assert_eq!(all_tokens.tokens.len(), 200);

@@ -321,16 +300,15 @@ fn test_migrate() {
.unwrap();
assert_eq!(legacy_collection_info.name, "legacy_name");
assert_eq!(legacy_collection_info.symbol, "legacy_symbol");
// - tokens
let keys = legacy_tokens_store
.keys(deps.as_ref().storage, None, None, Order::Ascending)
.collect::<StdResult<Vec<String>>>()
// - tokens are unchanged/still exist
let all_tokens = contract
.query_all_tokens(deps.as_ref(), env.clone(), None, Some(MAX_LIMIT))
.unwrap();
assert_eq!(keys.len(), 200);
for key in keys {
let legacy_token = legacy_tokens_store
.load(deps.as_ref().storage, &key)
assert_eq!(all_tokens.tokens.len(), 200);
for token_id in 0..200 {
let token = contract
.query_owner_of(deps.as_ref(), env.clone(), token_id.to_string(), false)
.unwrap();
assert_eq!(legacy_token.owner.as_str(), "owner");
assert_eq!(token.owner.as_str(), "owner");
}
}