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
6 changes: 6 additions & 0 deletions src/cadence/mainnet/getNFTIDs.cdc
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,7 @@ import Seussibles from 0x321d8fcde05f6e8c
import MetaPanda from 0xf2af175e411dfff8
import Flunks from 0x807c3d470888cc48
import LibraryPass from 0x52cbea4e6f616b8e
import SkyharborNFT from 0x33f44e504a396ba7

pub fun main(ownerAddress: Address): {String: [UInt64]} {
let owner = getAccount(ownerAddress)
Expand Down Expand Up @@ -576,6 +577,11 @@ pub fun main(ownerAddress: Address): {String: [UInt64]} {
.borrow<&{NonFungibleToken.CollectionPublic}>() {
ids["LibraryPass"] = col.getIDs()
}

if let col = owner.getCapability(SkyharborNFT.CollectionPublicPath)
.borrow<&{NonFungibleToken.CollectionPublic}>() {
ids["SkyharborNFT"] = col.getIDs()
}

return ids
}
39 changes: 39 additions & 0 deletions src/cadence/mainnet/getNFTs.cdc
Original file line number Diff line number Diff line change
Expand Up @@ -101,6 +101,7 @@ import Seussibles from 0x321d8fcde05f6e8c
import MetaPanda from 0xf2af175e411dfff8
import Flunks from 0x807c3d470888cc48
import LibraryPass from 0x52cbea4e6f616b8e
import SkyharborNFT from 0x33f44e504a396ba7

pub struct NFTCollection {
pub let owner: Address
Expand Down Expand Up @@ -294,6 +295,7 @@ pub fun main(ownerAddress: Address, ids: {String:[UInt64]}): [NFTData?] {
case "MetaPanda": d = getMetaPanda(owner: owner, id: id)
case "Flunks": d = getFlunks(owner: owner, id: id)
case "LibraryPass": d = getLibraryPass(owner: owner, id: id)
case "SkyharborNFT": d = getSkyHarborNFT(owner: owner, id: id)
default:
panic("adapter for NFT not found: ".concat(key))
}
Expand Down Expand Up @@ -4747,4 +4749,41 @@ pub fun getLibraryPass(owner: PublicAccount, id: UInt64): NFTData? {
metadata: {
}
)
}

// https://flow-view-source.com/mainnet/account/0x33f44e504a396ba7/contract/SkyharborNFT
pub fun getSkyHarborNFT(owner: PublicAccount, id: UInt64): NFTData? {
let contract = NFTContractData(
name: "SkyharborNFT",
address: 0x33f44e504a396ba7,
storage_path: "SkyharborNFT.CollectionStoragePath",
public_path: "SkyharborNFT.CollectionPublicPath",
public_collection_name: "",
external_domain: "https://www.skyharbor.app/"
)

let col = owner.getCapability<&AnyResource{MetadataViews.ResolverCollection}>(SkyharborNFT.CollectionPublicPath)
.borrow<>()
if col == nil { return nil }

let nftResolver = col!.borrowViewResolver(id: id)
if nftResolver == nil { return nil }

let displayView = nftResolver!.resolveView(Type<MetadataViews.Display>())!
let display = displayView as! MetadataViews.Display
let ipfsFile = display.thumbnail as! MetadataViews.IPFSFile

return NFTData(
contract: contract,
id: id,
uuid: nil,
title: display.name,
description: display.description,
external_domain_view_url: nil,
token_uri: nil,
media: [NFTMedia(uri: ipfsFile.uri(), mimetype: "image"),
NFTMedia(uri: ipfsFile.uri(), mimetype: "video")
],
metadata: {}
)
}
5 changes: 5 additions & 0 deletions src/cadence/mainnet/testGetNFTIDs.sh
Original file line number Diff line number Diff line change
Expand Up @@ -505,6 +505,11 @@ LibraryPass)
echo "LibraryPass"
flow scripts execute getNFTIDs.cdc 0x52cbea4e6f616b8e --network mainnet
;;

SkyharborNFT)
echo "SkyharborNFT"
flow scripts execute getNFTIDs.cdc 0x5affd8c030ae5761 --network mainnet
;;

*)
echo "Unknown contract"
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 @@ -487,6 +487,10 @@ LibraryPass)
echo "LibraryPass"
flow scripts execute getNFTs.cdc --args-json '[{ "type": "Address", "value": "0x52cbea4e6f616b8e" }, { "type": "Dictionary", "value": [{ "key": { "type": "String", "value": "LibraryPass" }, "value": { "type": "Array", "value": [{ "type": "UInt64", "value": "2" }] } }] }]' --network mainnet
;;
SkyharborNFT)
echo "SkyharborNFT"
flow scripts execute getNFTs.cdc --args-json '[{ "type": "Address", "value": "0x5affd8c030ae5761" }, { "type": "Dictionary", "value": [{ "key": { "type": "String", "value": "SkyharborNFT" }, "value": { "type": "Array", "value": [{ "type": "UInt64", "value": "1" }] } }] }]' --network mainnet
;;
*)
echo "Unknown contract"
;;
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 @@ -72,6 +72,7 @@ import ProShop_5 from 0x8c7e52f597aa6117
import Flovatar from 0x9392a4a7c3f49a0b
import FlovatarComponent from 0x9392a4a7c3f49a0b
import ByteNextMedalNFT from 0x734061e710725233
import SkyharborNFT from 0x9af2f3f3b56ce0e7

pub fun main(ownerAddress: Address): {String: [UInt64]} {
let owner = getAccount(ownerAddress)
Expand Down Expand Up @@ -407,6 +408,11 @@ pub fun main(ownerAddress: Address): {String: [UInt64]} {
.borrow<&{NonFungibleToken.CollectionPublic}>() {
ids["ByteNextMedalNFT"] = col.getIDs()
}

if let col = owner.getCapability(SkyharborNFT.CollectionPublicPath)
.borrow<&{NonFungibleToken.CollectionPublic}>() {
ids["SkyharborNFT"] = col.getIDs()
}

return ids
}
Loading