Dividends-Manager

Summary:

This CLI feature runs the dividends manager so the issuer can customize their STO further if they want to issue dividends to their security token holders.

How it works:

First, you have to decided what type of dividends do you want work with: POLY or ETH

Following options after selecting dividend type: 1. Mint tokens 2. Transfer tokens 3. Create checkpoint 4. Set default exclusions for dividends 5. Tax holding settings 6. Create dividends

How to Use this CLI Feature (Instructions):

Run the dividends_manager command below:

$ node CLI/polymath-cli dividends_manager

NOTE: It should ask you at the beginning if you want distribute dividends in ETH or POLY

  1. Enter the token symbol you want to work with.

  2. Mint tokens (Option ‘1’):

  3. Enter the beneficiary of the tokens

  4. Enter the amount of tokens to mint

  5. Create dividends (Option ‘6’):

  6. Enter how much Eth would you like to distribute to token holders

  7. New checkpoint is created

  8. Push dividends (Option ‘8’):

  9. Enter the checkpoint to distribute dividends at (i.e. previous checkpoint number)

  10. Enter addresses to push dividends to (i.e. address1,address2,address3)

  11. Dividends are pushed to addresses

  12. Explore balances (Option ‘a’):

  13. Enter the checkpoint to explore

  14. Enter the address to explore

Walkthrough Example

**********************************************
Welcome to the Command-Line Dividends Manager.
**********************************************
Issuer Account: 0x5F87545f405f8304DAF5b5D1DBA7da6161c226Fc


Dividends Manager - Main Menu
Enter the token symbol: CP

[1] POLY
[2] ETH

What type of dividends do you want work with? [1/2]: 1
Selected: POLY

Token is at checkpoint: 0

[1] Mint tokens
[2] Transfer tokens
[3] Create checkpoint
[4] Set default exclusions for dividends
[5] Tax holding settings
[6] Create dividends
[0] CANCEL

What do you want to do? [1...6 / 0]: 1
Selected: Mint tokens 

Enter beneficiary of minting: 0x6a77b1f6ae25bc6f99752c4bb36a8fcecbd27f6f
Enter amount of tokens to mint: 100
---- Transaction executed: modifyWhitelist - Gas limit provided: 134891 ----

  Your transaction is being processed. Please wait...
  TxHash: 0x5b5e7e2f0c45fda524a487193a38ceb228baad15093c43ca82fcf5983b00d438

  Congratulations! The transaction was successfully completed.
  Gas used: 112409 - Gas spent: 0.00562045 Ether
  Review it on Etherscan.
  TxHash: 0x5b5e7e2f0c45fda524a487193a38ceb228baad15093c43ca82fcf5983b00d438


Whitelisting successful for 0x6a77b1f6ae25bc6f99752c4bb36a8fcecbd27f6f.
---- Transaction executed: mint - Gas limit provided: 163142 ----

  Your transaction is being processed. Please wait...
  TxHash: 0x0445936fdb119ed766aaf5b8152afc1a004d9968632714bb80d61a5094e50d77

  Congratulations! The transaction was successfully completed.
  Gas used: 135952 - Gas spent: 0.0067976 Ether
  Review it on Etherscan.
  TxHash: 0x0445936fdb119ed766aaf5b8152afc1a004d9968632714bb80d61a5094e50d77


  Minted 100 tokens
  to account 0x6a77b1f6aE25Bc6F99752c4bB36a8FcECbd27f6f

Dividends Manager - Main Menu

Token is at checkpoint: 0

[1] Mint tokens
[2] Transfer tokens
[3] Create checkpoint
[4] Set default exclusions for dividends
[5] Tax holding settings
[6] Create dividends
[0] CANCEL

What do you want to do? [1...6 / 0]: 2
Selected: Transfer tokens 

Enter beneficiary of tranfer: 0x51b853aa5ced7bfa79cc08435c055ab35810998d
Enter amount of tokens to transfer: 500
---- Transaction executed: modifyWhitelist - Gas limit provided: 134891 ----

  Your transaction is being processed. Please wait...
  TxHash: 0x4f857842a3430ec5190b6f1f2a07306baaab757eaacd2ddbf47c651f228e2a1d

  Congratulations! The transaction was successfully completed.
  Gas used: 112409 - Gas spent: 0.00562045 Ether
  Review it on Etherscan.
  TxHash: 0x4f857842a3430ec5190b6f1f2a07306baaab757eaacd2ddbf47c651f228e2a1d


Whitelisting successful for 0x51b853aa5ced7bfa79cc08435c055ab35810998d.
---- Transaction executed: transfer - Gas limit provided: 200763 ----

  Your transaction is being processed. Please wait...
  TxHash: 0x69f9df6667ed3b4a4b8c393b6a23f1a7b2a8ae29239b59017f4e1e0ddde5a2f1

  Congratulations! The transaction was successfully completed.
  Gas used: 133842 - Gas spent: 0.0066921 Ether
  Review it on Etherscan.
  TxHash: 0x69f9df6667ed3b4a4b8c393b6a23f1a7b2a8ae29239b59017f4e1e0ddde5a2f1


  Account 0x5F87545f405f8304DAF5b5D1DBA7da6161c226Fc
  transferred 500 tokens
  to account 0x51b853aA5ced7bFa79Cc08435C055aB35810998D

Dividends Manager - Main Menu

Token is at checkpoint: 0

[1] Mint tokens
[2] Transfer tokens
[3] Create checkpoint
[4] Set default exclusions for dividends
[5] Tax holding settings
[6] Create dividends
[0] CANCEL

What do you want to do? [1...6 / 0]: 3
Selected: Create checkpoint 

---- Transaction executed: createCheckpoint - Gas limit provided: 102904 ----

  Your transaction is being processed. Please wait...
  TxHash: 0x3cc594c2a00797c13ed30af18f0caf67fb3912d2aa2c2ce19a5902ce7cc9f48e

  Congratulations! The transaction was successfully completed.
  Gas used: 85753 - Gas spent: 0.00428765 Ether
  Review it on Etherscan.
  TxHash: 0x3cc594c2a00797c13ed30af18f0caf67fb3912d2aa2c2ce19a5902ce7cc9f48e


Dividends Manager - Main Menu

Token is at checkpoint: 1

[1] Mint tokens
[2] Transfer tokens
[3] Create checkpoint
[4] Set default exclusions for dividends
[5] Tax holding settings
[6] Create dividends
[7] Explore account at checkpoint
[8] Explore total supply at checkpoint
[0] CANCEL

What do you want to do? [1...8 / 0]: 4
Selected: Set default exclusions for dividends 

---- Transaction executed: addModule - Gas limit provided: 5049042 ----

  Your transaction is being processed. Please wait...
  TxHash: 0x1a8cbbde2a934d6dcccbf15a12293783eb2d187f0a1bc88b643408e14be2cc78

  Congratulations! The transaction was successfully completed.
  Gas used: 4207535 - Gas spent: 0.21037675 Ether
  Review it on Etherscan.
  TxHash: 0x1a8cbbde2a934d6dcccbf15a12293783eb2d187f0a1bc88b643408e14be2cc78

Module deployed at address: 0x778c552AEcAd32B886F3E7B39ac7C436ecc62124
There are not default excluded addresses.

Excluded addresses will be loaded from 'dividendsExclusions_data.csv'. Please check your data before continue.
Do you want to continue? [y/n]: y
---- Transaction executed: setDefaultExcluded - Gas limit provided: 199255 ----

  Your transaction is being processed. Please wait...
  TxHash: 0x933480cdb9260cc7fdc989ae5e8729ee577b230b0845c5a1d6acde652cfd653c

  Congratulations! The transaction was successfully completed.
  Gas used: 166046 - Gas spent: 0.0083023 Ether
  Review it on Etherscan.
  TxHash: 0x933480cdb9260cc7fdc989ae5e8729ee577b230b0845c5a1d6acde652cfd653c

Exclusions were successfully set.
Current default excluded addresses:
  0xEe7Ae74D964F2bE7d72C1B187B38e2eD3615d4d1
  0x49FC0b78238DAB644698A90FA351B4C749E123d2
  0x10223927009b8ADD0960359dd90d1449415b7ca9
  0x3C65CFE3dE848cF38e9d76e9c3e57a2F1140B399
  0xaBf60DE3265B3017Db7A1be66fC8B364ec1dbb98


Dividends Manager - Main Menu

Token is at checkpoint: 2

[1] Mint tokens
[2] Transfer tokens
[3] Create checkpoint
[4] Set default exclusions for dividends
[5] Tax holding settings
[6] Create dividends
[7] Explore account at checkpoint
[8] Explore total supply at checkpoint
[9] Push dividends to accounts
[a] Explore POLY balance
[b] Reclaim expired dividends
[0] CANCEL

What do you want to do? [1...9, a, b, 0]: 5
Selected: Tax holding settings 

[1] Set a % to withhold from dividends sent to an address
[2] Withdraw withholding for dividend
[3] Return to main menu

What do you want to do? [1, 2, 3]: 1

Selected: Set a % to withhold from dividends sent to an address
Enter the address of the investor: 0x52dc64d87245d24f6d1a4456ec71eb493737f862                      
Enter the percentage of dividends to withhold (number between 0-100): 15
---- Transaction executed: setWithholdingFixed - Gas limit provided: 60588 ----

  Your transaction is being processed. Please wait...
  TxHash: 0x152a77c00a061d44f9a0898908f515134901eda24d897935fcbc60eff07a0388

  Congratulations! The transaction was successfully completed.
  Gas used: 50490 - Gas spent: 0.0025245 Ether
  Review it on Etherscan.
  TxHash: 0x152a77c00a061d44f9a0898908f515134901eda24d897935fcbc60eff07a0388

Successfully set tax withholding of 15% for 0x52dc64d87245d24f6d1a4456ec71eb493737f862.

Dividends Manager - Main Menu

Token is at checkpoint: 2

[1] Mint tokens
[2] Transfer tokens
[3] Create checkpoint
[4] Set default exclusions for dividends
[5] Tax holding settings
[6] Create dividends
[7] Explore account at checkpoint
[8] Explore total supply at checkpoint
[9] Push dividends to accounts
[a] Explore POLY balance
[b] Reclaim expired dividends
[0] CANCEL

What do you want to do? [1...9, a, b, 0]: 5
Selected: Tax holding settings 

[1] Set a % to withhold from dividends sent to an address
[2] Withdraw withholding for dividend
[3] Return to main menu


What do you want to do? [1, 2, 3]: 2

Selected: Withdraw withholding for dividend
No dividends were found meeting the requirements
Requirements: Valid: undefined - Expired: undefined - Reclaimed: undefined
    WithRemainingWithheld: true - WithRemaining: undefined


Dividends Manager - Main Menu

Token is at checkpoint: 2

[1] Mint tokens
[2] Transfer tokens
[3] Create checkpoint
[4] Set default exclusions for dividends
[5] Tax holding settings
[6] Create dividends
[7] Explore account at checkpoint
[8] Explore total supply at checkpoint
[9] Push dividends to accounts
[a] Explore POLY balance
[b] Reclaim expired dividends
[0] CANCEL

What do you want to do? [1...9, a, b, 0]: 6
Selected: Create dividends 

Enter a name or title to indetify this dividend: Ruby
How much POLY would you like to distribute to token holders?: 1000

[1] Create new checkpoint
[2] December 19th 2018, 15:39:16
[3] December 19th 2018, 15:39:52

Select a checkpoint [1, 2, 3]: 2
Enter the dividend maturity time from which dividend can be paid (Unix Epoch time)
(Now = 1545252838 ): 
Enter the dividend expiry time (Unix Epoch time)
(10 minutes from now = 1545253438 ): 
Do you want to use the default excluded addresses for this dividend? If not, data from 'dividendsExclusions_data.csv' will be used instead. [y/n]: y
---- Transaction executed: approve - Gas limit provided: 54732 ----

  Your transaction is being processed. Please wait...
  TxHash: 0x08dcf26459436eeae6b5b1b8731e1c50b986b60fb299fbf28e532140a1efa8b7

  Congratulations! The transaction was successfully completed.
  Gas used: 45610 - Gas spent: 0.0022805 Ether
  Review it on Etherscan.
  TxHash: 0x08dcf26459436eeae6b5b1b8731e1c50b986b60fb299fbf28e532140a1efa8b7

---- Transaction executed: createDividendWithCheckpoint - Gas limit provided: 493096 ----

  Your transaction is being processed. Please wait...
  TxHash: 0xa724380102c78d3a110106ab243546f1430506982247d730c92a0c6b70832b5e

  Congratulations! The transaction was successfully completed.
  Gas used: 410913 - Gas spent: 0.02054565 Ether
  Review it on Etherscan.
  TxHash: 0xa724380102c78d3a110106ab243546f1430506982247d730c92a0c6b70832b5e

Dividend 0 deposited

Dividends Manager - Main Menu

Token is at checkpoint: 2

[1] Mint tokens
[2] Transfer tokens
[3] Create checkpoint
[4] Set default exclusions for dividends
[5] Tax holding settings
[6] Create dividends
[7] Explore account at checkpoint
[8] Explore total supply at checkpoint
[9] Push dividends to accounts
[a] Explore POLY balance
[b] Reclaim expired dividends
[0] CANCEL

What do you want to do? [1...9, a, b, 0]: 7
Selected: Explore account at checkpoint 

Enter address to explore: 0x52dc64d87245d24f6d1a4456ec71eb493737f862

[1] December 19th 2018, 15:39:16
[2] December 19th 2018, 15:39:52

Select a checkpoint [1/2]: 1
Balance of 0x52dc64d87245d24f6d1a4456ec71eb493737f862 is: 0 (Using balanceOf)
Balance of 0x52dc64d87245d24f6d1a4456ec71eb493737f862 is: 0 (Using balanceOfAt - checkpoint 1)

Dividends Manager - Main Menu

Token is at checkpoint: 2

[1] Mint tokens
[2] Transfer tokens
[3] Create checkpoint
[4] Set default exclusions for dividends
[5] Tax holding settings
[6] Create dividends
[7] Explore account at checkpoint
[8] Explore total supply at checkpoint
[9] Push dividends to accounts
[a] Explore POLY balance
[b] Reclaim expired dividends
[0] CANCEL

What do you want to do? [1...9, a, b, 0]: 8
Selected: Explore total supply at checkpoint 


[1] December 19th 2018, 15:39:16
[2] December 19th 2018, 15:39:52

Select a checkpoint [1/2]: 1
TotalSupply is: 500450 (Using totalSupply)
TotalSupply is: 500450 (Using totalSupplyAt - checkpoint 1)

Dividends Manager - Main Menu

Token is at checkpoint: 2

[1] Mint tokens
[2] Transfer tokens
[3] Create checkpoint
[4] Set default exclusions for dividends
[5] Tax holding settings
[6] Create dividends
[7] Explore account at checkpoint
[8] Explore total supply at checkpoint
[9] Push dividends to accounts
[a] Explore POLY balance
[b] Reclaim expired dividends
[0] CANCEL

What do you want to do? [1...9, a, b, 0]: 9
Selected: Push dividends to accounts 


[1] Ruby
    Created: December 19th 2018, 15:54:20
    Maturity: December 19th 2018, 15:53:58
    Expiry: December 19th 2018, 16:03:58
    At checkpoint: 1
    Amount: 1000 POLY
    Claimed Amount: 0 POLY
    Withheld: 0 POLY
    Withheld claimed: 0 POLY
[0] CANCEL

Select a dividend [1/0]: 1
Enter addresses to push dividends to (ex- add1,add2,add3,...): 0x49ae61ab7ef6350a5b7eee1e06dd1cfc59ca0c84
---- Transaction executed: pushDividendPaymentToAddresses - Gas limit provided: 78122 ----

  Your transaction is being processed. Please wait...
  TxHash: 0x33b3ae2d2f8334b9580272478da6b4101851ee46e05cacf2f961f9a5939b3df8

  Congratulations! The transaction was successfully completed.
  Gas used: 65102 - Gas spent: 0.0032551 Ether
  Review it on Etherscan.
  TxHash: 0x33b3ae2d2f8334b9580272478da6b4101851ee46e05cacf2f961f9a5939b3df8


Dividends Manager - Main Menu

Token is at checkpoint: 2

[1] Mint tokens
[2] Transfer tokens
[3] Create checkpoint
[4] Set default exclusions for dividends
[5] Tax holding settings
[6] Create dividends
[7] Explore account at checkpoint
[8] Explore total supply at checkpoint
[9] Push dividends to accounts
[a] Explore POLY balance
[b] Reclaim expired dividends
[0] CANCEL

What do you want to do? [1...9, a, b, 0]: a
Selected: Explore POLY balance 

Enter address to explore: 0x49ae61ab7ef6350a5b7eee1e06dd1cfc59ca0c84

[1] Ruby
    Created: December 19th 2018, 15:54:20
    Maturity: December 19th 2018, 15:53:58
    Expiry: December 19th 2018, 16:03:58
    At checkpoint: 1
    Amount: 1000 POLY
    Claimed Amount: 0 POLY
    Withheld: 0 POLY
    Withheld claimed: 0 POLY
[0] CANCEL

Select a dividend [1/0]: 1

  POLY Balance: 0 POLY
  Dividends owned: 0 POLY
  Tax withheld: 0 POLY


Dividends Manager - Main Menu

Token is at checkpoint: 2

[1] Mint tokens
[2] Transfer tokens
[3] Create checkpoint
[4] Set default exclusions for dividends
[5] Tax holding settings
[6] Create dividends
[7] Explore account at checkpoint
[8] Explore total supply at checkpoint
[9] Push dividends to accounts
[a] Explore POLY balance
[b] Reclaim expired dividends
[0] CANCEL

What do you want to do? [1...9, a, b, 0]: b
Selected: Reclaim expired dividends 

No dividends were found meeting the requirements
Requirements: Valid: undefined - Expired: true - Reclaimed: false
    WithRemainingWithheld: undefined - WithRemaining: undefined

Troubleshooting / FAQs N/A

Last updated