@flowtyio/flow-contracts 0.1.0-beta.2 → 0.1.0-beta.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/contracts/Burner.cdc +44 -0
- package/contracts/FlowStorageFees.cdc +15 -15
- package/contracts/FlowToken.cdc +29 -78
- package/contracts/FungibleToken.cdc +80 -53
- package/contracts/FungibleTokenMetadataViews.cdc +13 -25
- package/contracts/MetadataViews.cdc +107 -50
- package/contracts/NonFungibleToken.cdc +110 -60
- package/contracts/TokenForwarding.cdc +19 -11
- package/contracts/ViewResolver.cdc +20 -16
- package/contracts/dapper/DapperUtilityCoin.cdc +106 -39
- package/contracts/dapper/FlowUtilityToken.cdc +107 -40
- package/contracts/dapper/TopShot.cdc +323 -259
- package/contracts/dapper/TopShotLocking.cdc +41 -15
- package/contracts/dapper/offers/DapperOffersV2.cdc +36 -40
- package/contracts/dapper/offers/OffersV2.cdc +52 -51
- package/contracts/dapper/offers/Resolver.cdc +13 -12
- package/contracts/emerald-city/FLOAT.cdc +259 -254
- package/contracts/example/ExampleNFT.cdc +419 -0
- package/contracts/example/ExampleToken.cdc +302 -0
- package/contracts/find/FindViews.cdc +357 -353
- package/contracts/flow-utils/AddressUtils.cdc +20 -23
- package/contracts/flow-utils/ArrayUtils.cdc +10 -11
- package/contracts/flow-utils/ScopedFTProviders.cdc +27 -19
- package/contracts/flow-utils/ScopedNFTProviders.cdc +31 -26
- package/contracts/flow-utils/StringUtils.cdc +24 -37
- package/contracts/hybrid-custody/CapabilityDelegator.cdc +29 -26
- package/contracts/hybrid-custody/CapabilityFactory.cdc +21 -18
- package/contracts/hybrid-custody/CapabilityFilter.cdc +42 -24
- package/contracts/hybrid-custody/HybridCustody.cdc +303 -242
- package/contracts/hybrid-custody/factories/FTAllFactory.cdc +16 -4
- package/contracts/hybrid-custody/factories/FTBalanceFactory.cdc +16 -4
- package/contracts/hybrid-custody/factories/FTProviderFactory.cdc +17 -5
- package/contracts/hybrid-custody/factories/FTReceiverBalanceFactory.cdc +16 -4
- package/contracts/hybrid-custody/factories/FTReceiverFactory.cdc +16 -4
- package/contracts/hybrid-custody/factories/FTVaultFactory.cdc +45 -0
- package/contracts/hybrid-custody/factories/NFTCollectionFactory.cdc +45 -0
- package/contracts/hybrid-custody/factories/NFTCollectionPublicFactory.cdc +16 -4
- package/contracts/hybrid-custody/factories/NFTProviderAndCollectionPublicFactory.cdc +16 -4
- package/contracts/hybrid-custody/factories/NFTProviderFactory.cdc +16 -4
- package/contracts/lost-and-found/LostAndFound.cdc +14 -14
- package/contracts/nft-catalog/NFTCatalog.cdc +60 -64
- package/contracts/nft-catalog/NFTCatalogAdmin.cdc +28 -27
- package/flow.json +38 -1
- package/package.json +1 -1
|
@@ -1,10 +1,22 @@
|
|
|
1
1
|
import "CapabilityFactory"
|
|
2
2
|
import "FungibleToken"
|
|
3
3
|
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
4
|
+
access(all) contract FTAllFactory {
|
|
5
|
+
access(all) struct Factory: CapabilityFactory.Factory {
|
|
6
|
+
access(all) view fun getCapability(acct: auth(Capabilities) &Account, controllerID: UInt64): Capability? {
|
|
7
|
+
if let con = acct.capabilities.storage.getController(byCapabilityID: controllerID) {
|
|
8
|
+
if !con.capability.check<auth(FungibleToken.Withdraw) &{FungibleToken.Provider, FungibleToken.Receiver, FungibleToken.Balance}>() {
|
|
9
|
+
return nil
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
return con.capability as! Capability<auth(FungibleToken.Withdraw) &{FungibleToken.Provider, FungibleToken.Receiver, FungibleToken.Balance}>
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
return nil
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
access(all) view fun getPublicCapability(acct: &Account, path: PublicPath): Capability? {
|
|
19
|
+
return nil
|
|
8
20
|
}
|
|
9
21
|
}
|
|
10
22
|
}
|
|
@@ -1,10 +1,22 @@
|
|
|
1
1
|
import "CapabilityFactory"
|
|
2
2
|
import "FungibleToken"
|
|
3
3
|
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
4
|
+
access(all) contract FTBalanceFactory {
|
|
5
|
+
access(all) struct Factory: CapabilityFactory.Factory {
|
|
6
|
+
access(all) view fun getCapability(acct: auth(Capabilities) &Account, controllerID: UInt64): Capability? {
|
|
7
|
+
if let con = acct.capabilities.storage.getController(byCapabilityID: controllerID) {
|
|
8
|
+
if !con.capability.check<&{FungibleToken.Balance}>() {
|
|
9
|
+
return nil
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
return con.capability as! Capability<&{FungibleToken.Balance}>
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
return nil
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
access(all) view fun getPublicCapability(acct: &Account, path: PublicPath): Capability? {
|
|
19
|
+
return acct.capabilities.get<&{FungibleToken.Balance}>(path)
|
|
8
20
|
}
|
|
9
21
|
}
|
|
10
22
|
}
|
|
@@ -1,10 +1,22 @@
|
|
|
1
1
|
import "CapabilityFactory"
|
|
2
2
|
import "FungibleToken"
|
|
3
3
|
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
4
|
+
access(all) contract FTProviderFactory {
|
|
5
|
+
access(all) struct Factory: CapabilityFactory.Factory {
|
|
6
|
+
access(all) view fun getCapability(acct: auth(Capabilities) &Account, controllerID: UInt64): Capability? {
|
|
7
|
+
if let con = acct.capabilities.storage.getController(byCapabilityID: controllerID) {
|
|
8
|
+
if !con.capability.check<auth(FungibleToken.Withdraw) &{FungibleToken.Provider}>() {
|
|
9
|
+
return nil
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
return con.capability as! Capability<auth(FungibleToken.Withdraw) &{FungibleToken.Provider}>
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
return nil
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
access(all) view fun getPublicCapability(acct: &Account, path: PublicPath): Capability? {
|
|
19
|
+
return nil
|
|
8
20
|
}
|
|
9
21
|
}
|
|
10
|
-
}
|
|
22
|
+
}
|
|
@@ -1,10 +1,22 @@
|
|
|
1
1
|
import "CapabilityFactory"
|
|
2
2
|
import "FungibleToken"
|
|
3
3
|
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
4
|
+
access(all) contract FTReceiverBalanceFactory {
|
|
5
|
+
access(all) struct Factory: CapabilityFactory.Factory {
|
|
6
|
+
access(all) view fun getCapability(acct: auth(Capabilities) &Account, controllerID: UInt64): Capability? {
|
|
7
|
+
if let con = acct.capabilities.storage.getController(byCapabilityID: controllerID) {
|
|
8
|
+
if !con.capability.check<&{FungibleToken.Receiver, FungibleToken.Balance}>() {
|
|
9
|
+
return nil
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
return con.capability as! Capability<&{FungibleToken.Receiver, FungibleToken.Balance}>
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
return nil
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
access(all) view fun getPublicCapability(acct: &Account, path: PublicPath): Capability? {
|
|
19
|
+
return acct.capabilities.get<&{FungibleToken.Receiver, FungibleToken.Balance}>(path)
|
|
8
20
|
}
|
|
9
21
|
}
|
|
10
22
|
}
|
|
@@ -1,10 +1,22 @@
|
|
|
1
1
|
import "CapabilityFactory"
|
|
2
2
|
import "FungibleToken"
|
|
3
3
|
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
4
|
+
access(all) contract FTReceiverFactory {
|
|
5
|
+
access(all) struct Factory: CapabilityFactory.Factory {
|
|
6
|
+
access(all) view fun getCapability(acct: auth(Capabilities) &Account, controllerID: UInt64): Capability? {
|
|
7
|
+
if let con = acct.capabilities.storage.getController(byCapabilityID: controllerID) {
|
|
8
|
+
if !con.capability.check<&{FungibleToken.Receiver}>() {
|
|
9
|
+
return nil
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
return con.capability as! Capability<&{FungibleToken.Receiver}>
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
return nil
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
access(all) view fun getPublicCapability(acct: &Account, path: PublicPath): Capability? {
|
|
19
|
+
return acct.capabilities.get<&{FungibleToken.Receiver}>(path)
|
|
8
20
|
}
|
|
9
21
|
}
|
|
10
22
|
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import "CapabilityFactory"
|
|
2
|
+
import "FungibleToken"
|
|
3
|
+
|
|
4
|
+
access(all) contract FTVaultFactory {
|
|
5
|
+
access(all) struct WithdrawFactory: CapabilityFactory.Factory {
|
|
6
|
+
access(all) view fun getCapability(acct: auth(Capabilities) &Account, controllerID: UInt64): Capability? {
|
|
7
|
+
if let con = acct.capabilities.storage.getController(byCapabilityID: controllerID) {
|
|
8
|
+
if !con.capability.check<auth(FungibleToken.Withdraw) &{FungibleToken.Vault}>() {
|
|
9
|
+
return nil
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
return con.capability as! Capability<auth(FungibleToken.Withdraw) &{FungibleToken.Vault}>
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
return nil
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
access(all) view fun getPublicCapability(acct: &Account, path: PublicPath): Capability? {
|
|
19
|
+
return nil
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
access(all) struct Factory: CapabilityFactory.Factory {
|
|
24
|
+
access(all) view fun getCapability(acct: auth(Capabilities) &Account, controllerID: UInt64): Capability? {
|
|
25
|
+
if let con = acct.capabilities.storage.getController(byCapabilityID: controllerID) {
|
|
26
|
+
if !con.capability.check<&{FungibleToken.Vault}>() {
|
|
27
|
+
return nil
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
return con.capability as! Capability<&{FungibleToken.Vault}>
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
return nil
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
access(all) view fun getPublicCapability(acct: &Account, path: PublicPath): Capability? {
|
|
37
|
+
let cap = acct.capabilities.get<&{FungibleToken.Vault}>(path)
|
|
38
|
+
if !cap.check() {
|
|
39
|
+
return nil
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
return cap
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import "CapabilityFactory"
|
|
2
|
+
import "NonFungibleToken"
|
|
3
|
+
|
|
4
|
+
access(all) contract NFTProviderAndCollectionFactory {
|
|
5
|
+
access(all) struct WithdrawFactory: CapabilityFactory.Factory {
|
|
6
|
+
access(all) view fun getCapability(acct: auth(Capabilities) &Account, controllerID: UInt64): Capability? {
|
|
7
|
+
if let con = acct.capabilities.storage.getController(byCapabilityID: controllerID) {
|
|
8
|
+
if !con.capability.check<auth(NonFungibleToken.Withdraw) &{NonFungibleToken.Collection}>() {
|
|
9
|
+
return nil
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
return con.capability as! Capability<auth(NonFungibleToken.Withdraw) &{NonFungibleToken.Collection}>
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
return nil
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
access(all) view fun getPublicCapability(acct: &Account, path: PublicPath): Capability? {
|
|
19
|
+
return nil
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
access(all) struct Factory: CapabilityFactory.Factory {
|
|
24
|
+
access(all) view fun getCapability(acct: auth(Capabilities) &Account, controllerID: UInt64): Capability? {
|
|
25
|
+
if let con = acct.capabilities.storage.getController(byCapabilityID: controllerID) {
|
|
26
|
+
if !con.capability.check<&{NonFungibleToken.Collection}>() {
|
|
27
|
+
return nil
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
return con.capability as! Capability<&{NonFungibleToken.Collection}>
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
return nil
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
access(all) view fun getPublicCapability(acct: &Account, path: PublicPath): Capability? {
|
|
37
|
+
let cap = acct.capabilities.get<&{NonFungibleToken.Collection}>(path)
|
|
38
|
+
if !cap.check() {
|
|
39
|
+
return nil
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
return cap
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
@@ -1,10 +1,22 @@
|
|
|
1
1
|
import "CapabilityFactory"
|
|
2
2
|
import "NonFungibleToken"
|
|
3
3
|
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
4
|
+
access(all) contract NFTCollectionPublicFactory {
|
|
5
|
+
access(all) struct Factory: CapabilityFactory.Factory {
|
|
6
|
+
access(all) view fun getCapability(acct: auth(Capabilities) &Account, controllerID: UInt64): Capability? {
|
|
7
|
+
if let con = acct.capabilities.storage.getController(byCapabilityID: controllerID) {
|
|
8
|
+
if !con.capability.check<&{NonFungibleToken.CollectionPublic}>() {
|
|
9
|
+
return nil
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
return con.capability as! Capability<&{NonFungibleToken.CollectionPublic}>
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
return nil
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
access(all) view fun getPublicCapability(acct: &Account, path: PublicPath): Capability? {
|
|
19
|
+
return acct.capabilities.get<&{NonFungibleToken.CollectionPublic}>(path)
|
|
8
20
|
}
|
|
9
21
|
}
|
|
10
22
|
}
|
|
@@ -1,10 +1,22 @@
|
|
|
1
1
|
import "CapabilityFactory"
|
|
2
2
|
import "NonFungibleToken"
|
|
3
3
|
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
4
|
+
access(all) contract NFTProviderAndCollectionPublicFactory {
|
|
5
|
+
access(all) struct Factory: CapabilityFactory.Factory {
|
|
6
|
+
access(all) view fun getCapability(acct: auth(Capabilities) &Account, controllerID: UInt64): Capability? {
|
|
7
|
+
if let con = acct.capabilities.storage.getController(byCapabilityID: controllerID) {
|
|
8
|
+
if !con.capability.check<auth(NonFungibleToken.Withdraw) &{NonFungibleToken.Provider, NonFungibleToken.CollectionPublic}>() {
|
|
9
|
+
return nil
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
return con.capability as! Capability<auth(NonFungibleToken.Withdraw) &{NonFungibleToken.Provider, NonFungibleToken.CollectionPublic}>
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
return nil
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
access(all) view fun getPublicCapability(acct: &Account, path: PublicPath): Capability? {
|
|
19
|
+
return nil
|
|
8
20
|
}
|
|
9
21
|
}
|
|
10
22
|
}
|
|
@@ -1,10 +1,22 @@
|
|
|
1
1
|
import "CapabilityFactory"
|
|
2
2
|
import "NonFungibleToken"
|
|
3
3
|
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
4
|
+
access(all) contract NFTProviderFactory {
|
|
5
|
+
access(all) struct Factory: CapabilityFactory.Factory {
|
|
6
|
+
access(all) view fun getCapability(acct: auth(Capabilities) &Account, controllerID: UInt64): Capability? {
|
|
7
|
+
if let con = acct.capabilities.storage.getController(byCapabilityID: controllerID) {
|
|
8
|
+
if !con.capability.check<auth(NonFungibleToken.Withdraw) &{NonFungibleToken.Provider}>() {
|
|
9
|
+
return nil
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
return con.capability as! Capability<auth(NonFungibleToken.Withdraw) &{NonFungibleToken.Provider}>
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
return nil
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
access(all) view fun getPublicCapability(acct: &Account, path: PublicPath): Capability? {
|
|
19
|
+
return nil
|
|
8
20
|
}
|
|
9
21
|
}
|
|
10
22
|
}
|
|
@@ -125,7 +125,7 @@ access(all) contract LostAndFound {
|
|
|
125
125
|
if self.type.isSubtype(of: Type<@{NonFungibleToken.NFT}>()) {
|
|
126
126
|
let ref = (&self.item as &AnyResource?)!
|
|
127
127
|
let nft = ref as! &{NonFungibleToken.NFT}
|
|
128
|
-
return nft.
|
|
128
|
+
return nft.id
|
|
129
129
|
}
|
|
130
130
|
return nil
|
|
131
131
|
}
|
|
@@ -135,7 +135,7 @@ access(all) contract LostAndFound {
|
|
|
135
135
|
if self.type.isSubtype(of: Type<@{FungibleToken.Vault}>()) {
|
|
136
136
|
let ref = (&self.item as &AnyResource?)!
|
|
137
137
|
let ft = ref as! &{FungibleToken.Vault}
|
|
138
|
-
return ft.
|
|
138
|
+
return ft.balance
|
|
139
139
|
}
|
|
140
140
|
return nil
|
|
141
141
|
}
|
|
@@ -149,8 +149,8 @@ access(all) contract LostAndFound {
|
|
|
149
149
|
var redeemableItem <- self.item <- nil
|
|
150
150
|
let cap = receiver.borrow<&AnyResource>()!
|
|
151
151
|
|
|
152
|
-
if cap.isInstance(Type<@{NonFungibleToken.
|
|
153
|
-
let target = receiver.borrow<&{NonFungibleToken.
|
|
152
|
+
if cap.isInstance(Type<@{NonFungibleToken.CollectionPublic}>()) {
|
|
153
|
+
let target = receiver.borrow<&{NonFungibleToken.CollectionPublic}>()!
|
|
154
154
|
let token <- redeemableItem as! @{NonFungibleToken.NFT}?
|
|
155
155
|
self.redeemed = true
|
|
156
156
|
emit TicketRedeemed(redeemer: self.redeemer, ticketID: self.uuid, type: token.getType())
|
|
@@ -391,8 +391,8 @@ access(all) contract LostAndFound {
|
|
|
391
391
|
}
|
|
392
392
|
}
|
|
393
393
|
|
|
394
|
-
access(contract) fun getFlowProvider(): auth(FungibleToken.
|
|
395
|
-
return self.account.storage.borrow<auth(FungibleToken.
|
|
394
|
+
access(contract) fun getFlowProvider(): auth(FungibleToken.Withdraw) &FlowToken.Vault {
|
|
395
|
+
return self.account.storage.borrow<auth(FungibleToken.Withdraw) &FlowToken.Vault>(from: /storage/flowTokenVault)!
|
|
396
396
|
}
|
|
397
397
|
|
|
398
398
|
// ShelfManager is a light-weight wrapper to get our shelves into storage.
|
|
@@ -422,7 +422,7 @@ access(all) contract LostAndFound {
|
|
|
422
422
|
item: @AnyResource,
|
|
423
423
|
memo: String?,
|
|
424
424
|
display: MetadataViews.Display?,
|
|
425
|
-
storagePayment: auth(FungibleToken.
|
|
425
|
+
storagePayment: auth(FungibleToken.Withdraw) &{FungibleToken.Vault},
|
|
426
426
|
flowTokenRepayment: Capability<&FlowToken.Vault>?
|
|
427
427
|
) : UInt64 {
|
|
428
428
|
pre {
|
|
@@ -566,9 +566,9 @@ access(all) contract LostAndFound {
|
|
|
566
566
|
memo: String?,
|
|
567
567
|
display: MetadataViews.Display?
|
|
568
568
|
) {
|
|
569
|
-
if cap.check<&{NonFungibleToken.
|
|
569
|
+
if cap.check<&{NonFungibleToken.CollectionPublic}>() {
|
|
570
570
|
let nft <- item as! @{NonFungibleToken.NFT}
|
|
571
|
-
cap.borrow<&{NonFungibleToken.
|
|
571
|
+
cap.borrow<&{NonFungibleToken.CollectionPublic}>()!.deposit(token: <-nft)
|
|
572
572
|
} else if cap.check<&{FungibleToken.Receiver}>() {
|
|
573
573
|
let vault <- item as! @{FungibleToken.Vault}
|
|
574
574
|
cap.borrow<&{FungibleToken.Receiver}>()!.deposit(from: <-vault)
|
|
@@ -598,7 +598,7 @@ access(all) contract LostAndFound {
|
|
|
598
598
|
init(_ flowTokenRepayment: Capability<&FlowToken.Vault>, lowBalanceThreshold: UFix64?) {
|
|
599
599
|
self.flowTokenRepayment = flowTokenRepayment
|
|
600
600
|
|
|
601
|
-
let vault <- FlowToken.createEmptyVault()
|
|
601
|
+
let vault <- FlowToken.createEmptyVault(vaultType: Type<@FlowToken.Vault>())
|
|
602
602
|
self.flowTokenVault <- vault
|
|
603
603
|
self.lowBalanceThreshold = lowBalanceThreshold
|
|
604
604
|
}
|
|
@@ -713,7 +713,7 @@ access(all) contract LostAndFound {
|
|
|
713
713
|
item: @AnyResource,
|
|
714
714
|
memo: String?,
|
|
715
715
|
display: MetadataViews.Display?,
|
|
716
|
-
storagePayment: auth(FungibleToken.
|
|
716
|
+
storagePayment: auth(FungibleToken.Withdraw) &{FungibleToken.Vault},
|
|
717
717
|
flowTokenRepayment: Capability<&FlowToken.Vault>?
|
|
718
718
|
) : UInt64 {
|
|
719
719
|
pre {
|
|
@@ -730,12 +730,12 @@ access(all) contract LostAndFound {
|
|
|
730
730
|
cap: Capability,
|
|
731
731
|
memo: String?,
|
|
732
732
|
display: MetadataViews.Display?,
|
|
733
|
-
storagePayment: auth(FungibleToken.
|
|
733
|
+
storagePayment: auth(FungibleToken.Withdraw) &{FungibleToken.Vault},
|
|
734
734
|
flowTokenRepayment: Capability<&FlowToken.Vault>
|
|
735
735
|
) {
|
|
736
|
-
if cap.check<&{NonFungibleToken.
|
|
736
|
+
if cap.check<&{NonFungibleToken.CollectionPublic}>() {
|
|
737
737
|
let nft <- item as! @{NonFungibleToken.NFT}
|
|
738
|
-
cap.borrow<&{NonFungibleToken.
|
|
738
|
+
cap.borrow<&{NonFungibleToken.CollectionPublic}>()!.deposit(token: <-nft)
|
|
739
739
|
} else if cap.check<&{FungibleToken.Receiver}>() {
|
|
740
740
|
let vault <- item as! @{FungibleToken.Vault}
|
|
741
741
|
cap.borrow<&{FungibleToken.Receiver}>()!.deposit(from: <-vault)
|