From b5cc2d4ea44a18a4cccd4aa8c07553ce2c8179dd Mon Sep 17 00:00:00 2001 From: Warren He Date: Mon, 30 Oct 2023 16:37:46 -0700 Subject: [PATCH 1/6] storage: add NFT original metadata --- storage/migrations/23_evm_nfts.up.sql | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 storage/migrations/23_evm_nfts.up.sql diff --git a/storage/migrations/23_evm_nfts.up.sql b/storage/migrations/23_evm_nfts.up.sql new file mode 100644 index 000000000..08d206fda --- /dev/null +++ b/storage/migrations/23_evm_nfts.up.sql @@ -0,0 +1,6 @@ +BEGIN; + +ALTER TABLE chain.evm_nfts + ADD COLUMN metadata JSONB; + +COMMIT; From 1158bfbf33121cc5cd4d93befb78ea12fb66840c Mon Sep 17 00:00:00 2001 From: Warren He Date: Mon, 30 Oct 2023 16:38:01 -0700 Subject: [PATCH 2/6] evmnfts: save original metadata --- analyzer/evmnfts/evm_nfts.go | 1 + analyzer/queries/queries.go | 7 ++++--- analyzer/runtime/evm/client.go | 1 + analyzer/runtime/evm/erc721.go | 6 +++++- 4 files changed, 11 insertions(+), 4 deletions(-) diff --git a/analyzer/evmnfts/evm_nfts.go b/analyzer/evmnfts/evm_nfts.go index 87aa27961..5361f7934 100644 --- a/analyzer/evmnfts/evm_nfts.go +++ b/analyzer/evmnfts/evm_nfts.go @@ -118,6 +118,7 @@ func (p *processor) ProcessItem(ctx context.Context, batch *storage.QueryBatch, staleNFT.DownloadRound, nftData.MetadataURI, nftData.MetadataAccessed, + nftData.Metadata, nftData.Name, nftData.Description, nftData.Image, diff --git a/analyzer/queries/queries.go b/analyzer/queries/queries.go index 28e6ebb8c..64b9eaa6d 100644 --- a/analyzer/queries/queries.go +++ b/analyzer/queries/queries.go @@ -628,9 +628,10 @@ var ( last_download_round = $4, metadata_uri = $5, metadata_accessed = $6, - name = $7, - description = $8, - image = $9 + metadata = $7, + name = $8, + description = $9, + image = $10 WHERE runtime = $1 AND token_address = $2 AND diff --git a/analyzer/runtime/evm/client.go b/analyzer/runtime/evm/client.go index b59d94415..3c55e28f6 100644 --- a/analyzer/runtime/evm/client.go +++ b/analyzer/runtime/evm/client.go @@ -48,6 +48,7 @@ type EVMTokenMutableData struct { type EVMNFTData struct { MetadataURI string MetadataAccessed time.Time + Metadata string Name string Description string Image string diff --git a/analyzer/runtime/evm/erc721.go b/analyzer/runtime/evm/erc721.go index 53af12e4f..a85402a87 100644 --- a/analyzer/runtime/evm/erc721.go +++ b/analyzer/runtime/evm/erc721.go @@ -7,6 +7,7 @@ import ( "fmt" "io" "math/big" + "strings" "time" ethCommon "github.com/ethereum/go-ethereum/common" @@ -108,8 +109,10 @@ func evmDownloadNFTERC721Metadata(ctx context.Context, logger *log.Logger, sourc return nil } limitedReader := io.LimitReader(rc, MaxMetadataBytes) + var metadataBuilder strings.Builder + teeReader := io.TeeReader(limitedReader, &metadataBuilder) var metadata ERC721AssetMetadata - if err = json.NewDecoder(limitedReader).Decode(&metadata); err != nil { + if err = json.NewDecoder(teeReader).Decode(&metadata); err != nil { logger.Info("error decoding token metadata", "uri", nftData.MetadataURI, "err", err, @@ -118,6 +121,7 @@ func evmDownloadNFTERC721Metadata(ctx context.Context, logger *log.Logger, sourc if err = rc.Close(); err != nil { return fmt.Errorf("closing metadata reader: %w", err) } + nftData.Metadata = metadataBuilder.String() nftData.Name = metadata.Name nftData.Description = metadata.Description nftData.Image = metadata.Image From 17df32c46fd6c0c881cfdc937067a99ddad27294 Mon Sep 17 00:00:00 2001 From: Warren He Date: Mon, 30 Oct 2023 16:47:41 -0700 Subject: [PATCH 3/6] api: add NFT metadata --- api/spec/v1.yaml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/api/spec/v1.yaml b/api/spec/v1.yaml index bf0a5bdfa..ddab9a4eb 100644 --- a/api/spec/v1.yaml +++ b/api/spec/v1.yaml @@ -2689,6 +2689,10 @@ components: type: string metadata_accessed: type: string + metadata: + description: | + A metadata document for this NFT instance. + Currently only ERC-721 is supported, where the document is an Asset Metadata from the ERC721 Metadata JSON Schema. name: type: string description: Identifies the asset which this NFT represents From 288718f5e34da8fd9f95283a37d7ed80a3083fe5 Mon Sep 17 00:00:00 2001 From: Warren He Date: Mon, 30 Oct 2023 16:50:20 -0700 Subject: [PATCH 4/6] storage: query NFT original metadata --- storage/client/client.go | 1 + storage/client/queries/queries.go | 1 + 2 files changed, 2 insertions(+) diff --git a/storage/client/client.go b/storage/client/client.go index 735bae9c0..0bfe46074 100644 --- a/storage/client/client.go +++ b/storage/client/client.go @@ -1603,6 +1603,7 @@ func (c *StorageClient) RuntimeEVMNFTs(ctx context.Context, limit *uint64, offse &ownerAddrData, &nft.MetadataUri, &metadataAccessedN, + &nft.Metadata, &nft.Name, &nft.Description, &nft.Image, diff --git a/storage/client/queries/queries.go b/storage/client/queries/queries.go index 1b072226b..33f6935e9 100644 --- a/storage/client/queries/queries.go +++ b/storage/client/queries/queries.go @@ -522,6 +522,7 @@ const ( owner_preimage.address_data, chain.evm_nfts.metadata_uri, chain.evm_nfts.metadata_accessed, + chain.evm_nfts.metadata, chain.evm_nfts.name, chain.evm_nfts.description, chain.evm_nfts.image From 481472219e7c8535581b37a684f001f5f4d05528 Mon Sep 17 00:00:00 2001 From: Warren He Date: Tue, 31 Oct 2023 13:54:51 -0700 Subject: [PATCH 5/6] evm: allow NFT data fields to be nil --- analyzer/runtime/evm/client.go | 8 ++++---- analyzer/runtime/evm/erc721.go | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/analyzer/runtime/evm/client.go b/analyzer/runtime/evm/client.go index 3c55e28f6..4e4a3c881 100644 --- a/analyzer/runtime/evm/client.go +++ b/analyzer/runtime/evm/client.go @@ -48,10 +48,10 @@ type EVMTokenMutableData struct { type EVMNFTData struct { MetadataURI string MetadataAccessed time.Time - Metadata string - Name string - Description string - Image string + Metadata *string + Name *string + Description *string + Image *string } type EVMTokenBalanceData struct { diff --git a/analyzer/runtime/evm/erc721.go b/analyzer/runtime/evm/erc721.go index a85402a87..96882f3d0 100644 --- a/analyzer/runtime/evm/erc721.go +++ b/analyzer/runtime/evm/erc721.go @@ -27,13 +27,13 @@ const MaxMetadataBytes = 10 * 1024 * 1024 // https://eips.ethereum.org/EIPS/eip-721 type ERC721AssetMetadata struct { // Name identifies the asset which this NFT represents - Name string `json:"name"` + Name *string `json:"name"` // Description describes the asset which this NFT represents - Description string `json:"description"` + Description *string `json:"description"` // Image is A URI pointing to a resource with mime type image/* // representing the asset which this NFT represents. (Additional // non-descriptive text from ERC-721 omitted.) - Image string `json:"image"` + Image *string `json:"image"` } func evmDownloadTokenERC721Mutable(ctx context.Context, logger *log.Logger, source nodeapi.RuntimeApiLite, round uint64, tokenEthAddr []byte) (*EVMTokenMutableData, error) { @@ -121,7 +121,7 @@ func evmDownloadNFTERC721Metadata(ctx context.Context, logger *log.Logger, sourc if err = rc.Close(); err != nil { return fmt.Errorf("closing metadata reader: %w", err) } - nftData.Metadata = metadataBuilder.String() + nftData.Metadata = common.Ptr(metadataBuilder.String()) nftData.Name = metadata.Name nftData.Description = metadata.Description nftData.Image = metadata.Image From d5069d475c140984b3b3a9aaa7165e7cb48b3ef0 Mon Sep 17 00:00:00 2001 From: Warren He Date: Tue, 31 Oct 2023 14:00:35 -0700 Subject: [PATCH 6/6] tests: update nft responses --- .../expected/emerald_account_nfts.body | 537 ++++++++++++- .../expected/emerald_account_nfts_token.body | 472 ++++++++++++ .../expected/emerald_token_nft.body | 59 ++ .../expected/emerald_token_nfts.body | 708 ++++++++++++++++++ 4 files changed, 1773 insertions(+), 3 deletions(-) diff --git a/tests/e2e_regression/expected/emerald_account_nfts.body b/tests/e2e_regression/expected/emerald_account_nfts.body index 4e9562d9b..36564d477 100644 --- a/tests/e2e_regression/expected/emerald_account_nfts.body +++ b/tests/e2e_regression/expected/emerald_account_nfts.body @@ -4,6 +4,21 @@ "description": "Swarm Teddies are the first Teddy Bear-like collection in Oasis Network, coming from space, these awesome creatures are unique, exclusive and hand designed with dedication and love.Born from an original concept, Swarm Teddies consists of 1000 cute bear NFTs that quickly adapted to their favorite themes, these creatures are not here to take part, they are here to take over.", "id": "177", "image": "ipfs://QmctsL3PKCbu3QGNmVfu9opWC3ujFecKR9u2DjuAhWSqkD/Casual-102.png", + "metadata": { + "attributes": [ + { + "trait_type": "Tier", + "value": "Common" + }, + { + "trait_type": "Category", + "value": "Casual" + } + ], + "description": "Swarm Teddies are the first Teddy Bear-like collection in Oasis Network, coming from space, these awesome creatures are unique, exclusive and hand designed with dedication and love.Born from an original concept, Swarm Teddies consists of 1000 cute bear NFTs that quickly adapted to their favorite themes, these creatures are not here to take part, they are here to take over.", + "image": "ipfs://QmctsL3PKCbu3QGNmVfu9opWC3ujFecKR9u2DjuAhWSqkD/Casual-102.png", + "name": "Swarm Teddies" + }, "metadata_accessed": "UNINTERESTING", "metadata_uri": "ipfs://QmY256sTBaZ9beGAfuc7tM9P4ZagNHbB9HvkudZ5u5zvDT/661", "name": "Swarm Teddies", @@ -26,6 +41,65 @@ "description": "The first Ape NFT project on Oasis!", "id": "227", "image": "ipfs://QmQbbX9ZcA8Dfay94vJZrmvohub1oQfLtZ791DzD8DLmMx/227.png", + "metadata": { + "attributes": [ + { + "trait_type": "background", + "value": "Oasis" + }, + { + "trait_type": "ears", + "value": "Round" + }, + { + "trait_type": "chest", + "value": "chest" + }, + { + "trait_type": "fur", + "value": "Dark Blue" + }, + { + "trait_type": "fur fill", + "value": "Fill" + }, + { + "trait_type": "lines", + "value": "lines" + }, + { + "trait_type": "clothing", + "value": "Oasis Team" + }, + { + "trait_type": "eyes", + "value": "Looking Up" + }, + { + "trait_type": "mouth", + "value": "Squeezed" + }, + { + "trait_type": "nose", + "value": "Sniff" + }, + { + "trait_type": "headwear", + "value": "Cowboy Hat" + }, + { + "trait_type": "accessories", + "value": "None" + } + ], + "compiler": "HashLips Art Engine", + "date": 1643225209608, + "description": "The first Ape NFT project on Oasis!", + "dna": "8d905c51bacf53f91d31a07f4a0f64500434a8ef", + "edition": 227, + "image": "ipfs://QmQbbX9ZcA8Dfay94vJZrmvohub1oQfLtZ791DzD8DLmMx/227.png", + "name": " Oasis Apes #227" + }, "metadata_accessed": "UNINTERESTING", "metadata_uri": "ipfs://QmPKAuGQnJCM2FVSxkNcyqf1TyDusKuwuD9VnWJN9CF4xA/227.json", "name": " Oasis Apes #227", @@ -48,6 +122,65 @@ "description": "The first Ape NFT project on Oasis!", "id": "466", "image": "ipfs://QmQbbX9ZcA8Dfay94vJZrmvohub1oQfLtZ791DzD8DLmMx/466.png", + "metadata": { + "attributes": [ + { + "trait_type": "background", + "value": "Oasis" + }, + { + "trait_type": "ears", + "value": "Cold" + }, + { + "trait_type": "chest", + "value": "chest" + }, + { + "trait_type": "fur", + "value": "Purple" + }, + { + "trait_type": "fur fill", + "value": "Fill" + }, + { + "trait_type": "lines", + "value": "lines" + }, + { + "trait_type": "clothing", + "value": "Red Tee" + }, + { + "trait_type": "eyes", + "value": "Makeup" + }, + { + "trait_type": "mouth", + "value": "Smile" + }, + { + "trait_type": "nose", + "value": "Rosey" + }, + { + "trait_type": "headwear", + "value": "Lasers" + }, + { + "trait_type": "accessories", + "value": "None" + } + ], + "compiler": "HashLips Art Engine", + "date": 1643218184322, + "description": "The first Ape NFT project on Oasis!", + "dna": "30503f001a449191e74dba6238282865eda52106", + "edition": 466, + "image": "ipfs://QmQbbX9ZcA8Dfay94vJZrmvohub1oQfLtZ791DzD8DLmMx/466.png", + "name": " Oasis Apes #466" + }, "metadata_accessed": "UNINTERESTING", "metadata_uri": "ipfs://QmPKAuGQnJCM2FVSxkNcyqf1TyDusKuwuD9VnWJN9CF4xA/466.json", "name": " Oasis Apes #466", @@ -70,6 +203,65 @@ "description": "The first Ape NFT project on Oasis!", "id": "1087", "image": "ipfs://QmQbbX9ZcA8Dfay94vJZrmvohub1oQfLtZ791DzD8DLmMx/1087.png", + "metadata": { + "attributes": [ + { + "trait_type": "background", + "value": "Oasis" + }, + { + "trait_type": "ears", + "value": "Cold" + }, + { + "trait_type": "chest", + "value": "chest" + }, + { + "trait_type": "fur", + "value": "Mustard" + }, + { + "trait_type": "fur fill", + "value": "Fill" + }, + { + "trait_type": "lines", + "value": "lines" + }, + { + "trait_type": "clothing", + "value": "Oasis Suit" + }, + { + "trait_type": "eyes", + "value": "Looking Up" + }, + { + "trait_type": "mouth", + "value": "Bored" + }, + { + "trait_type": "nose", + "value": "Brown" + }, + { + "trait_type": "headwear", + "value": "None" + }, + { + "trait_type": "accessories", + "value": "Silver Chain" + } + ], + "compiler": "HashLips Art Engine", + "date": 1643217992688, + "description": "The first Ape NFT project on Oasis!", + "dna": "75de8e2bdd9720d8913208e16d01ac3f62a1716e", + "edition": 1087, + "image": "ipfs://QmQbbX9ZcA8Dfay94vJZrmvohub1oQfLtZ791DzD8DLmMx/1087.png", + "name": " Oasis Apes #1087" + }, "metadata_accessed": "UNINTERESTING", "metadata_uri": "ipfs://QmPKAuGQnJCM2FVSxkNcyqf1TyDusKuwuD9VnWJN9CF4xA/1087.json", "name": " Oasis Apes #1087", @@ -92,6 +284,65 @@ "description": "The first Ape NFT project on Oasis!", "id": "1297", "image": "ipfs://QmQbbX9ZcA8Dfay94vJZrmvohub1oQfLtZ791DzD8DLmMx/1297.png", + "metadata": { + "attributes": [ + { + "trait_type": "background", + "value": "Oasis" + }, + { + "trait_type": "ears", + "value": "Gauges" + }, + { + "trait_type": "chest", + "value": "chest" + }, + { + "trait_type": "fur", + "value": "Dark Blue" + }, + { + "trait_type": "fur fill", + "value": "Fill" + }, + { + "trait_type": "lines", + "value": "lines" + }, + { + "trait_type": "clothing", + "value": "Dark Blue Tee" + }, + { + "trait_type": "eyes", + "value": "Looking Up" + }, + { + "trait_type": "mouth", + "value": "Stubble" + }, + { + "trait_type": "nose", + "value": "Brown" + }, + { + "trait_type": "headwear", + "value": "Lasers" + }, + { + "trait_type": "accessories", + "value": "None" + } + ], + "compiler": "HashLips Art Engine", + "date": 1643222370127, + "description": "The first Ape NFT project on Oasis!", + "dna": "36260914349982eb9d608bc6cf79bd426ab92eb8", + "edition": 1297, + "image": "ipfs://QmQbbX9ZcA8Dfay94vJZrmvohub1oQfLtZ791DzD8DLmMx/1297.png", + "name": " Oasis Apes #1297" + }, "metadata_accessed": "UNINTERESTING", "metadata_uri": "ipfs://QmPKAuGQnJCM2FVSxkNcyqf1TyDusKuwuD9VnWJN9CF4xA/1297.json", "name": " Oasis Apes #1297", @@ -114,6 +365,65 @@ "description": "The first Ape NFT project on Oasis!", "id": "1602", "image": "ipfs://QmQbbX9ZcA8Dfay94vJZrmvohub1oQfLtZ791DzD8DLmMx/1602.png", + "metadata": { + "attributes": [ + { + "trait_type": "background", + "value": "Oasis" + }, + { + "trait_type": "ears", + "value": "Pierced" + }, + { + "trait_type": "chest", + "value": "chest" + }, + { + "trait_type": "fur", + "value": "Grass Green" + }, + { + "trait_type": "fur fill", + "value": "Fill" + }, + { + "trait_type": "lines", + "value": "lines" + }, + { + "trait_type": "clothing", + "value": "Oasis Letter S" + }, + { + "trait_type": "eyes", + "value": "Looking Up" + }, + { + "trait_type": "mouth", + "value": "Cigarette" + }, + { + "trait_type": "nose", + "value": "Sniff" + }, + { + "trait_type": "headwear", + "value": "Rugby Helmet" + }, + { + "trait_type": "accessories", + "value": "None" + } + ], + "compiler": "HashLips Art Engine", + "date": 1643227248728, + "description": "The first Ape NFT project on Oasis!", + "dna": "30686451912560dac20c96202f00e98aec1cbb07", + "edition": 1602, + "image": "ipfs://QmQbbX9ZcA8Dfay94vJZrmvohub1oQfLtZ791DzD8DLmMx/1602.png", + "name": " Oasis Apes #1602" + }, "metadata_accessed": "UNINTERESTING", "metadata_uri": "ipfs://QmPKAuGQnJCM2FVSxkNcyqf1TyDusKuwuD9VnWJN9CF4xA/1602.json", "name": " Oasis Apes #1602", @@ -136,6 +446,65 @@ "description": "The first Ape NFT project on Oasis!", "id": "1636", "image": "ipfs://QmQbbX9ZcA8Dfay94vJZrmvohub1oQfLtZ791DzD8DLmMx/1636.png", + "metadata": { + "attributes": [ + { + "trait_type": "background", + "value": "Oasis" + }, + { + "trait_type": "ears", + "value": "Cold" + }, + { + "trait_type": "chest", + "value": "chest" + }, + { + "trait_type": "fur", + "value": "Brown" + }, + { + "trait_type": "fur fill", + "value": "Fill" + }, + { + "trait_type": "lines", + "value": "lines" + }, + { + "trait_type": "clothing", + "value": "Striped Tee" + }, + { + "trait_type": "eyes", + "value": "Bloodshot" + }, + { + "trait_type": "mouth", + "value": "Cigarette" + }, + { + "trait_type": "nose", + "value": "Brown" + }, + { + "trait_type": "headwear", + "value": "Lasers" + }, + { + "trait_type": "accessories", + "value": "Silver Chain" + } + ], + "compiler": "HashLips Art Engine", + "date": 1643226813248, + "description": "The first Ape NFT project on Oasis!", + "dna": "28449570785f4c7f236073aa140d4eb5c56003a3", + "edition": 1636, + "image": "ipfs://QmQbbX9ZcA8Dfay94vJZrmvohub1oQfLtZ791DzD8DLmMx/1636.png", + "name": " Oasis Apes #1636" + }, "metadata_accessed": "UNINTERESTING", "metadata_uri": "ipfs://QmPKAuGQnJCM2FVSxkNcyqf1TyDusKuwuD9VnWJN9CF4xA/1636.json", "name": " Oasis Apes #1636", @@ -158,6 +527,65 @@ "description": "The first Ape NFT project on Oasis!", "id": "1670", "image": "ipfs://QmQbbX9ZcA8Dfay94vJZrmvohub1oQfLtZ791DzD8DLmMx/1670.png", + "metadata": { + "attributes": [ + { + "trait_type": "background", + "value": "Oasis" + }, + { + "trait_type": "ears", + "value": "Round" + }, + { + "trait_type": "chest", + "value": "chest" + }, + { + "trait_type": "fur", + "value": "Light Purple" + }, + { + "trait_type": "fur fill", + "value": "Fill" + }, + { + "trait_type": "lines", + "value": "lines" + }, + { + "trait_type": "clothing", + "value": "Oasis Suit" + }, + { + "trait_type": "eyes", + "value": "Bloodshot" + }, + { + "trait_type": "mouth", + "value": "Cynic Smile" + }, + { + "trait_type": "nose", + "value": "Rosey" + }, + { + "trait_type": "headwear", + "value": "Sunglasses" + }, + { + "trait_type": "accessories", + "value": "Gold Chain" + } + ], + "compiler": "HashLips Art Engine", + "date": 1643228228700, + "description": "The first Ape NFT project on Oasis!", + "dna": "b32d2d16ae71fa6f80d2f12621ac1d6bd61d9ebf", + "edition": 1670, + "image": "ipfs://QmQbbX9ZcA8Dfay94vJZrmvohub1oQfLtZ791DzD8DLmMx/1670.png", + "name": " Oasis Apes #1670" + }, "metadata_accessed": "UNINTERESTING", "metadata_uri": "ipfs://QmPKAuGQnJCM2FVSxkNcyqf1TyDusKuwuD9VnWJN9CF4xA/1670.json", "name": " Oasis Apes #1670", @@ -180,6 +608,65 @@ "description": "The first Ape NFT project on Oasis!", "id": "1708", "image": "ipfs://QmQbbX9ZcA8Dfay94vJZrmvohub1oQfLtZ791DzD8DLmMx/1708.png", + "metadata": { + "attributes": [ + { + "trait_type": "background", + "value": "Oasis" + }, + { + "trait_type": "ears", + "value": "Round" + }, + { + "trait_type": "chest", + "value": "chest" + }, + { + "trait_type": "fur", + "value": "Olive Green" + }, + { + "trait_type": "fur fill", + "value": "Fill" + }, + { + "trait_type": "lines", + "value": "lines" + }, + { + "trait_type": "clothing", + "value": "Oasis Suit" + }, + { + "trait_type": "eyes", + "value": "Closed" + }, + { + "trait_type": "mouth", + "value": "Bored" + }, + { + "trait_type": "nose", + "value": "Pierced" + }, + { + "trait_type": "headwear", + "value": "Sunglasses" + }, + { + "trait_type": "accessories", + "value": "None" + } + ], + "compiler": "HashLips Art Engine", + "date": 1643216585645, + "description": "The first Ape NFT project on Oasis!", + "dna": "2c7d63d776ce29fd91d4286a280af277862e9853", + "edition": 1708, + "image": "ipfs://QmQbbX9ZcA8Dfay94vJZrmvohub1oQfLtZ791DzD8DLmMx/1708.png", + "name": " Oasis Apes #1708" + }, "metadata_accessed": "UNINTERESTING", "metadata_uri": "ipfs://QmPKAuGQnJCM2FVSxkNcyqf1TyDusKuwuD9VnWJN9CF4xA/1708.json", "name": " Oasis Apes #1708", @@ -202,6 +689,53 @@ "description": "Brutally enhance RoseApe variant - 181", "id": "181", "image": "/181.png", + "metadata": { + "attributes": [ + { + "trait_type": "0background", + "value": "portrait_rose" + }, + { + "trait_type": "1baseape", + "value": "Gibbon_Anthophile" + }, + { + "trait_type": "2baseclothes", + "value": "tron" + }, + { + "trait_type": "3earrings", + "value": "neon" + }, + { + "trait_type": "4eyes", + "value": "wild_neon" + }, + { + "trait_type": "5headwear", + "value": "black_gold" + }, + { + "trait_type": "6mouth", + "value": "king" + }, + { + "trait_type": "7roses", + "value": "side" + }, + { + "trait_type": "8necklace", + "value": "rbg" + }, + { + "trait_type": "9crypto", + "value": "btc" + } + ], + "description": "Brutally enhance RoseApe variant - 181", + "image": "/181.png", + "name": "ROSEAPE#181" + }, "metadata_accessed": "UNINTERESTING", "metadata_uri": "ipfs://QmTymciMsxGjGbG24oVigctR87oDFfZugwKutpP3p5HSGc/181.json", "name": "ROSEAPE#181", @@ -221,12 +755,9 @@ } }, { - "description": "", "id": "862", - "image": "", "metadata_accessed": "UNINTERESTING", "metadata_uri": "https://airose.mypinata.cloud/ipfs/QmSEfuX5f33Pxet1HHq536aDwAE6eMFR5kLtBqPDxz9XRH/862", - "name": "", "owner": "oasis1qq92lk7kpqmvllhjvhlc282zp6v2e2t2rqrwuq2u", "owner_eth": "0x5cC0791892B04c6280F3a2aA64929bf6357544Bc", "token": { diff --git a/tests/e2e_regression/expected/emerald_account_nfts_token.body b/tests/e2e_regression/expected/emerald_account_nfts_token.body index 6edcfe12f..d1973191e 100644 --- a/tests/e2e_regression/expected/emerald_account_nfts_token.body +++ b/tests/e2e_regression/expected/emerald_account_nfts_token.body @@ -4,6 +4,65 @@ "description": "The first Ape NFT project on Oasis!", "id": "227", "image": "ipfs://QmQbbX9ZcA8Dfay94vJZrmvohub1oQfLtZ791DzD8DLmMx/227.png", + "metadata": { + "attributes": [ + { + "trait_type": "background", + "value": "Oasis" + }, + { + "trait_type": "ears", + "value": "Round" + }, + { + "trait_type": "chest", + "value": "chest" + }, + { + "trait_type": "fur", + "value": "Dark Blue" + }, + { + "trait_type": "fur fill", + "value": "Fill" + }, + { + "trait_type": "lines", + "value": "lines" + }, + { + "trait_type": "clothing", + "value": "Oasis Team" + }, + { + "trait_type": "eyes", + "value": "Looking Up" + }, + { + "trait_type": "mouth", + "value": "Squeezed" + }, + { + "trait_type": "nose", + "value": "Sniff" + }, + { + "trait_type": "headwear", + "value": "Cowboy Hat" + }, + { + "trait_type": "accessories", + "value": "None" + } + ], + "compiler": "HashLips Art Engine", + "date": 1643225209608, + "description": "The first Ape NFT project on Oasis!", + "dna": "8d905c51bacf53f91d31a07f4a0f64500434a8ef", + "edition": 227, + "image": "ipfs://QmQbbX9ZcA8Dfay94vJZrmvohub1oQfLtZ791DzD8DLmMx/227.png", + "name": " Oasis Apes #227" + }, "metadata_accessed": "UNINTERESTING", "metadata_uri": "ipfs://QmPKAuGQnJCM2FVSxkNcyqf1TyDusKuwuD9VnWJN9CF4xA/227.json", "name": " Oasis Apes #227", @@ -26,6 +85,65 @@ "description": "The first Ape NFT project on Oasis!", "id": "466", "image": "ipfs://QmQbbX9ZcA8Dfay94vJZrmvohub1oQfLtZ791DzD8DLmMx/466.png", + "metadata": { + "attributes": [ + { + "trait_type": "background", + "value": "Oasis" + }, + { + "trait_type": "ears", + "value": "Cold" + }, + { + "trait_type": "chest", + "value": "chest" + }, + { + "trait_type": "fur", + "value": "Purple" + }, + { + "trait_type": "fur fill", + "value": "Fill" + }, + { + "trait_type": "lines", + "value": "lines" + }, + { + "trait_type": "clothing", + "value": "Red Tee" + }, + { + "trait_type": "eyes", + "value": "Makeup" + }, + { + "trait_type": "mouth", + "value": "Smile" + }, + { + "trait_type": "nose", + "value": "Rosey" + }, + { + "trait_type": "headwear", + "value": "Lasers" + }, + { + "trait_type": "accessories", + "value": "None" + } + ], + "compiler": "HashLips Art Engine", + "date": 1643218184322, + "description": "The first Ape NFT project on Oasis!", + "dna": "30503f001a449191e74dba6238282865eda52106", + "edition": 466, + "image": "ipfs://QmQbbX9ZcA8Dfay94vJZrmvohub1oQfLtZ791DzD8DLmMx/466.png", + "name": " Oasis Apes #466" + }, "metadata_accessed": "UNINTERESTING", "metadata_uri": "ipfs://QmPKAuGQnJCM2FVSxkNcyqf1TyDusKuwuD9VnWJN9CF4xA/466.json", "name": " Oasis Apes #466", @@ -48,6 +166,65 @@ "description": "The first Ape NFT project on Oasis!", "id": "1087", "image": "ipfs://QmQbbX9ZcA8Dfay94vJZrmvohub1oQfLtZ791DzD8DLmMx/1087.png", + "metadata": { + "attributes": [ + { + "trait_type": "background", + "value": "Oasis" + }, + { + "trait_type": "ears", + "value": "Cold" + }, + { + "trait_type": "chest", + "value": "chest" + }, + { + "trait_type": "fur", + "value": "Mustard" + }, + { + "trait_type": "fur fill", + "value": "Fill" + }, + { + "trait_type": "lines", + "value": "lines" + }, + { + "trait_type": "clothing", + "value": "Oasis Suit" + }, + { + "trait_type": "eyes", + "value": "Looking Up" + }, + { + "trait_type": "mouth", + "value": "Bored" + }, + { + "trait_type": "nose", + "value": "Brown" + }, + { + "trait_type": "headwear", + "value": "None" + }, + { + "trait_type": "accessories", + "value": "Silver Chain" + } + ], + "compiler": "HashLips Art Engine", + "date": 1643217992688, + "description": "The first Ape NFT project on Oasis!", + "dna": "75de8e2bdd9720d8913208e16d01ac3f62a1716e", + "edition": 1087, + "image": "ipfs://QmQbbX9ZcA8Dfay94vJZrmvohub1oQfLtZ791DzD8DLmMx/1087.png", + "name": " Oasis Apes #1087" + }, "metadata_accessed": "UNINTERESTING", "metadata_uri": "ipfs://QmPKAuGQnJCM2FVSxkNcyqf1TyDusKuwuD9VnWJN9CF4xA/1087.json", "name": " Oasis Apes #1087", @@ -70,6 +247,65 @@ "description": "The first Ape NFT project on Oasis!", "id": "1297", "image": "ipfs://QmQbbX9ZcA8Dfay94vJZrmvohub1oQfLtZ791DzD8DLmMx/1297.png", + "metadata": { + "attributes": [ + { + "trait_type": "background", + "value": "Oasis" + }, + { + "trait_type": "ears", + "value": "Gauges" + }, + { + "trait_type": "chest", + "value": "chest" + }, + { + "trait_type": "fur", + "value": "Dark Blue" + }, + { + "trait_type": "fur fill", + "value": "Fill" + }, + { + "trait_type": "lines", + "value": "lines" + }, + { + "trait_type": "clothing", + "value": "Dark Blue Tee" + }, + { + "trait_type": "eyes", + "value": "Looking Up" + }, + { + "trait_type": "mouth", + "value": "Stubble" + }, + { + "trait_type": "nose", + "value": "Brown" + }, + { + "trait_type": "headwear", + "value": "Lasers" + }, + { + "trait_type": "accessories", + "value": "None" + } + ], + "compiler": "HashLips Art Engine", + "date": 1643222370127, + "description": "The first Ape NFT project on Oasis!", + "dna": "36260914349982eb9d608bc6cf79bd426ab92eb8", + "edition": 1297, + "image": "ipfs://QmQbbX9ZcA8Dfay94vJZrmvohub1oQfLtZ791DzD8DLmMx/1297.png", + "name": " Oasis Apes #1297" + }, "metadata_accessed": "UNINTERESTING", "metadata_uri": "ipfs://QmPKAuGQnJCM2FVSxkNcyqf1TyDusKuwuD9VnWJN9CF4xA/1297.json", "name": " Oasis Apes #1297", @@ -92,6 +328,65 @@ "description": "The first Ape NFT project on Oasis!", "id": "1602", "image": "ipfs://QmQbbX9ZcA8Dfay94vJZrmvohub1oQfLtZ791DzD8DLmMx/1602.png", + "metadata": { + "attributes": [ + { + "trait_type": "background", + "value": "Oasis" + }, + { + "trait_type": "ears", + "value": "Pierced" + }, + { + "trait_type": "chest", + "value": "chest" + }, + { + "trait_type": "fur", + "value": "Grass Green" + }, + { + "trait_type": "fur fill", + "value": "Fill" + }, + { + "trait_type": "lines", + "value": "lines" + }, + { + "trait_type": "clothing", + "value": "Oasis Letter S" + }, + { + "trait_type": "eyes", + "value": "Looking Up" + }, + { + "trait_type": "mouth", + "value": "Cigarette" + }, + { + "trait_type": "nose", + "value": "Sniff" + }, + { + "trait_type": "headwear", + "value": "Rugby Helmet" + }, + { + "trait_type": "accessories", + "value": "None" + } + ], + "compiler": "HashLips Art Engine", + "date": 1643227248728, + "description": "The first Ape NFT project on Oasis!", + "dna": "30686451912560dac20c96202f00e98aec1cbb07", + "edition": 1602, + "image": "ipfs://QmQbbX9ZcA8Dfay94vJZrmvohub1oQfLtZ791DzD8DLmMx/1602.png", + "name": " Oasis Apes #1602" + }, "metadata_accessed": "UNINTERESTING", "metadata_uri": "ipfs://QmPKAuGQnJCM2FVSxkNcyqf1TyDusKuwuD9VnWJN9CF4xA/1602.json", "name": " Oasis Apes #1602", @@ -114,6 +409,65 @@ "description": "The first Ape NFT project on Oasis!", "id": "1636", "image": "ipfs://QmQbbX9ZcA8Dfay94vJZrmvohub1oQfLtZ791DzD8DLmMx/1636.png", + "metadata": { + "attributes": [ + { + "trait_type": "background", + "value": "Oasis" + }, + { + "trait_type": "ears", + "value": "Cold" + }, + { + "trait_type": "chest", + "value": "chest" + }, + { + "trait_type": "fur", + "value": "Brown" + }, + { + "trait_type": "fur fill", + "value": "Fill" + }, + { + "trait_type": "lines", + "value": "lines" + }, + { + "trait_type": "clothing", + "value": "Striped Tee" + }, + { + "trait_type": "eyes", + "value": "Bloodshot" + }, + { + "trait_type": "mouth", + "value": "Cigarette" + }, + { + "trait_type": "nose", + "value": "Brown" + }, + { + "trait_type": "headwear", + "value": "Lasers" + }, + { + "trait_type": "accessories", + "value": "Silver Chain" + } + ], + "compiler": "HashLips Art Engine", + "date": 1643226813248, + "description": "The first Ape NFT project on Oasis!", + "dna": "28449570785f4c7f236073aa140d4eb5c56003a3", + "edition": 1636, + "image": "ipfs://QmQbbX9ZcA8Dfay94vJZrmvohub1oQfLtZ791DzD8DLmMx/1636.png", + "name": " Oasis Apes #1636" + }, "metadata_accessed": "UNINTERESTING", "metadata_uri": "ipfs://QmPKAuGQnJCM2FVSxkNcyqf1TyDusKuwuD9VnWJN9CF4xA/1636.json", "name": " Oasis Apes #1636", @@ -136,6 +490,65 @@ "description": "The first Ape NFT project on Oasis!", "id": "1670", "image": "ipfs://QmQbbX9ZcA8Dfay94vJZrmvohub1oQfLtZ791DzD8DLmMx/1670.png", + "metadata": { + "attributes": [ + { + "trait_type": "background", + "value": "Oasis" + }, + { + "trait_type": "ears", + "value": "Round" + }, + { + "trait_type": "chest", + "value": "chest" + }, + { + "trait_type": "fur", + "value": "Light Purple" + }, + { + "trait_type": "fur fill", + "value": "Fill" + }, + { + "trait_type": "lines", + "value": "lines" + }, + { + "trait_type": "clothing", + "value": "Oasis Suit" + }, + { + "trait_type": "eyes", + "value": "Bloodshot" + }, + { + "trait_type": "mouth", + "value": "Cynic Smile" + }, + { + "trait_type": "nose", + "value": "Rosey" + }, + { + "trait_type": "headwear", + "value": "Sunglasses" + }, + { + "trait_type": "accessories", + "value": "Gold Chain" + } + ], + "compiler": "HashLips Art Engine", + "date": 1643228228700, + "description": "The first Ape NFT project on Oasis!", + "dna": "b32d2d16ae71fa6f80d2f12621ac1d6bd61d9ebf", + "edition": 1670, + "image": "ipfs://QmQbbX9ZcA8Dfay94vJZrmvohub1oQfLtZ791DzD8DLmMx/1670.png", + "name": " Oasis Apes #1670" + }, "metadata_accessed": "UNINTERESTING", "metadata_uri": "ipfs://QmPKAuGQnJCM2FVSxkNcyqf1TyDusKuwuD9VnWJN9CF4xA/1670.json", "name": " Oasis Apes #1670", @@ -158,6 +571,65 @@ "description": "The first Ape NFT project on Oasis!", "id": "1708", "image": "ipfs://QmQbbX9ZcA8Dfay94vJZrmvohub1oQfLtZ791DzD8DLmMx/1708.png", + "metadata": { + "attributes": [ + { + "trait_type": "background", + "value": "Oasis" + }, + { + "trait_type": "ears", + "value": "Round" + }, + { + "trait_type": "chest", + "value": "chest" + }, + { + "trait_type": "fur", + "value": "Olive Green" + }, + { + "trait_type": "fur fill", + "value": "Fill" + }, + { + "trait_type": "lines", + "value": "lines" + }, + { + "trait_type": "clothing", + "value": "Oasis Suit" + }, + { + "trait_type": "eyes", + "value": "Closed" + }, + { + "trait_type": "mouth", + "value": "Bored" + }, + { + "trait_type": "nose", + "value": "Pierced" + }, + { + "trait_type": "headwear", + "value": "Sunglasses" + }, + { + "trait_type": "accessories", + "value": "None" + } + ], + "compiler": "HashLips Art Engine", + "date": 1643216585645, + "description": "The first Ape NFT project on Oasis!", + "dna": "2c7d63d776ce29fd91d4286a280af277862e9853", + "edition": 1708, + "image": "ipfs://QmQbbX9ZcA8Dfay94vJZrmvohub1oQfLtZ791DzD8DLmMx/1708.png", + "name": " Oasis Apes #1708" + }, "metadata_accessed": "UNINTERESTING", "metadata_uri": "ipfs://QmPKAuGQnJCM2FVSxkNcyqf1TyDusKuwuD9VnWJN9CF4xA/1708.json", "name": " Oasis Apes #1708", diff --git a/tests/e2e_regression/expected/emerald_token_nft.body b/tests/e2e_regression/expected/emerald_token_nft.body index 9cc0305a2..b9caad5be 100644 --- a/tests/e2e_regression/expected/emerald_token_nft.body +++ b/tests/e2e_regression/expected/emerald_token_nft.body @@ -2,6 +2,65 @@ "description": "The first Ape NFT project on Oasis!", "id": "227", "image": "ipfs://QmQbbX9ZcA8Dfay94vJZrmvohub1oQfLtZ791DzD8DLmMx/227.png", + "metadata": { + "attributes": [ + { + "trait_type": "background", + "value": "Oasis" + }, + { + "trait_type": "ears", + "value": "Round" + }, + { + "trait_type": "chest", + "value": "chest" + }, + { + "trait_type": "fur", + "value": "Dark Blue" + }, + { + "trait_type": "fur fill", + "value": "Fill" + }, + { + "trait_type": "lines", + "value": "lines" + }, + { + "trait_type": "clothing", + "value": "Oasis Team" + }, + { + "trait_type": "eyes", + "value": "Looking Up" + }, + { + "trait_type": "mouth", + "value": "Squeezed" + }, + { + "trait_type": "nose", + "value": "Sniff" + }, + { + "trait_type": "headwear", + "value": "Cowboy Hat" + }, + { + "trait_type": "accessories", + "value": "None" + } + ], + "compiler": "HashLips Art Engine", + "date": 1643225209608, + "description": "The first Ape NFT project on Oasis!", + "dna": "8d905c51bacf53f91d31a07f4a0f64500434a8ef", + "edition": 227, + "image": "ipfs://QmQbbX9ZcA8Dfay94vJZrmvohub1oQfLtZ791DzD8DLmMx/227.png", + "name": " Oasis Apes #227" + }, "metadata_accessed": "UNINTERESTING", "metadata_uri": "ipfs://QmPKAuGQnJCM2FVSxkNcyqf1TyDusKuwuD9VnWJN9CF4xA/227.json", "name": " Oasis Apes #227", diff --git a/tests/e2e_regression/expected/emerald_token_nfts.body b/tests/e2e_regression/expected/emerald_token_nfts.body index c3ceadff6..638f3e1cb 100644 --- a/tests/e2e_regression/expected/emerald_token_nfts.body +++ b/tests/e2e_regression/expected/emerald_token_nfts.body @@ -4,6 +4,65 @@ "description": "The first Ape NFT project on Oasis!", "id": "227", "image": "ipfs://QmQbbX9ZcA8Dfay94vJZrmvohub1oQfLtZ791DzD8DLmMx/227.png", + "metadata": { + "attributes": [ + { + "trait_type": "background", + "value": "Oasis" + }, + { + "trait_type": "ears", + "value": "Round" + }, + { + "trait_type": "chest", + "value": "chest" + }, + { + "trait_type": "fur", + "value": "Dark Blue" + }, + { + "trait_type": "fur fill", + "value": "Fill" + }, + { + "trait_type": "lines", + "value": "lines" + }, + { + "trait_type": "clothing", + "value": "Oasis Team" + }, + { + "trait_type": "eyes", + "value": "Looking Up" + }, + { + "trait_type": "mouth", + "value": "Squeezed" + }, + { + "trait_type": "nose", + "value": "Sniff" + }, + { + "trait_type": "headwear", + "value": "Cowboy Hat" + }, + { + "trait_type": "accessories", + "value": "None" + } + ], + "compiler": "HashLips Art Engine", + "date": 1643225209608, + "description": "The first Ape NFT project on Oasis!", + "dna": "8d905c51bacf53f91d31a07f4a0f64500434a8ef", + "edition": 227, + "image": "ipfs://QmQbbX9ZcA8Dfay94vJZrmvohub1oQfLtZ791DzD8DLmMx/227.png", + "name": " Oasis Apes #227" + }, "metadata_accessed": "UNINTERESTING", "metadata_uri": "ipfs://QmPKAuGQnJCM2FVSxkNcyqf1TyDusKuwuD9VnWJN9CF4xA/227.json", "name": " Oasis Apes #227", @@ -26,6 +85,65 @@ "description": "The first Ape NFT project on Oasis!", "id": "466", "image": "ipfs://QmQbbX9ZcA8Dfay94vJZrmvohub1oQfLtZ791DzD8DLmMx/466.png", + "metadata": { + "attributes": [ + { + "trait_type": "background", + "value": "Oasis" + }, + { + "trait_type": "ears", + "value": "Cold" + }, + { + "trait_type": "chest", + "value": "chest" + }, + { + "trait_type": "fur", + "value": "Purple" + }, + { + "trait_type": "fur fill", + "value": "Fill" + }, + { + "trait_type": "lines", + "value": "lines" + }, + { + "trait_type": "clothing", + "value": "Red Tee" + }, + { + "trait_type": "eyes", + "value": "Makeup" + }, + { + "trait_type": "mouth", + "value": "Smile" + }, + { + "trait_type": "nose", + "value": "Rosey" + }, + { + "trait_type": "headwear", + "value": "Lasers" + }, + { + "trait_type": "accessories", + "value": "None" + } + ], + "compiler": "HashLips Art Engine", + "date": 1643218184322, + "description": "The first Ape NFT project on Oasis!", + "dna": "30503f001a449191e74dba6238282865eda52106", + "edition": 466, + "image": "ipfs://QmQbbX9ZcA8Dfay94vJZrmvohub1oQfLtZ791DzD8DLmMx/466.png", + "name": " Oasis Apes #466" + }, "metadata_accessed": "UNINTERESTING", "metadata_uri": "ipfs://QmPKAuGQnJCM2FVSxkNcyqf1TyDusKuwuD9VnWJN9CF4xA/466.json", "name": " Oasis Apes #466", @@ -48,6 +166,65 @@ "description": "The first Ape NFT project on Oasis!", "id": "753", "image": "ipfs://QmQbbX9ZcA8Dfay94vJZrmvohub1oQfLtZ791DzD8DLmMx/753.png", + "metadata": { + "attributes": [ + { + "trait_type": "background", + "value": "Oasis" + }, + { + "trait_type": "ears", + "value": "Round" + }, + { + "trait_type": "chest", + "value": "chest" + }, + { + "trait_type": "fur", + "value": "Navy Blue" + }, + { + "trait_type": "fur fill", + "value": "Fill" + }, + { + "trait_type": "lines", + "value": "lines" + }, + { + "trait_type": "clothing", + "value": "Green Blue Oasis Tee" + }, + { + "trait_type": "eyes", + "value": "Unamused" + }, + { + "trait_type": "mouth", + "value": "Cigarette" + }, + { + "trait_type": "nose", + "value": "Brown" + }, + { + "trait_type": "headwear", + "value": "Robber" + }, + { + "trait_type": "accessories", + "value": "Silver Chain" + } + ], + "compiler": "HashLips Art Engine", + "date": 1643223744179, + "description": "The first Ape NFT project on Oasis!", + "dna": "b3eb93a04f1938a2317448274906acd1d74cb7f0", + "edition": 753, + "image": "ipfs://QmQbbX9ZcA8Dfay94vJZrmvohub1oQfLtZ791DzD8DLmMx/753.png", + "name": " Oasis Apes #753" + }, "metadata_accessed": "UNINTERESTING", "metadata_uri": "ipfs://QmPKAuGQnJCM2FVSxkNcyqf1TyDusKuwuD9VnWJN9CF4xA/753.json", "name": " Oasis Apes #753", @@ -70,6 +247,65 @@ "description": "The first Ape NFT project on Oasis!", "id": "1087", "image": "ipfs://QmQbbX9ZcA8Dfay94vJZrmvohub1oQfLtZ791DzD8DLmMx/1087.png", + "metadata": { + "attributes": [ + { + "trait_type": "background", + "value": "Oasis" + }, + { + "trait_type": "ears", + "value": "Cold" + }, + { + "trait_type": "chest", + "value": "chest" + }, + { + "trait_type": "fur", + "value": "Mustard" + }, + { + "trait_type": "fur fill", + "value": "Fill" + }, + { + "trait_type": "lines", + "value": "lines" + }, + { + "trait_type": "clothing", + "value": "Oasis Suit" + }, + { + "trait_type": "eyes", + "value": "Looking Up" + }, + { + "trait_type": "mouth", + "value": "Bored" + }, + { + "trait_type": "nose", + "value": "Brown" + }, + { + "trait_type": "headwear", + "value": "None" + }, + { + "trait_type": "accessories", + "value": "Silver Chain" + } + ], + "compiler": "HashLips Art Engine", + "date": 1643217992688, + "description": "The first Ape NFT project on Oasis!", + "dna": "75de8e2bdd9720d8913208e16d01ac3f62a1716e", + "edition": 1087, + "image": "ipfs://QmQbbX9ZcA8Dfay94vJZrmvohub1oQfLtZ791DzD8DLmMx/1087.png", + "name": " Oasis Apes #1087" + }, "metadata_accessed": "UNINTERESTING", "metadata_uri": "ipfs://QmPKAuGQnJCM2FVSxkNcyqf1TyDusKuwuD9VnWJN9CF4xA/1087.json", "name": " Oasis Apes #1087", @@ -92,6 +328,65 @@ "description": "The first Ape NFT project on Oasis!", "id": "1297", "image": "ipfs://QmQbbX9ZcA8Dfay94vJZrmvohub1oQfLtZ791DzD8DLmMx/1297.png", + "metadata": { + "attributes": [ + { + "trait_type": "background", + "value": "Oasis" + }, + { + "trait_type": "ears", + "value": "Gauges" + }, + { + "trait_type": "chest", + "value": "chest" + }, + { + "trait_type": "fur", + "value": "Dark Blue" + }, + { + "trait_type": "fur fill", + "value": "Fill" + }, + { + "trait_type": "lines", + "value": "lines" + }, + { + "trait_type": "clothing", + "value": "Dark Blue Tee" + }, + { + "trait_type": "eyes", + "value": "Looking Up" + }, + { + "trait_type": "mouth", + "value": "Stubble" + }, + { + "trait_type": "nose", + "value": "Brown" + }, + { + "trait_type": "headwear", + "value": "Lasers" + }, + { + "trait_type": "accessories", + "value": "None" + } + ], + "compiler": "HashLips Art Engine", + "date": 1643222370127, + "description": "The first Ape NFT project on Oasis!", + "dna": "36260914349982eb9d608bc6cf79bd426ab92eb8", + "edition": 1297, + "image": "ipfs://QmQbbX9ZcA8Dfay94vJZrmvohub1oQfLtZ791DzD8DLmMx/1297.png", + "name": " Oasis Apes #1297" + }, "metadata_accessed": "UNINTERESTING", "metadata_uri": "ipfs://QmPKAuGQnJCM2FVSxkNcyqf1TyDusKuwuD9VnWJN9CF4xA/1297.json", "name": " Oasis Apes #1297", @@ -114,6 +409,65 @@ "description": "The first Ape NFT project on Oasis!", "id": "1336", "image": "ipfs://QmQbbX9ZcA8Dfay94vJZrmvohub1oQfLtZ791DzD8DLmMx/1336.png", + "metadata": { + "attributes": [ + { + "trait_type": "background", + "value": "Oasis" + }, + { + "trait_type": "ears", + "value": "Round" + }, + { + "trait_type": "chest", + "value": "chest" + }, + { + "trait_type": "fur", + "value": "Olive Green" + }, + { + "trait_type": "fur fill", + "value": "Fill" + }, + { + "trait_type": "lines", + "value": "lines" + }, + { + "trait_type": "clothing", + "value": "Black Polo" + }, + { + "trait_type": "eyes", + "value": "Reptile" + }, + { + "trait_type": "mouth", + "value": "Bored" + }, + { + "trait_type": "nose", + "value": "Pierced" + }, + { + "trait_type": "headwear", + "value": "None" + }, + { + "trait_type": "accessories", + "value": "None" + } + ], + "compiler": "HashLips Art Engine", + "date": 1643224843432, + "description": "The first Ape NFT project on Oasis!", + "dna": "4f552cacf1c64251228e774446bf10e2514d26e6", + "edition": 1336, + "image": "ipfs://QmQbbX9ZcA8Dfay94vJZrmvohub1oQfLtZ791DzD8DLmMx/1336.png", + "name": " Oasis Apes #1336" + }, "metadata_accessed": "UNINTERESTING", "metadata_uri": "ipfs://QmPKAuGQnJCM2FVSxkNcyqf1TyDusKuwuD9VnWJN9CF4xA/1336.json", "name": " Oasis Apes #1336", @@ -136,6 +490,65 @@ "description": "The first Ape NFT project on Oasis!", "id": "1427", "image": "ipfs://QmQbbX9ZcA8Dfay94vJZrmvohub1oQfLtZ791DzD8DLmMx/1427.png", + "metadata": { + "attributes": [ + { + "trait_type": "background", + "value": "Oasis" + }, + { + "trait_type": "ears", + "value": "Round" + }, + { + "trait_type": "chest", + "value": "chest" + }, + { + "trait_type": "fur", + "value": "Grass Green" + }, + { + "trait_type": "fur fill", + "value": "Fill" + }, + { + "trait_type": "lines", + "value": "lines" + }, + { + "trait_type": "clothing", + "value": "Orange Tee" + }, + { + "trait_type": "eyes", + "value": "Makeup" + }, + { + "trait_type": "mouth", + "value": "Bored" + }, + { + "trait_type": "nose", + "value": "Brown" + }, + { + "trait_type": "headwear", + "value": "Harry Glasses" + }, + { + "trait_type": "accessories", + "value": "None" + } + ], + "compiler": "HashLips Art Engine", + "date": 1643227927450, + "description": "The first Ape NFT project on Oasis!", + "dna": "403f9f08799936bb67722f5b35534365474e3e7c", + "edition": 1427, + "image": "ipfs://QmQbbX9ZcA8Dfay94vJZrmvohub1oQfLtZ791DzD8DLmMx/1427.png", + "name": " Oasis Apes #1427" + }, "metadata_accessed": "UNINTERESTING", "metadata_uri": "ipfs://QmPKAuGQnJCM2FVSxkNcyqf1TyDusKuwuD9VnWJN9CF4xA/1427.json", "name": " Oasis Apes #1427", @@ -158,6 +571,65 @@ "description": "The first Ape NFT project on Oasis!", "id": "1602", "image": "ipfs://QmQbbX9ZcA8Dfay94vJZrmvohub1oQfLtZ791DzD8DLmMx/1602.png", + "metadata": { + "attributes": [ + { + "trait_type": "background", + "value": "Oasis" + }, + { + "trait_type": "ears", + "value": "Pierced" + }, + { + "trait_type": "chest", + "value": "chest" + }, + { + "trait_type": "fur", + "value": "Grass Green" + }, + { + "trait_type": "fur fill", + "value": "Fill" + }, + { + "trait_type": "lines", + "value": "lines" + }, + { + "trait_type": "clothing", + "value": "Oasis Letter S" + }, + { + "trait_type": "eyes", + "value": "Looking Up" + }, + { + "trait_type": "mouth", + "value": "Cigarette" + }, + { + "trait_type": "nose", + "value": "Sniff" + }, + { + "trait_type": "headwear", + "value": "Rugby Helmet" + }, + { + "trait_type": "accessories", + "value": "None" + } + ], + "compiler": "HashLips Art Engine", + "date": 1643227248728, + "description": "The first Ape NFT project on Oasis!", + "dna": "30686451912560dac20c96202f00e98aec1cbb07", + "edition": 1602, + "image": "ipfs://QmQbbX9ZcA8Dfay94vJZrmvohub1oQfLtZ791DzD8DLmMx/1602.png", + "name": " Oasis Apes #1602" + }, "metadata_accessed": "UNINTERESTING", "metadata_uri": "ipfs://QmPKAuGQnJCM2FVSxkNcyqf1TyDusKuwuD9VnWJN9CF4xA/1602.json", "name": " Oasis Apes #1602", @@ -180,6 +652,65 @@ "description": "The first Ape NFT project on Oasis!", "id": "1636", "image": "ipfs://QmQbbX9ZcA8Dfay94vJZrmvohub1oQfLtZ791DzD8DLmMx/1636.png", + "metadata": { + "attributes": [ + { + "trait_type": "background", + "value": "Oasis" + }, + { + "trait_type": "ears", + "value": "Cold" + }, + { + "trait_type": "chest", + "value": "chest" + }, + { + "trait_type": "fur", + "value": "Brown" + }, + { + "trait_type": "fur fill", + "value": "Fill" + }, + { + "trait_type": "lines", + "value": "lines" + }, + { + "trait_type": "clothing", + "value": "Striped Tee" + }, + { + "trait_type": "eyes", + "value": "Bloodshot" + }, + { + "trait_type": "mouth", + "value": "Cigarette" + }, + { + "trait_type": "nose", + "value": "Brown" + }, + { + "trait_type": "headwear", + "value": "Lasers" + }, + { + "trait_type": "accessories", + "value": "Silver Chain" + } + ], + "compiler": "HashLips Art Engine", + "date": 1643226813248, + "description": "The first Ape NFT project on Oasis!", + "dna": "28449570785f4c7f236073aa140d4eb5c56003a3", + "edition": 1636, + "image": "ipfs://QmQbbX9ZcA8Dfay94vJZrmvohub1oQfLtZ791DzD8DLmMx/1636.png", + "name": " Oasis Apes #1636" + }, "metadata_accessed": "UNINTERESTING", "metadata_uri": "ipfs://QmPKAuGQnJCM2FVSxkNcyqf1TyDusKuwuD9VnWJN9CF4xA/1636.json", "name": " Oasis Apes #1636", @@ -202,6 +733,65 @@ "description": "The first Ape NFT project on Oasis!", "id": "1670", "image": "ipfs://QmQbbX9ZcA8Dfay94vJZrmvohub1oQfLtZ791DzD8DLmMx/1670.png", + "metadata": { + "attributes": [ + { + "trait_type": "background", + "value": "Oasis" + }, + { + "trait_type": "ears", + "value": "Round" + }, + { + "trait_type": "chest", + "value": "chest" + }, + { + "trait_type": "fur", + "value": "Light Purple" + }, + { + "trait_type": "fur fill", + "value": "Fill" + }, + { + "trait_type": "lines", + "value": "lines" + }, + { + "trait_type": "clothing", + "value": "Oasis Suit" + }, + { + "trait_type": "eyes", + "value": "Bloodshot" + }, + { + "trait_type": "mouth", + "value": "Cynic Smile" + }, + { + "trait_type": "nose", + "value": "Rosey" + }, + { + "trait_type": "headwear", + "value": "Sunglasses" + }, + { + "trait_type": "accessories", + "value": "Gold Chain" + } + ], + "compiler": "HashLips Art Engine", + "date": 1643228228700, + "description": "The first Ape NFT project on Oasis!", + "dna": "b32d2d16ae71fa6f80d2f12621ac1d6bd61d9ebf", + "edition": 1670, + "image": "ipfs://QmQbbX9ZcA8Dfay94vJZrmvohub1oQfLtZ791DzD8DLmMx/1670.png", + "name": " Oasis Apes #1670" + }, "metadata_accessed": "UNINTERESTING", "metadata_uri": "ipfs://QmPKAuGQnJCM2FVSxkNcyqf1TyDusKuwuD9VnWJN9CF4xA/1670.json", "name": " Oasis Apes #1670", @@ -224,6 +814,65 @@ "description": "The first Ape NFT project on Oasis!", "id": "1708", "image": "ipfs://QmQbbX9ZcA8Dfay94vJZrmvohub1oQfLtZ791DzD8DLmMx/1708.png", + "metadata": { + "attributes": [ + { + "trait_type": "background", + "value": "Oasis" + }, + { + "trait_type": "ears", + "value": "Round" + }, + { + "trait_type": "chest", + "value": "chest" + }, + { + "trait_type": "fur", + "value": "Olive Green" + }, + { + "trait_type": "fur fill", + "value": "Fill" + }, + { + "trait_type": "lines", + "value": "lines" + }, + { + "trait_type": "clothing", + "value": "Oasis Suit" + }, + { + "trait_type": "eyes", + "value": "Closed" + }, + { + "trait_type": "mouth", + "value": "Bored" + }, + { + "trait_type": "nose", + "value": "Pierced" + }, + { + "trait_type": "headwear", + "value": "Sunglasses" + }, + { + "trait_type": "accessories", + "value": "None" + } + ], + "compiler": "HashLips Art Engine", + "date": 1643216585645, + "description": "The first Ape NFT project on Oasis!", + "dna": "2c7d63d776ce29fd91d4286a280af277862e9853", + "edition": 1708, + "image": "ipfs://QmQbbX9ZcA8Dfay94vJZrmvohub1oQfLtZ791DzD8DLmMx/1708.png", + "name": " Oasis Apes #1708" + }, "metadata_accessed": "UNINTERESTING", "metadata_uri": "ipfs://QmPKAuGQnJCM2FVSxkNcyqf1TyDusKuwuD9VnWJN9CF4xA/1708.json", "name": " Oasis Apes #1708", @@ -246,6 +895,65 @@ "description": "The first Ape NFT project on Oasis!", "id": "2546", "image": "ipfs://QmQbbX9ZcA8Dfay94vJZrmvohub1oQfLtZ791DzD8DLmMx/2546.png", + "metadata": { + "attributes": [ + { + "trait_type": "background", + "value": "Oasis" + }, + { + "trait_type": "ears", + "value": "Round" + }, + { + "trait_type": "chest", + "value": "chest" + }, + { + "trait_type": "fur", + "value": "Light Purple" + }, + { + "trait_type": "fur fill", + "value": "Fill" + }, + { + "trait_type": "lines", + "value": "lines" + }, + { + "trait_type": "clothing", + "value": "Blue Tee" + }, + { + "trait_type": "eyes", + "value": "Reptile" + }, + { + "trait_type": "mouth", + "value": "Squeezed" + }, + { + "trait_type": "nose", + "value": "Pierced" + }, + { + "trait_type": "headwear", + "value": "None" + }, + { + "trait_type": "accessories", + "value": "None" + } + ], + "compiler": "HashLips Art Engine", + "date": 1643227445302, + "description": "The first Ape NFT project on Oasis!", + "dna": "c68c98cb7b135ae1d0bc07242d58341ccaec5dbb", + "edition": 2546, + "image": "ipfs://QmQbbX9ZcA8Dfay94vJZrmvohub1oQfLtZ791DzD8DLmMx/2546.png", + "name": " Oasis Apes #2546" + }, "metadata_accessed": "UNINTERESTING", "metadata_uri": "ipfs://QmPKAuGQnJCM2FVSxkNcyqf1TyDusKuwuD9VnWJN9CF4xA/2546.json", "name": " Oasis Apes #2546",