@pabloruiz55 pabloruiz55 released this Jun 15, 2018 · 1236 commits to master since this release

Polymath Toro V1.2.0


v1.2.0 (TORO Release)

Contract Address
TickerRegistry: 0xf1b64cd44f8da99b518ec530bf8c0d5a04c7dbda
SecurityTokenRegistry: 0x26142ca417b712379f0e52ffa906492515db891a
ModuleRegistry: 0x4785fbc411af7afc407c1182ac1b67594af62afa
CappedSTOFactory: 0xb7ded4e2da6324cac7f46fba242e1988101f40d2
EthDividendsCheckpointFactory: 0x8e895bea58e7a639e58d6c196acad81f173903e5

TORO Token v1.2.0

Token: https://kovan.etherscan.io/address/0x2573D0946810da2C95B3A63cB4c8cc3aF0E95723
CappedSTO: https://kovan.etherscan.io/address/0xCB1F57bf24b32466116eD5f359595a5BEba7A166

New Features

  • ✔️ Added Checkpoint feature to SecurityToken. This allows issuers to create snapshots of the token's balances and totalSupply to be used for casting votes or calculating dividends. Added CLI script to demo this feature.
  • 💵 EtherDividendCheckpoint module added for on-chain dividend ETH payments. Uses Checkpoint feature described above.
  • 💵 ERC20DividendCheckpoint module added for on-chain dividend ERC20 payments. Uses Checkpoint feature described above.
  • 🕥 STOs are "pause-able" now. It is facilitated by using the Pausable contract.
  • 👮‍♀️ ManualApprovalTransferManager allows approval or blocking of explicit address pairs for transfers. This can be used by Issuers / Transfer Agents to approve a transfer that would be otherwise rejected by the GeneralTransferManager.
  • 💰Module Factories now allow their owner to set 3 types of fees: Setup fee, Usage fee, Monthly fee. At this moment we only support a setup fee that can be charged by the owner of the module as soon as the module is attached to the token.
  • 🛑 Further minting can now be prevented in the case the issuer decides not to attach an STO to the token. Checks mintingFinished flag. Issuer can prevent further minting by calling the finishMinting() function.
  • 🙅‍♂️ Issuer can prevent addresses from participating in the STO. To facilitate this, _canBuyFromSTO has been added to modifyWhitelist function. Useful for preventing company affiliates from participating in the STO.
  • 📖 Added multi-mint for issuing tokens to shareholders/affiliates in one transaction.


  • Added Iterable list of investors available on-chain.
  • Added extra parameter to TransferManager.verifyTransfer to indicate whether the call is part of a transfer or not
  • Token Symbol Registration fee has been set to 250 POLY
  • Security Token Deployment fee has been set to 250 POLY
  • CappedSTO module fee has been set to 20,000 POLY
  • Event LogGenerateModuleFromFactory emitted at the level of ModuleFactory to log the creation of the module using the respective module factory.
  • Added ReclaimTokens contract to handle retrieving ERC20 Tokens sent to our contracts.
  • Added Pausable feature to registry functions registerTicker, generateSecurityToken, registerModule, addCustomSecurityToken.
  • Added Registry contract to handle upgradability functionality with a function to change the reference address between registry contracts.
  • POLY faucet CLI is added in demo.
  • Added a new return type to verifyTransfer methods called FORCE_VALID which would override any INVALID returned by TransferManagers if needed. For example, this could be used if we wanted the Manual Approval TM to force a transfer to happen even if the CountTM said that the 2000 investor cap had been reached.
  • ExchangeTransferManagerFactory and ExchangeTransferManager have been removed from repository.


  • 🔧 Added missing natspec comments
  • 🔧 Burning tokens now respects TransferManagers and investorCount
  • 🔧 Add one more parameter called the _owner in the addCustomSecurityToken().
  • 🔧 Change _addModule in SecurityToken.sol to get MR address from STR contract.
Assets 2