name: TokenRegistry
description: ""
structs:
  Token:
    created: Uint64 # creation timestamp
    description: String # description what minted token represents
    mintedBy: AgentID # original minter
    owner: AgentID # current owner
    supply: Uint64 # amount of tokens originally minted
    updated: Uint64 # last update timestamp
    userDefined: String # any user defined text
typedefs: {}
state:
  owner: AgentID
  tokenList: TokenID[]
  registry: map[TokenID]Token
funcs:
  init:
    params:
      owner: AgentID?
  mintSupply:
    params:
      description: String? # description what minted token represents
      userDefined: String? # any user defined text
  transferOwnership:
    access: owner # the one who can transfer token ownership
    params:
      token: TokenID # token of token to transfer ownership of
  updateMetadata:
    access: owner # the one who can change the token info
    params:
      token: TokenID # token of token to update metadata for
views:
  getInfo:
    params:
      token: TokenID # token of token to view registry info of
