MarketplaceSEALED
◆□◇!╳#~?╲?╳^!░○▓▫%░?○%□^██◆■?○▓▒▓■●◇◆@◆░●╲╲▪~█▪%▒◇░$@□#$○&█!&&^*
Transaction ID
Execution Fee
0.00000823 FLOWTransaction Summary
UpdatingMarketplace
Called FungibleToken, NonFungibleToken, FazeUtilityCoin +2 more
Script Arguments
Copy:
0listingResourceIDUInt64
131941395746158
1sellerCutUFix64
19.33470000
2beneficiaryCutUFix64
1.47000000
3beneficiaryAddressAddress
4taxCutUFix64
0.19530000
5taxAddressAddress
Cadence Script
1import FungibleToken from 0xf233dcee88fe0abe
2import NonFungibleToken from 0x1d7e57aa55817448
3import FazeUtilityCoin from 0x4eded0de73020ca5
4import CricketMoments from 0x4eded0de73020ca5
5import NFTStorefront from 0x4eb8a10cb9f87357
6
7transaction(listingResourceID: UInt64, sellerCut: UFix64, beneficiaryCut:UFix64, beneficiaryAddress: Address, taxCut:UFix64, taxAddress:Address) {
8
9 let sellerFazeUtilityCoinReceiver: Capability<&FazeUtilityCoin.Vault{FungibleToken.Receiver}>
10 let beneficiaryFazeUtilityCoinReceiver: Capability<&FazeUtilityCoin.Vault{FungibleToken.Receiver}>
11 let taxFazeUtilityCoinReceiver: Capability<&FazeUtilityCoin.Vault{FungibleToken.Receiver}>
12 let cricketMomentsProvider: Capability<&CricketMoments.Collection{NonFungibleToken.Provider, NonFungibleToken.CollectionPublic}>
13 let storefront: &NFTStorefront.Storefront
14 let listing: &NFTStorefront.Listing{NFTStorefront.ListingPublic}
15
16 prepare(account: AuthAccount) {
17 // We need a provider capability, but one is not provided by default so we create one if needed.
18 let cricketMomentsCollectionProviderPrivatePath = CricketMoments.CollectionProviderPrivatePath
19
20 self.sellerFazeUtilityCoinReceiver = account.getCapability<&FazeUtilityCoin.Vault{FungibleToken.Receiver}>(FazeUtilityCoin.ReceiverPublicPath)!
21 self.beneficiaryFazeUtilityCoinReceiver = getAccount(beneficiaryAddress).getCapability<&FazeUtilityCoin.Vault{FungibleToken.Receiver}>(FazeUtilityCoin.ReceiverPublicPath)!
22 self.taxFazeUtilityCoinReceiver = getAccount(taxAddress).getCapability<&FazeUtilityCoin.Vault{FungibleToken.Receiver}>(FazeUtilityCoin.ReceiverPublicPath)!
23
24 assert(self.sellerFazeUtilityCoinReceiver.borrow() != nil, message: "Missing or mis-typed seller FazeUtilityCoin receiver")
25 assert(self.beneficiaryFazeUtilityCoinReceiver.borrow() != nil, message: "Missing or mis-typed beneficiary FazeUtilityCoin receiver")
26 assert(self.taxFazeUtilityCoinReceiver.borrow() != nil, message: "Missing or mis-typed tax FazeUtilityCoin receiver")
27
28 if !account.getCapability<&CricketMoments.Collection{NonFungibleToken.Provider, NonFungibleToken.CollectionPublic}>(cricketMomentsCollectionProviderPrivatePath)!.check() {
29 account.link<&CricketMoments.Collection{NonFungibleToken.Provider, NonFungibleToken.CollectionPublic}>(cricketMomentsCollectionProviderPrivatePath, target: CricketMoments.CollectionStoragePath)
30 }
31
32 self.cricketMomentsProvider = account.getCapability<&CricketMoments.Collection{NonFungibleToken.Provider, NonFungibleToken.CollectionPublic}>(cricketMomentsCollectionProviderPrivatePath)!
33 assert(self.cricketMomentsProvider.borrow() != nil, message: "Missing or mis-typed CricketMoments.Collection provider")
34
35 self.storefront = account.borrow<&NFTStorefront.Storefront>(from: NFTStorefront.StorefrontStoragePath)
36 ?? panic("Missing or mis-typed NFTStorefront Storefront")
37
38 self.listing = self.storefront.borrowListing(listingResourceID: listingResourceID)
39 ?? panic("No offer with that ID in Storefront")
40 }
41
42 execute {
43
44 let sellerSaleCut = NFTStorefront.SaleCut(
45 receiver: self.sellerFazeUtilityCoinReceiver,
46 amount: sellerCut
47 )
48
49 let beneficiarySaleCut = NFTStorefront.SaleCut(
50 receiver: self.beneficiaryFazeUtilityCoinReceiver,
51 amount: beneficiaryCut
52 )
53
54 let taxSaleCut = NFTStorefront.SaleCut(
55 receiver: self.taxFazeUtilityCoinReceiver,
56 amount: taxCut
57 )
58
59 self.storefront.createListing(
60 nftProviderCapability: self.cricketMomentsProvider,
61 nftType: self.listing.getDetails().nftType,
62 nftID: self.listing.getDetails().nftID,
63 salePaymentVaultType: self.listing.getDetails().salePaymentVaultType,
64 saleCuts: taxCut>0.0? [sellerSaleCut, beneficiarySaleCut, taxSaleCut]:[sellerSaleCut, beneficiarySaleCut]
65 )
66
67 self.storefront.removeListing(listingResourceID: listingResourceID)
68 }
69}