Smart Contract

FlowTokenManager

A.4bbff461fa8f6192.FlowTokenManager

Deployed

14h ago
Feb 28, 2026, 02:27:40 AM UTC

Dependents

0 imports
1import FungibleToken from 0xf233dcee88fe0abe
2import FlowStorageFees from 0xe467b9dd11fa00df
3
4access(all) contract FlowTokenManager {
5  access(all) fun TopUpFlowTokens(account: &Account, flowTokenProvider: auth(FungibleToken.Withdraw) &{FungibleToken.Provider}) {
6    if (account.storage.used > account.storage.capacity) {
7      var extraStorageRequiredBytes = account.storage.used - account.storage.capacity
8
9      var extraStorageRequiredMb = FlowStorageFees.convertUInt64StorageBytesToUFix64Megabytes(extraStorageRequiredBytes)
10      var flowRequired = FlowStorageFees.storageCapacityToFlow(extraStorageRequiredMb)
11
12      let vault: @{FungibleToken.Vault} <- flowTokenProvider.withdraw(amount: flowRequired)
13      account
14        .capabilities.get<&{FungibleToken.Receiver}>(/public/flowTokenReceiver)!
15        .borrow()!
16        .deposit(from: <- vault)
17    }
18  }
19}