Skip to main content
Version: Current

Contract ExampleToken


_12
contract ExampleToken {
_12
_12
totalSupply: UFix64
_12
_12
VaultStoragePath: StoragePath
_12
_12
ReceiverPublicPath: PublicPath
_12
_12
VaultPublicPath: PublicPath
_12
_12
AdminStoragePath: StoragePath
_12
}

Implemented Interfaces:

  • FungibleToken

Structs & Resources

resource Vault


_10
resource Vault {
_10
_10
balance: UFix64
_10
}

Each user stores an instance of only the Vault in their storage The functions in the Vault and governed by the pre and post conditions in FungibleToken when they are called. The checks happen at runtime whenever a function is called.

Resources can only be created in the context of the contract that they are defined in, so there is no way for a malicious user to create Vaults out of thin air. A special Minter resource needs to be defined to mint new tokens.

More...


resource Administrator


_10
resource Administrator {
_10
}

More...


resource Minter


_10
resource Minter {
_10
_10
allowedAmount: UFix64
_10
}

Resource object that token admin accounts can hold to mint new tokens.

More...


resource Burner


_10
resource Burner {
_10
}

Resource object that token admin accounts can hold to burn tokens.

More...


Functions

fun createEmptyVault()


_10
func createEmptyVault(): Vault

Function that creates a new Vault with a balance of zero and returns it to the calling context. A user must call this function and store the returned Vault in their storage in order to allow their account to be able to receive deposits of this token type.

Returns: The new Vault resource


Events

event TokensInitialized


_10
event TokensInitialized(initialSupply UFix64)

The event that is emitted when the contract is created


event TokensWithdrawn


_10
event TokensWithdrawn(amount UFix64, from Address?)

The event that is emitted when tokens are withdrawn from a Vault


event TokensDeposited


_10
event TokensDeposited(amount UFix64, to Address?)

The event that is emitted when tokens are deposited to a Vault


event TokensMinted


_10
event TokensMinted(amount UFix64)

The event that is emitted when new tokens are minted


event TokensBurned


_10
event TokensBurned(amount UFix64)

The event that is emitted when tokens are destroyed


event MinterCreated


_10
event MinterCreated(allowedAmount UFix64)

The event that is emitted when a new minter resource is created


event BurnerCreated


_10
event BurnerCreated()

The event that is emitted when a new burner resource is created