LogoLogo
  • Swarm Network
  • Swarm Network
    • Network Governance
      • Getting started
      • Voting App
      • The Swarm Network
        • Powers
        • Governance
        • Members
        • Swarm Council
        • Treasury
      • Initiating Governance Actions
        • Introduction
        • Proposals
        • Ballot Types
        • Submitting a GAP
      • Governance Action Voting Process
        • Ballots
        • Retrieving the text of previous ballots
        • Voting
    • SWM Token
    • SWM Staking
  • Swarm Protocol
    • SRC20
      • SRC20 Token Contract
      • Transfer Rules Contract
      • Featured Contract
      • Roles Contract
      • SRC20 Registry Contract
      • Asset Registry Contract
      • Minter Contract
      • SRC20Factory Contract
    • Swarm Powered Fundraise
      • Uniswap Proxy Contract
      • Currency Registry Contract
      • Affiliate Manager Contract
      • Swarm Powered Fundraise Contract
      • Contributor Restrictions Contract
    • mySwarm.app
    • kovan.mySwarm.app (test version, please use this)
    • Mumbai Testnet
  • Open tools
    • Legacy Masternode Reward Collection
    • VerifiedExistence
    • Market Access Protocol
  • Keep up
    • Blog
    • Twitter
    • Discourse
    • Telegram
    • Voting App
    • FAQ
Powered by GitBook
On this page

Was this helpful?

  1. Swarm Protocol
  2. SRC20

SRC20 Registry Contract

PreviousRoles ContractNextAsset Registry Contract

Last updated 5 years ago

Was this helpful?

  • Smart Contract: globally across all SRC20

  • Created: pre-exists / created only once

  • Purpose: Registry of all SRC20 tokens created and the associated SWM stakes

  • Example:

Feature Description

Glossary

Item

Description

(SWM) Stake

Read Functions

Function

Description

swmNeeded() returns (uint256)

Returns the SWM stake amount needed to mint an additional amount of specific SRC20 tokens; this function translates the Net Asset Value into USD denominated staking amounts based on the network policy and then uses the referenced SWMPriceOracle to translate them into SWM values based on current prices

contains() returns (bool)

Returns true when a SRC20 token address is successfully registered with this SRC20 Registry contract

getStake() returns (uint256)

Returns the amount of SWM staked for a specific SRC20

owner() returns (address)

Returns the address of the contract owner

isOwner() returns (bool)

Returns true if the caller is the contract owner

calcTokens()

External function allowing users to check the corresponding amount of SRC20 tokens that can be minted for a SWM stake value; responds in SRC20 in Wei (e.g. 1 = 1 additional SRC20); This differs from the calcStake() function in the Minter contract which is for staking/minting a brand new token. This function instead is for calculating the additional incremental stake on an existing SRC20 token

getMinter() returns (address)

Returns address of the Minter contract for a specific SRC20

getTokenOwner() returns (address)

Returns the address of the owner (and staker) of a specific SRC20

Write Functions

Function

Description

remove() returns (bool)

Removes specific SRC20 from the SRC20 Registry; can only be executed by the contract owner; returns true on success

addFactory() returns (bool)

Adds new factory to the SRC20 Registry contract address that can register a specific SRC20 token; returns true on success

removeMinter() returns (bool)

This proxy function removes a contract from the list of authorized minters; use the address of the Minter contract to remove; returns true on success

removeFactory() returns (bool)

This proxy function removes a SRC20Factory contract that can register a specific SRC20 token; use the address of the SRC20Factorycontract to remove; returns true on success

renounceManagement() returns (bool)

Allows the manager to renounce management for a specific SRC20 token address; returns true on success

getSrc20toSwmRatio() returns Amount()

External function for calculating how much SWM tokens are needed to be staked in order to get 1 SRC20 token

increaseSupply()returns (bool)

This function the token issuer can call in order to increase his SRC20 supply and stake his tokens; enter parameters with src20 (address of src20 token contract), swmAccount (address from which stake tokens are going to be deducted), and srcValue (Value of desired SRC20 token supply increase in unit256/Wei); returns true on success

renounceOwnership()

Contract owner can renounce ownership of the contract

transferManagement()returns (bool)

Allows the manager to transfer management for a specific SRC20 token address to a new address; returns true on success

addMinter()

This proxy function adds a contract to the list of authorized minters

mintSupply() returns (bool)

Mints additional supply of a specific SRC20 token based on SWM token stake; can be used for initial supply and subsequent minting of new SRC20 tokens; When used, Manager will update SWM/SRC20 values in this call and use it for token owner's increaseSupply() / decreaseSupply() calls, minting/burning SRC20 based on current SWM/SRC20 ratio. Only owner (Swarm network controlled address) of this contract can invoke this method; returns true on success

put()

Adds a SRC20 token to the SRC20 Registry; only factories can add; returns true on success

decreaseSupply() returns (bool)

This function the token issuer can call in order to decrease his SRC20 supply and receive his SWM stake; enter parameters with src20 (Address of src20 token contract), swmAccount (address to which SWM stake tokens will be returned), and srcValue (Value of desired SRC20 token supply decrease in unit256/Wei); returns true on success

transferOwnership()

Transfers ownership of this contract to another address. Can only be called by the contract owner

On Swarm token issuers are required to stake an amount of SWM token to trigger the minting and distribution of SRC20 tokens; the required stake amounts follow a which has been adopted as a network policy by the Swarm Network

On Ropsten
staking rate card