Smart Contract

FTVaultFactory

A.d8a7e05a7ac670c0.FTVaultFactory

Valid From

85,997,955

Deployed

1w ago
Feb 17, 2026, 02:27:56 PM UTC

Dependents

2 imports
1import CapabilityFactory from 0xd8a7e05a7ac670c0
2import FungibleToken from 0xf233dcee88fe0abe
3
4access(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    }
46}