DeploySEALED

╳□^@$░?#╱$◆░!░^○╱●╲@□#╳?$?◆^░~╱██●$◇@○!*^%◆?■◇$~▪#▒□*▒#%&~$●▒▫█#

Transaction ID

Timestamp

Jun 18, 2025, 10:26:21 AM UTC
8mo ago

Block Height

116,806,127

Computation

0

Proposerseq:0 key:0

Authorizers

1

Transaction Summary

Deploy

Contract deployment

Contract deployment

Script Arguments

0nameString
MFLOffersResolver
1codeString
import NonFungibleToken from 0x1d7e57aa55817448 import MetadataViews from 0x1d7e57aa55817448 import Resolver from 0xb8ea91944fd51c43 import ViewResolver from 0x1d7e57aa55817448 access(all) contract MFLOffersResolver { access(all) let PublicPath: PublicPath access(all) let StoragePath: StoragePath access(all) enum ResolverType: UInt8 { access(all) case NFT access(all) case Global } access(all) resource OfferResolver: Resolver.ResolverPublic { access(all) fun checkOfferResolver( item: &{NonFungibleToken.NFT, ViewResolver.Resolver}, offerParamsString: {String:String}, offerParamsUInt64: {String:UInt64}, offerParamsUFix64: {String:UFix64} ): Bool { if let expiry = offerParamsUInt64["expiry"] { assert(expiry > UInt64(getCurrentBlock().timestamp), message: "offer is expired") } switch offerParamsString["resolver"]! { case ResolverType.NFT.rawValue.toString(): assert(item.id.toString() == offerParamsString["nftId"], message: "item NFT does not have specified ID") return true case ResolverType.Global.rawValue.toString(): assert(item.getType().identifier == offerParamsString["nftType"], message: "item NFT does not have specified type") return true default: panic("Invalid Resolver on Offer: ".concat(offerParamsString["resolver"] ?? "unknown")) } } } access(all) fun createResolver(): @OfferResolver { return <-create OfferResolver() } access(all) fun getResolverCap(): Capability<&{Resolver.ResolverPublic}> { return self.account.capabilities.get<&{Resolver.ResolverPublic}>(MFLOffersResolver.PublicPath) } init() { let p = "OffersResolver".concat(self.account.address.toString()) self.PublicPath = PublicPath(identifier: p)! self.StoragePath = StoragePath(identifier: p)! let resolver <- create OfferResolver() self.account.storage.save(<-resolver, to: self.StoragePath) self.account.capabilities.publish( self.account.capabilities.storage.issue<&{Resolver.ResolverPublic}>(self.StoragePath), at: self.PublicPath ) } }

Cadence Script

1transaction(name: String, code: String ) {
2		prepare(signer: auth(AddContract) &Account) {
3			signer.contracts.add(name: name, code: code.utf8 )
4		}
5	}