Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
5 changes: 5 additions & 0 deletions src/cadence/mainnet/getNFTIDs.cdc
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,7 @@ import FlovatarComponent from 0x921ea449dffec68a
import Moments from 0xd4ad4740ee426334
import MotoGPCard from 0xa49cc0ee46c54bfb
import UFC_NFT from 0x329feb3ab062d289
import StoreFront from 0x766b859539a6679b
import ByteNextMedalNFT from 0x3b16cb9f5c036412
import MaxarNFT from 0xa4e9020ad21eb30b
import RCRDSHPNFT from 0x6c3ff40b90b928ab
Expand Down Expand Up @@ -545,6 +546,10 @@ pub fun main(ownerAddress: Address): {String: [UInt64]} {
.borrow<&{NonFungibleToken.CollectionPublic}>() {
ids["FlovatarComponent"] = col.getIDs()
}
if let col = owner.getCapability(StoreFront.collectionPublicPath)
.borrow<&{StoreFront.CollectionPublic}>() {
ids["StoreFront"] = col.getIDs()
}

if let col = owner.getCapability(ByteNextMedalNFT.CollectionPublicPath)
.borrow<&{NonFungibleToken.CollectionPublic}>() {
Expand Down
53 changes: 53 additions & 0 deletions src/cadence/mainnet/getNFTs.cdc
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,8 @@ import MaxarNFT from 0xa4e9020ad21eb30b
import Flovatar from 0x921ea449dffec68a
import FlovatarComponent from 0x921ea449dffec68a
import FlovatarComponentTemplate from 0x921ea449dffec68a
import StoreFront from 0x766b859539a6679b
import StoreFrontViews from 0x766b859539a6679b
import ByteNextMedalNFT from 0x3b16cb9f5c036412
import RCRDSHPNFT from 0x6c3ff40b90b928ab
import Seussibles from 0x321d8fcde05f6e8c
Expand Down Expand Up @@ -286,6 +288,7 @@ pub fun main(ownerAddress: Address, ids: {String:[UInt64]}): [NFTData?] {
case "MotoGPCard": d = getMotoGPCardNFT(owner: owner, id: id)
case "UFC_NFT": d = getUFCNFT(owner: owner, id: id)
case "Flovatar": d = getFlovatarNFT(owner: owner, id: id)
case "StoreFront": d = getStoreFront(owner: owner, id: id)
case "FlovatarComponent": d = getFlovatarComponentNFT(owner: owner, id: id)
case "ByteNextMedalNFT": d = getByteNextMedalNFT(owner: owner, id: id)
case "RCRDSHPNFT": d = getRCRDSHPNFT(owner: owner, id: id)
Expand Down Expand Up @@ -4709,4 +4712,54 @@ pub fun getFlunks(owner: PublicAccount, id: UInt64): NFTData? {
media: [NFTMedia(uri: httpFile.uri(), mimetype: "image")],
metadata: {}
)
}

// https://flow-view-source.com/mainnet/account/0x766b859539a6679b/contract/StoreFront
pub fun getStoreFront(owner: PublicAccount, id: UInt64): NFTData? {

let col = owner.getCapability(StoreFront.collectionPublicPath)
.borrow<&{StoreFront.CollectionPublic}>()
if col == nil { return nil }

let nft = col!.borrow(id: id)
if nft == nil { return nil }

let view = nft!.resolveView(Type<StoreFrontViews.StoreFrontDisplay>())! as! StoreFrontViews.StoreFrontDisplay
var metadata = view.metadata
let title = metadata["name"]!
let description = metadata["description"]!

let viewNFTCollection = nft!.resolveView(Type<MetadataViews.NFTCollectionDisplay>())! as! MetadataViews.NFTCollectionDisplay

metadata["editionNumber"] = "1"
metadata["editionCount"] = "1"

let template = StoreFront.getTemplate(templateId: nft!.data.templateId)!
let contract = NFTContractData(
name: "StoreFront",
address: 0x766b859539a6679b,
storage_path: "StoreFront.collectionStoragePath",
public_path: "StoreFront.collectionPublicPath",
public_collection_name: "StoreFront.CollectionPublic",
external_domain: viewNFTCollection.externalURL.url,
)

let rawMetadata: {String:String?} = {}
for key in metadata.keys {
rawMetadata.insert(key: key, metadata[key])
}

return NFTData(
contract: contract,
id: nft!.id,
uuid: nft!.uuid,
title: title,
description: description,
external_domain_view_url: metadata["external_url"]!,
token_uri: nil,
media: [
NFTMedia(uri: metadata["image"], mimetype: "image")
],
metadata: rawMetadata
)
}
4 changes: 4 additions & 0 deletions src/cadence/mainnet/testGetNFTIDs.sh
Original file line number Diff line number Diff line change
Expand Up @@ -470,6 +470,10 @@ Flovatar)
echo "Flovatar"
flow scripts execute getNFTIDs.cdc 0x2a0eccae942667be --network mainnet
;;
StoreFront)
echo "StoreFront"
flow scripts execute getNFTIDs.cdc 0x766b859539a6679b --network mainnet
;;

FlovatarComponent)
echo "FlovatarComponent"
Expand Down
4 changes: 4 additions & 0 deletions src/cadence/mainnet/testGetNFTs.sh
Original file line number Diff line number Diff line change
Expand Up @@ -463,6 +463,10 @@ Flovatar)
echo "FlovatarComponent"
flow scripts execute getNFTs.cdc --args-json '[{ "type": "Address", "value": "0x2a0eccae942667be" }, { "type": "Dictionary", "value": [{ "key": { "type": "String", "value": "FlovatarComponent" }, "value": { "type": "Array", "value": [{ "type": "UInt64", "value": "440" }] } }] }]' --network mainnet
;;
StoreFront)
echo "StoreFront"
flow scripts execute getNFTs.cdc --args-json '[{ "type": "Address", "value": "0x766b859539a6679b" }, { "type": "Dictionary", "value": [{ "key": { "type": "String", "value": "StoreFront" }, "value": { "type": "Array", "value": [{ "type": "UInt64", "value": "1" }] } }] }]' --network mainnet
;;
ByteNextMedalNFT)
echo "ByteNextMedalNFT"
flow scripts execute getNFTs.cdc --args-json '[{ "type": "Address", "value": "0x3f9d4046fcd6fce3" }, { "type": "Dictionary", "value": [{ "key": { "type": "String", "value": "ByteNextMedalNFT" }, "value": { "type": "Array", "value": [{ "type": "UInt64", "value": "9999" }] } }] }]' --network mainnet
Expand Down
6 changes: 6 additions & 0 deletions src/cadence/testnet/getNFTIDs.cdc
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,8 @@ import DooverseItems from 0x5ab407dfb3bf35e8
import TrartContractNFT from 0x4e024b8545e52d07
import SturdyItems from 0xfafb022e4e45634b
import QRLNFT from 0x5dfbd0d5aba6acf7
import StoreFront from 0x34d2a0f0a4f8c6e8

import MaxarNFT from 0x5dfbd0d5aba6acf7
import Gear from 0x8c7e52f597aa6117
import ProShop_5 from 0x8c7e52f597aa6117
Expand Down Expand Up @@ -402,6 +404,10 @@ pub fun main(ownerAddress: Address): {String: [UInt64]} {
.borrow<&{NonFungibleToken.CollectionPublic}>() {
ids["FlovatarComponent"] = col.getIDs()
}
if let col = owner.getCapability(StoreFront.collectionPublicPath)
.borrow<&{StoreFront.CollectionPublic}>() {
ids["StoreFront"] = col.getIDs()
}

if let col = owner.getCapability(ByteNextMedalNFT.CollectionPublicPath)
.borrow<&{NonFungibleToken.CollectionPublic}>() {
Expand Down
53 changes: 53 additions & 0 deletions src/cadence/testnet/getNFTs.cdc
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,8 @@ import ProShop_5 from 0x8c7e52f597aa6117
import Flovatar from 0x9392a4a7c3f49a0b
import FlovatarComponent from 0x9392a4a7c3f49a0b
import FlovatarComponentTemplate from 0x9392a4a7c3f49a0b
import StoreFront from 0x34d2a0f0a4f8c6e8
import StoreFrontViews from 0x34d2a0f0a4f8c6e8
import MaxarNFT from 0x5dfbd0d5aba6acf7
import ByteNextMedalNFT from 0x734061e710725233

Expand Down Expand Up @@ -226,6 +228,7 @@ pub fun main(ownerAddress: Address, ids: {String:[UInt64]}): [NFTData?] {
case "SturdyItems": d = getSturdyItemsNFT(owner: owner, id: id)
case "QRL": d = getQRLNFT(owner: owner, id: id)
case "Flovatar": d = getFlovatarNFT(owner: owner, id: id)
case "StoreFront": d = getStoreFront(owner: owner, id: id)
case "FlovatarComponent": d = getFlovatarComponentNFT(owner: owner, id: id)
case "ByteNextMedalNFT": d = getByteNextMedalNFT(owner: owner, id: id)
default:
Expand Down Expand Up @@ -3191,4 +3194,54 @@ pub fun getByteNextMedalNFT(owner: PublicAccount, id: UInt64): NFTData? {
media: [NFTMedia(uri: rawMetadata["metaURI"], mimetype: "image")],
metadata: rawMetadata
)
}

// https://flow-view-source.com/testnet/account/0x34d2a0f0a4f8c6e8/contract/StoreFront
pub fun getStoreFront(owner: PublicAccount, id: UInt64): NFTData? {

let col = owner.getCapability(StoreFront.collectionPublicPath)
.borrow<&{StoreFront.CollectionPublic}>()
if col == nil { return nil }

let nft = col!.borrow(id: id)
if nft == nil { return nil }

let view = nft!.resolveView(Type<StoreFrontViews.StoreFrontDisplay>())! as! StoreFrontViews.StoreFrontDisplay
var metadata = view.metadata
let title = metadata["name"]!
let description = metadata["description"]!

let viewNFTCollection = nft!.resolveView(Type<MetadataViews.NFTCollectionDisplay>())! as! MetadataViews.NFTCollectionDisplay

metadata["editionNumber"] = "1"
metadata["editionCount"] = "1"

let template = StoreFront.getTemplate(templateId: nft!.data.templateId)!
let contract = NFTContractData(
name: "StoreFront",
address: 0x34d2a0f0a4f8c6e8,
storage_path: "StoreFront.collectionStoragePath",
public_path: "StoreFront.collectionPublicPath",
public_collection_name: "StoreFront.CollectionPublic",
external_domain: viewNFTCollection.externalURL.url,
)

let rawMetadata: {String:String?} = {}
for key in metadata.keys {
rawMetadata.insert(key: key, metadata[key])
}

return NFTData(
contract: contract,
id: nft!.id,
uuid: nft!.uuid,
title: title,
description: description,
external_domain_view_url: metadata["external_url"]!,
token_uri: nil,
media: [
NFTMedia(uri: metadata["image"], mimetype: "image")
],
metadata: rawMetadata
)
}
5 changes: 5 additions & 0 deletions src/cadence/testnet/testGetNFTIDs.sh
Original file line number Diff line number Diff line change
Expand Up @@ -161,6 +161,11 @@ Flovatar)
echo "Flovatar"
flow scripts execute getNFTIDs.cdc 0x57991b17c63ea6c1 --network mainnet
;;
StoreFront)
echo "StoreFront"
flow scripts execute getNFTIDs.cdc 0xa3bad204ca0e87d9 --network testnet
;;

FlovatarComponent)
echo "FlovatarComponent"
flow scripts execute getNFTIDs.cdc 0x57991b17c63ea6c1 --network mainnet
Expand Down
4 changes: 4 additions & 0 deletions src/cadence/testnet/testGetNFTs.sh
Original file line number Diff line number Diff line change
Expand Up @@ -169,6 +169,10 @@ FlovatarComponent)
echo "FlovatarComponent"
flow scripts execute getNFTs.cdc --args-json '[{ "type": "Address", "value": "0x57991b17c63ea6c1" }, { "type": "Dictionary", "value": [{ "key": { "type": "String", "value": "FlovatarComponent" }, "value": { "type": "Array", "value": [{ "type": "UInt64", "value": "33270" }] } }] }]' --network testnet
;;
StoreFront)
echo "StoreFront"
flow scripts execute getNFTs.cdc --args-json '[{ "type": "Address", "value": "0xa3bad204ca0e87d9" }, { "type": "Dictionary", "value": [{ "key": { "type": "String", "value": "StoreFront" }, "value": { "type": "Array", "value": [{ "type": "UInt64", "value": "1" }] } }] }]' --network testnet
;;
ByteNextMedalNFT)
echo "ByteNextMedalNFT"
flow scripts execute getNFTs.cdc --args-json '[{ "type": "Address", "value": "0x4bab9fe5c1ff69f6" }, { "type": "Dictionary", "value": [{ "key": { "type": "String", "value": "ByteNextMedalNFT" }, "value": { "type": "Array", "value": [{ "type": "UInt64", "value": "999" }] } }] }]' --network testnet
Expand Down