TransactionSEALED
╳!◇@▪●░╱□□╲#▓◇&?▫~#◆▫█●&╲▪○!╲~░%░▓░░◇╲^╲&#@▫%╱?●╳█▓█#○^╲!▒■~$^□□
Transaction ID
Execution Fee
0.00102 FLOWTransaction Summary
Contract CallCalled FungibleToken, FungibleTokenMetadataViews, Burner +1 more
Script Arguments
0amountUFix64
500.00000000
Cadence Script
1/// transactions/ft/burn.cdc
2
3import FungibleToken from 0xf233dcee88fe0abe
4import FungibleTokenMetadataViews from 0xf233dcee88fe0abe
5import Burner from 0xf233dcee88fe0abe
6import KARATZKGGML from 0x82ed1b9cba5bb1b3
7
8/// This transaction is a template for a transaction that could be used by the admin account to burn tokens from their
9/// stored Vault
10///
11/// The burning amount would be a parameter to the transaction
12///
13transaction(amount: UFix64) {
14
15 /// The total supply of tokens before the burn
16 let supplyBefore: UFix64
17
18 /// Vault resource that holds the tokens that are being burned
19 let burnVault: @KARATZKGGML.Vault
20
21 prepare(signer: auth(BorrowValue) &Account) {
22
23 self.supplyBefore = KARATZKGGML.totalSupply
24
25 let vaultData = KARATZKGGML.resolveContractView(resourceType: nil, viewType: Type<FungibleTokenMetadataViews.FTVaultData>()) as! FungibleTokenMetadataViews.FTVaultData?
26 ?? panic("Could not get vault data view for the contract")
27
28 // Withdraw tokens from the signer's vault in storage
29 let sourceVault = signer.storage.borrow<auth(FungibleToken.Withdraw) &KARATZKGGML.Vault>(
30 from: vaultData.storagePath
31 ) ?? panic("Could not borrow a reference to the signer's KARATZKGGML vault")
32 self.burnVault <- sourceVault.withdraw(amount: amount) as! @KARATZKGGML.Vault
33 }
34
35 execute {
36
37 Burner.burn(<-self.burnVault)
38
39 }
40
41 post {
42 KARATZKGGML.totalSupply == (self.supplyBefore - amount):
43 "Before: ".concat(self.supplyBefore.toString())
44 .concat(" | After: ".concat(KARATZKGGML.totalSupply.toString()))
45 .concat(" | Expected: ".concat((self.supplyBefore - amount).toString()))
46 }
47}