MarketplaceSEALED
?█●■&$●#╱*@╳▪?▒■○░▪◇□╱%*◇%▪~~○●╱▪^~~╲?$●□@$▪%○~!░░◇*■!╲^~◆╲╳█~*$
Transaction ID
Execution Fee
0.00002499 FLOWTransaction Summary
MarketplaceCalled FungibleToken, NonFungibleToken, FazeUtilityCoin +2 more
Script Arguments
0listingResourceIDs[UInt64]
[ "219902327757412" ]
1sellerCuts[UFix64]
[ "36.00000000" ]
2beneficiaryCuts[UFix64]
[ "4.00000000" ]
3beneficiaryAddressAddress
4taxCuts[UFix64]
[ "0.00000000" ]
5taxAddressAddress
6sellerFTAddressAddress
Cadence Script
1import FungibleToken from 0xf233dcee88fe0abe
2import NonFungibleToken from 0x1d7e57aa55817448
3import FazeUtilityCoin from 0x4eded0de73020ca5
4import CricketMoments from 0x4eded0de73020ca5
5import NFTStorefront from 0x4eb8a10cb9f87357
6
7transaction(listingResourceIDs: [UInt64], sellerCuts: [UFix64], beneficiaryCuts:[UFix64], beneficiaryAddress: Address, taxCuts:[UFix64], taxAddress:Address, sellerFTAddress: Address) {
8
9 let sellerFazeUtilityCoinReceiver: Capability<&FazeUtilityCoin.Vault>
10 let beneficiaryFazeUtilityCoinReceiver: Capability<&FazeUtilityCoin.Vault>
11 let taxFazeUtilityCoinReceiver: Capability<&FazeUtilityCoin.Vault>
12 let cricketMomentsProvider: Capability<auth(NonFungibleToken.Withdraw) &CricketMoments.Collection>
13 let storefront: auth(NFTStorefront.CreateListing, NFTStorefront.RemoveListing) &NFTStorefront.Storefront
14 let listings: [&{NFTStorefront.ListingPublic}]
15
16 prepare(account: auth(BorrowValue, Capabilities, SaveValue) &Account) {
17 self.sellerFazeUtilityCoinReceiver = getAccount(sellerFTAddress).capabilities.get<&FazeUtilityCoin.Vault>(FazeUtilityCoin.ReceiverPublicPath)
18 self.beneficiaryFazeUtilityCoinReceiver = getAccount(beneficiaryAddress).capabilities.get<&FazeUtilityCoin.Vault>(FazeUtilityCoin.ReceiverPublicPath)
19 self.taxFazeUtilityCoinReceiver = getAccount(taxAddress).capabilities.get<&FazeUtilityCoin.Vault>(FazeUtilityCoin.ReceiverPublicPath)
20
21 assert(self.sellerFazeUtilityCoinReceiver.borrow() != nil, message: "Missing or mis-typed seller FazeUtilityCoin receiver")
22 assert(self.beneficiaryFazeUtilityCoinReceiver.borrow() != nil, message: "Missing or mis-typed beneficiary FazeUtilityCoin receiver")
23 assert(self.taxFazeUtilityCoinReceiver.borrow() != nil, message: "Missing or mis-typed tax FazeUtilityCoin receiver")
24
25 self.cricketMomentsProvider = account.capabilities.storage.issue<auth(NonFungibleToken.Withdraw) &CricketMoments.Collection>(CricketMoments.CollectionStoragePath)
26 assert(self.cricketMomentsProvider.borrow() != nil, message: "Missing or mis-typed CricketMoments.Collection provider")
27
28 self.storefront = account.storage.borrow<auth(NFTStorefront.CreateListing, NFTStorefront.RemoveListing) &NFTStorefront.Storefront>(from: NFTStorefront.StorefrontStoragePath)
29 ?? panic("Missing or mis-typed NFTStorefront Storefront")
30
31 self.listings = []
32 for listingResourceID in listingResourceIDs {
33 let listing = self.storefront.borrowListing(listingResourceID: listingResourceID)!
34 self.listings.append(listing)
35 }
36 }
37
38 execute {
39
40 for index, listing in self.listings {
41 let sellerSaleCut = NFTStorefront.SaleCut(
42 receiver: self.sellerFazeUtilityCoinReceiver,
43 amount: sellerCuts[index]
44 )
45
46 let beneficiarySaleCut = NFTStorefront.SaleCut(
47 receiver: self.beneficiaryFazeUtilityCoinReceiver,
48 amount: beneficiaryCuts[index]
49 )
50
51 let taxSaleCut = NFTStorefront.SaleCut(
52 receiver: self.taxFazeUtilityCoinReceiver,
53 amount: taxCuts[index]
54 )
55
56 self.storefront.createListing(
57 nftProviderCapability: self.cricketMomentsProvider,
58 nftType: listing.getDetails().nftType,
59 nftID: listing.getDetails().nftID,
60 salePaymentVaultType: listing.getDetails().salePaymentVaultType,
61 saleCuts: taxCuts[index]>0.0? [sellerSaleCut, beneficiarySaleCut, taxSaleCut]:[sellerSaleCut, beneficiarySaleCut]
62 )
63
64 self.storefront.removeListing(listingResourceID: listingResourceIDs[index])
65 }
66 }
67}