MarketplaceSEALED
╳^#╳#●▒!%◆^●▫&~*╳~░$░$╳█╳$◇◆^▓◆╳!╳@?□@&╳█~╲▫◆╳○●╳╲?◇█╲?▒!▓◇■*?○#
Transaction ID
Execution Fee
0.0023 FLOWTransaction Summary
MarketplaceCalled FungibleToken, NonFungibleToken, FazeUtilityCoin +2 more
Script Arguments
0saleItemIDs[UInt64]
[ "3054336" ]
1sellerCuts[UFix64]
[ "5.79150000" ]
2beneficiaryCuts[UFix64]
[ "0.65000000" ]
3beneficiaryAddressAddress
4taxCuts[UFix64]
[ "0.05850000" ]
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(saleItemIDs: [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.Storefront
14
15 prepare(account: auth(BorrowValue, Capabilities, SaveValue) &Account) {
16 self.sellerFazeUtilityCoinReceiver = getAccount(sellerFTAddress).capabilities.get<&FazeUtilityCoin.Vault>(FazeUtilityCoin.ReceiverPublicPath)
17 self.beneficiaryFazeUtilityCoinReceiver = getAccount(beneficiaryAddress).capabilities.get<&FazeUtilityCoin.Vault>(FazeUtilityCoin.ReceiverPublicPath)
18 self.taxFazeUtilityCoinReceiver = getAccount(taxAddress).capabilities.get<&FazeUtilityCoin.Vault>(FazeUtilityCoin.ReceiverPublicPath)
19
20 assert(self.sellerFazeUtilityCoinReceiver.borrow() != nil, message: "Missing or mis-typed seller FazeUtilityCoin receiver")
21 assert(self.beneficiaryFazeUtilityCoinReceiver.borrow() != nil, message: "Missing or mis-typed beneficiary FazeUtilityCoin receiver")
22 assert(self.taxFazeUtilityCoinReceiver.borrow() != nil, message: "Missing or mis-typed tax FazeUtilityCoin receiver")
23
24 self.cricketMomentsProvider = account.capabilities.storage.issue<auth(NonFungibleToken.Withdraw) &CricketMoments.Collection>(CricketMoments.CollectionStoragePath)
25 assert(self.cricketMomentsProvider.borrow() != nil, message: "Missing or mis-typed CricketMoments.Collection provider")
26
27 self.storefront = account.storage.borrow<auth(NFTStorefront.CreateListing) &NFTStorefront.Storefront>(from: NFTStorefront.StorefrontStoragePath)
28 ?? panic("Missing or mis-typed NFTStorefront Storefront")
29 }
30
31 execute {
32
33 for index, saleItemID in saleItemIDs {
34 let sellerSaleCut = NFTStorefront.SaleCut(
35 receiver: self.sellerFazeUtilityCoinReceiver,
36 amount: sellerCuts[index]
37 )
38
39 let beneficiarySaleCut = NFTStorefront.SaleCut(
40 receiver: self.beneficiaryFazeUtilityCoinReceiver,
41 amount: beneficiaryCuts[index]
42 )
43
44 let taxSaleCut = NFTStorefront.SaleCut(
45 receiver: self.taxFazeUtilityCoinReceiver,
46 amount: taxCuts[index]
47 )
48
49 self.storefront.createListing(
50 nftProviderCapability: self.cricketMomentsProvider,
51 nftType: Type<@CricketMoments.NFT>(),
52 nftID: saleItemID,
53 salePaymentVaultType: Type<@FazeUtilityCoin.Vault>(),
54 saleCuts: taxCuts[index]>0.0? [sellerSaleCut, beneficiarySaleCut, taxSaleCut]:[sellerSaleCut, beneficiarySaleCut]
55 )
56 }
57 }
58}