Open taitruong opened 3 months ago
There is a callback bug fix in PR #98 - so this issue should work on this PR branch class_id_fix.
The callback is as follows:
instantiate2
for retrieving addressCLASS_ID_AND_NFT_CONTRACT_INFO
store for addressCLASS_ID_AND_NFT_CONTRACT_INFO
, then it uses instantiate2So for receive callback there are 3 test cases:
CW721_CODE_ID
has changed to another code id in ics721, 3rd NFT transfer should also workFor all 3 test cases, callbacks are ALWAYS executed on the same, escrowed nft contract on target chain!
Receive callback should work on both cases.
cw-ics721
supports NFT transfer forcw721
v16 contracts and higher - up to latest version v18. Rn, e2e tests covers only v18: https://github.com/CosmWasm/cw-nfts/releases/tag/v0.18.0e2e should cover tests for handling different
cw-ics721
creates a new collection (and NFT). For thisCW721_CODE_ID
store is used. Ideally allcw-ics721
contracts are using same version across all chains. But in reality this might not be the case. Like for Stargaze there is a customsg721-base
.Search in go files where
cw721_base_v0.18.0.wasm
is used and uploaded.Check in TestSendBetweenThreeIdenticalChains:
Here it uses always cw721 v18 for transfering to chains
A -> B -> C -> A -> C -> B -> A
.In instantiateCw721() and in instantiateBridge() it always uses cw721 v18.
A test case could be changing this:
TestSendBetweenThreeIdenticalChains
for transferring NFT v16, v17 and v18CW721_CODE_ID
s for `cw-ics721 on chain A, B, and C:sg721-base
using v3.14.0wasm files are store in ./external-wasm, containing:
please note that for SG we also need
sg_ics721.wasm