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

Add NFT serialization #20

Merged
merged 25 commits into from
Apr 3, 2024
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
aeded2f
add Serialize util contract to support URL encoding serialized metadata
sisyphusSmiling Mar 7, 2024
f07dd22
update Serialize util contract
sisyphusSmiling Mar 8, 2024
324ddb0
add Serialize test cases
sisyphusSmiling Mar 15, 2024
8878a76
fix array serialization
sisyphusSmiling Mar 15, 2024
98e50a9
update ExampleNFT Traits for serialization testability
sisyphusSmiling Mar 15, 2024
487fce7
update serialization utils & tests
sisyphusSmiling Mar 18, 2024
001674b
update foundry ci workflow
sisyphusSmiling Mar 18, 2024
d08ff74
add Cadence tests to CI workflow
sisyphusSmiling Mar 18, 2024
59be19d
update Cadence tests to run on PR
sisyphusSmiling Mar 18, 2024
f4f0e21
update Flow CLI version used for CI
sisyphusSmiling Mar 18, 2024
c34d6fd
fix test script command
sisyphusSmiling Mar 18, 2024
9e649c4
add NFT serialization into bridge to EVM
sisyphusSmiling Mar 18, 2024
969e079
add metadata syncing on tokenURI when bridging from EVM to Cadence
sisyphusSmiling Mar 18, 2024
de837be
update serialize_tests.cdc
sisyphusSmiling Mar 18, 2024
90210f7
fix conformance errors & update setup commands
sisyphusSmiling Mar 19, 2024
85bec37
update serialization tests
sisyphusSmiling Mar 19, 2024
ebcabf8
minimize serialization utils by removing interfaces & strategies
sisyphusSmiling Mar 19, 2024
86735b5
fix NFT serialization, add test cases & add contract URI serializatio…
sisyphusSmiling Mar 20, 2024
8c3b445
add test/get_block_height script
sisyphusSmiling Mar 20, 2024
ad2c319
fix foundry_test ci failures
sisyphusSmiling Mar 20, 2024
2757b83
update serialization serialized json data prefix
sisyphusSmiling Mar 20, 2024
886a718
Update flow-cli version used in CI workflow
m-Peter Mar 20, 2024
eb43517
remove unnecessary script
sisyphusSmiling Mar 20, 2024
3c57f2e
update test comments
sisyphusSmiling Mar 21, 2024
a17d812
remove unused contract
sisyphusSmiling Mar 29, 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
update serialization serialized json data prefix
  • Loading branch information
sisyphusSmiling committed Mar 29, 2024
commit 2757b83f4b5b45ad5680a19db5d3195ddb8e8fc4
2 changes: 1 addition & 1 deletion cadence/contracts/bridge/FlowEVMBridge.cdc
Original file line number Diff line number Diff line change
Expand Up @@ -434,7 +434,7 @@ contract FlowEVMBridge : IFlowEVMNFTBridge {
) as! MetadataViews.NFTCollectionDisplay? {
name = collectionDisplay.name
let serializedDisplay = SerializeNFT.serializeFromDisplays(nftDisplay: nil, collectionDisplay: collectionDisplay)!
contractURI = "data:application/json;ascii,{".concat(serializedDisplay).concat("}")
contractURI = "data:application/json;utf8,{".concat(serializedDisplay).concat("}")
}
}

Expand Down
2 changes: 1 addition & 1 deletion cadence/contracts/utils/SerializeNFT.cdc
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ access(all) contract SerializeNFT {
return ""
}
// Init the data format prefix & concatenate the serialized display & attributes
var serializedMetadata = "data:application/json;ascii,{"
var serializedMetadata = "data:application/json;utf8,{"
if display != nil {
serializedMetadata = serializedMetadata.concat(display!)
}
Expand Down
2 changes: 1 addition & 1 deletion cadence/tests/serialize_nft_tests.cdc
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ fun testSerializeNFTSucceeds() {
mintedBlockHeight = heightResult.returnValue! as! UInt64
let heightString = mintedBlockHeight.toString()

let expectedPrefix = "data:application/json;ascii,{\"name\": \"ExampleNFT\", \"description\": \"Example NFT Collection\", \"image\": \"https://flow.com/examplenft.jpg\", \"external_url\": \"https://example-nft.onflow.org\", "
let expectedPrefix = "data:application/json;utf8,{\"name\": \"ExampleNFT\", \"description\": \"Example NFT Collection\", \"image\": \"https://flow.com/examplenft.jpg\", \"external_url\": \"https://example-nft.onflow.org\", "
let altSuffix1 = "\"attributes\": [{\"trait_type\": \"mintedBlock\", \"value\": \"".concat(heightString).concat("\"},{\"trait_type\": \"foo\", \"value\": \"nil\"}]}")
let altSuffix2 = "\"attributes\": [{\"trait_type\": \"foo\", \"value\": \"nil\"}]}, {\"trait_type\": \"mintedBlock\", \"value\": \"".concat(heightString).concat("\"}")

Expand Down