You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository has been archived by the owner on Jul 6, 2022. It is now read-only.
### Output
```console
> polymath-core@3.0.0 test ./code
> scripts/test.sh 2> /dev/null
Starting our own testrpc instance
Using network 'development'.
Compiling your contracts...
===========================
> Everything is up to date, there is nothing to compile.
----------------------- Polymath Network Smart Contracts: -----------------------
PolymathRegistry: 0x9c47796Bc1e469a60dCBF680273ff011e45a1327
SecurityTokenRegistry (Proxy): 0x593B03dbA3521f3A2406Bc626a4f1ECA2b6EE41c
ModuleRegistry (Proxy): 0xC61431eb6c69189F844A595234Ce331B7C8A7A77
FeatureRegistry: 0x0E3c11dc1CfE82F8748363De7C58Bdd4eBA39A42
STRGetter: 0x05EBcDfaA3537C9B6b6c1eF501eE609601A98574
ETHOracle: 0xc4c7497fBe1A886841a195a5d622Cd60053c1376
POLYOracle: 0x85a84691547b7ccF19D7c31977A7F8c0aF1FB25A
POLYStableOracle: 0x7cC4B1851c35959D34e635A470F6b5C43bA3C9c9
STFactory: 0x35623bbcb020F57f0465cce7d7ba1e8C87CAEE5f
GeneralTransferManagerLogic: 0x8fd73071ae9e224cfE711a7186E19D1f02FEdEd5
GeneralTransferManagerFactory: 0xDA1Ea1362475997419D2055dD43390AEE34c6c37
GeneralPermissionManagerLogic: 0x5baB00b1582B170DBAE7557586A29BA9EeA6f55b
GeneralPermissionManagerFactory: 0x5E506e2E0EaD3Ff9d93859A5879cAA02582f77c3
CappedSTOLogic: 0x28B291E74bcE603004B52921Ec9Ad3DDb6F85e44
CappedSTOFactory: 0xDC3B181D9644Cd486B2B0c44bE14D55e17061136
USDTieredSTOLogic: 0x52FF2aA36438a796dba3029150802f4CC5FED96C
USDTieredSTOFactory: 0x091Fdf2B7Ef4cec6684Ce730ca8332AaF5308178
CountTransferManagerLogic: 0x320051BbD4eeE344Bb86F0A858d03595837463eF
CountTransferManagerFactory: 0x254C1eAE847823B664D1Acb1BdfE5e19172D8336
PercentageTransferManagerLogic: 0xa7dF1d30f6456Dc72cE18fE011896105651a1f86
PercentageTransferManagerFactory: 0x403cc7802725928652a3d116Bb1781005e2e76d3
ManualApprovalTransferManagerLogic: 0xa6421A7f48498cee3aEb6428a8A2DD5fAA3AcE2f
ManualApprovalTransferManagerFactory: 0x40023EAc4d2fCf91ce93B68C789aE14Aaa120d0E
EtherDividendCheckpointLogic: 0x232e1128a21BBfFbC8d6BefaCb10137F37A653a0
ERC20DividendCheckpointLogic: 0x9b557777Be33A8A2fE6aF93E017A0d139B439E5D
EtherDividendCheckpointFactory: 0x7DCC8D20Ff08A8cd50464544139aF34abC1384fB
ERC20DividendCheckpointFactory: 0x162A36c9821eadeCFF9669A3940b7f72d055Cd1c
VolumeRestrictionTMFactory: 0x5d093A0e0328Ad17469b948De7f2DfD4b5eE5544
VolumeRestrictionTMLogic: 0x3d627fE11843eF6b3D5EC6683D53BD9822696Ef6
---------------------------------------------------------------------------------
Contract: CappedSTO
STL - 0x5D3BeF47d7Be68C97b69Fa9B1DB1Ed3a5ADad5d2
--------------------- Polymath Network Smart Contracts: ---------------------
PolymathRegistry: 0xaC772223D1fb1e8881E29A4F55D815c8c4bBc43a
SecurityTokenRegistryProxy: 0xeD0e0bDbdB1A09f77B53F0c8345EAfA77951108f
SecurityTokenRegistry: 0x6347CecB93D8f1E6cFa30d62AAB5509DC276f53d
ModuleRegistryProxy: 0x24D718f7d8af7D7a4AbaA2B1Cb7AbbB36a23a00d
ModuleRegistry: 0x7EF88a3901494435700cCC4C7615903b43ec2Dbc
FeatureRegistry: 0x5cDc96cE31bdF08EF39D5f65A9Fd5E236CE2245F
STFactory: 0xa13BeaC90A97420310c3430c2A921786eA12D214
GeneralTransferManagerFactory: 0xf1a762a9a2e7f1Cb3D9e20c505d17Ef892E305e7
GeneralPermissionManagerFactory: 0x146EEb2719451a7bcd57E755987224eFe6c9f7f6
CappedSTOFactory: 0xEb5785C94A8b2B6302764a4d6DB8463337FD7bc6
-----------------------------------------------------------------------------
Generate the SecurityToken
✓ Should register the ticker before the generation of the security token (88ms)
0xa13BeaC90A97420310c3430c2A921786eA12D214
0xaC772223D1fb1e8881E29A4F55D815c8c4bBc43a
✓ Should generate the new security token with the same symbol as registered above (456ms)
✓ Should initialize the auto attached modules
✓ Should mint the tokens before attaching the STO (92ms)
✓ Should fail to launch the STO due to security token doesn't have the sufficient POLY (239ms)
✓ Should fail to launch the STO due to rate is 0 (257ms)
✓ Should fail to launch the STO due funds reciever account 0x (230ms)
✓ Should fail to launch the STO due to raise type of 0 length (226ms)
✓ Should fail to launch the STO due to startTime > endTime (220ms)
✓ Should fail to launch the STO due to cap is of 0 securityToken (251ms)
✓ Should fail to launch the STO due to different value incompare to getInitFunction (270ms)
✓ Should successfully attach the STO module to the security token (203ms)
✓ Should call the configure function -- fail because of the bad owner
verify the data of STO
✓ Should verify the configuration of the STO (55ms)
Buy tokens
✓ Should buy the tokens -- failed due to startTime is greater than Current time (55ms)
✓ Should buy the tokens -- Failed due to investor is not in the whitelist (233ms)
✓ Should buy the tokens -- failed due to invested amount is zero
✓ Should Buy the tokens (147ms)
✓ Verification of the event Token Purchase
✓ Should fail to buy the tokens -- Because fundRaiseType is ETH not POLY (66ms)
✓ Should pause the STO -- Failed due to wrong msg.sender
✓ Should pause the STO (43ms)
✓ Should fail to buy the tokens after pausing the STO
✓ Should unpause the STO -- Failed due to wrong msg.sender
✓ Should unpause the STO
✓ Should buy the granular unit tokens and refund pending amount (224ms)
✓ Should restrict to buy tokens after hiting the cap in second tx first tx pass (146ms)
✓ Should fundRaised value equal to the raised value in the funds receiver wallet
✓ Should get the raised amount of ether
✓ Should get the raised amount of poly
Reclaim poly sent to STO by mistake
✓ Should fail to reclaim POLY because token contract address is 0 address (72ms)
✓ Should successfully reclaim POLY (136ms)
Attach second ETH STO module
✓ Should successfully attach the second STO module to the security token (230ms)
✓ Should verify the configuration of the STO (56ms)
✓ Should successfully whitelist investor 3 (80ms)
✓ Should invest in second STO - fails due to incorrect beneficiary
✓ Should allow non-matching beneficiary
✓ Should allow non-matching beneficiary -- failed because it is already active
✓ Should invest in second STO (119ms)
Test cases for reaching limit number of STO modules
✓ Should successfully attach 10 STO modules (1720ms)
✓ Should successfully invest in all STO modules attached (835ms)
Test Cases for an STO of fundraise type POLY
Launch a new SecurityToken
✓ POLY: Should register the ticker before the generation of the security token (83ms)
✓ Failed to generate the ST - Treasury wallet 0x0 is not allowed (48ms)
✓ POLY: Should generate the new security token with the same symbol as registered above (300ms)
✓ POLY: Should initialize the auto attached modules
✓ POLY: Should successfully attach the STO module to the security token (230ms)
verify the data of STO
✓ Should verify the configuration of the STO (50ms)
Buy tokens
✓ Should Buy the tokens (244ms)
✓ Verification of the event Token Purchase
✓ Should failed to buy tokens -- because fundraisetype is POLY not ETH
✓ Should fail in buying tokens because buying is paused (87ms)
0
✓ Should buy the granular unit tokens and charge only required POLY (288ms)
✓ Should restrict to buy tokens after hiting the cap in second tx first tx pass (176ms)
✓ Should failed at the time of buying the tokens -- Because STO get expired (65ms)
✓ Should fundRaised value equal to the raised value in the funds receiver wallet
Pricing Test cases for Module Factory
✓ Should return correct price when price is in poly (107ms)
Check that we can reclaim ETH and ERC20 tokens from an STO
{ logIndex: 5,
transactionIndex: 0,
transactionHash:
'0xa0deab2d86b15eaebce39c2ad1e8a543e09d92b278ca4a62d90617c03a991cf3',
blockHash:
'0xfa803174dd20f5b6568acda7ff1bf5554967976f76f8f4f14a4666c7e27cfe15',
blockNumber: 229,
address: '0xBD031BCc6d4c151DC43F717e0Dd2aB9238eE0C42',
type: 'mined',
id: 'log_eb7ab44c',
event: 'ModuleAdded',
args:
Result {
'0': [ [BN] ],
'1':
'0x44756d6d7953544f000000000000000000000000000000000000000000000000',
'2': '0xfD2BeB038bFca21Dc4A8199f13C35cd8816035d9',
'3': '0x0589ea49bF09C7004F2A1515994B432903802b83',
'4': BN { negative: 0, words: [Array], length: 1, red: null },
'5': BN { negative: 0, words: [Array], length: 1, red: null },
'6':
'0x0000000000000000000000000000000000000000000000000000000000000000',
'7': false,
__length__: 8,
_types: [ [BN] ],
_name:
'0x44756d6d7953544f000000000000000000000000000000000000000000000000',
_moduleFactory: '0xfD2BeB038bFca21Dc4A8199f13C35cd8816035d9',
_module: '0x0589ea49bF09C7004F2A1515994B432903802b83',
_moduleCost: BN { negative: 0, words: [Array], length: 1, red: null },
_budget: BN { negative: 0, words: [Array], length: 1, red: null },
_label:
'0x0000000000000000000000000000000000000000000000000000000000000000',
_archived: false } }
0x0589ea49bF09C7004F2A1515994B432903802b83
✓ should attach a dummy STO (326ms)
✓ should send some funds and ERC20 to the DummySTO (48ms)
✓ should reclaim ETH and ERC20 from STO (166ms)
Test cases for the CappedSTOFactory
✓ should get the exact details of the factory (111ms)
✓ Should fail to change the title -- bad owner
✓ Should fail to change the title -- zero length
✓ Should successfully change the title
✓ Should fail to change the description -- bad owner
✓ Should fail to change the description -- zero length
✓ Should successfully change the description (40ms)
✓ Should fail to change the name -- bad owner
✓ Should fail to change the name -- zero length
✓ Should successfully change the name
✓ Should successfully change the name
Test cases for the get functions of the capped sto
✓ Should verify the cap reached or not
✓ Should get the raised amount of ether
✓ Should get the raised amount of poly
✓ Should get the investors
✓ Should get the listed permissions
✓ Should get the metrics of the STO
Attach second POLY STO module
✓ Should successfully attach a second STO to the security token (229ms)
✓ Should verify the configuration of the STO (50ms)
✓ Should successfully invest in second STO (238ms)
Contract: Checkpoints
STL - 0x5D3BeF47d7Be68C97b69Fa9B1DB1Ed3a5ADad5d2
--------------------- Polymath Network Smart Contracts: ---------------------
PolymathRegistry: 0xaC772223D1fb1e8881E29A4F55D815c8c4bBc43a
SecurityTokenRegistryProxy: 0xeD0e0bDbdB1A09f77B53F0c8345EAfA77951108f
SecurityTokenRegistry: 0x6347CecB93D8f1E6cFa30d62AAB5509DC276f53d
ModuleRegistryProxy: 0x24D718f7d8af7D7a4AbaA2B1Cb7AbbB36a23a00d
ModuleRegistry: 0x7EF88a3901494435700cCC4C7615903b43ec2Dbc
FeatureRegistry: 0x5cDc96cE31bdF08EF39D5f65A9Fd5E236CE2245F
STFactory: 0xa13BeaC90A97420310c3430c2A921786eA12D214
GeneralTransferManagerFactory: 0xf1a762a9a2e7f1Cb3D9e20c505d17Ef892E305e7
-----------------------------------------------------------------------------
Generate the SecurityToken
✓ Should register the ticker before the generation of the security token (80ms)
✓ Should generate the new security token with the same symbol as registered above (283ms)
✓ Should set the controller
✓ Should initialize the auto attached modules
Buy tokens using on-chain whitelist
✓ Should Buy the tokens (130ms)
✓ Should Buy some more tokens (127ms)
✓ Add a new token holder (132ms)
Checkpoint: 1 Balances: ["8ac7230489e80000","8ac7230489e80000","8ac7230489e80000"] TotalSupply: "1a055690d9db80000"
Checkpoint Times: 1555527373
Sender: 0xCc036143C68A7A9a41558Eae739B428eCDe5EF66 Receiver: 0xCc036143C68A7A9a41558Eae739B428eCDe5EF66 Amount: "6f05b59d3b200000"
Sender: 0xCc036143C68A7A9a41558Eae739B428eCDe5EF66 Receiver: 0xe84Da28128a48Dd5585d1aBB1ba67276FdD70776 Amount: "3782dace9d900000"
Minting: 1298072504761752766539881003352064 to: 0x26064a2E2b568D9A6D01B93D039D1da9Cf2A58CD
Checking Interim...
Checking TotalSupply: 30000000000000000000 is 30000000000000000000 at checkpoint: 1
Checking Balances: 10000000000000000000,10000000000000000000,10000000000000000000 is 10000000000000000000,10000000000000000000,10000000000000000000 at checkpoint: 1
Checkpoint: 2 Balances: ["3ffffa79a0882cae8297a2a80000","c249fdd327780000","53444835ec580000"] TotalSupply: "3ffffa79a089423cc8a0b6780000"
Checkpoint Times: 1555527373,1555527373
Sender: 0x26064a2E2b568D9A6D01B93D039D1da9Cf2A58CD Receiver: 0x26064a2E2b568D9A6D01B93D039D1da9Cf2A58CD Amount: "66665d8f6740477d9dbf6aa6666"
Minting: 1298072298559545866539881003352064 to: 0x26064a2E2b568D9A6D01B93D039D1da9Cf2A58CD
Checking Interim...
Checking TotalSupply: 30000000000000000000 is 30000000000000000000 at checkpoint: 1
Checking Balances: 10000000000000000000,10000000000000000000,10000000000000000000 is 10000000000000000000,10000000000000000000,10000000000000000000 at checkpoint: 1
Checking TotalSupply: 1298072504761782766539881003352064 is 1298072504761782766539881003352064 at checkpoint: 2
Checking Balances: 1298072504761762766539881003352064,14000000000000000000,6000000000000000000 is 1298072504761762766539881003352064,14000000000000000000,6000000000000000000 at checkpoint: 2
Checkpoint: 3 Balances: ["7ffff448b00bc5b9670586d60000","c249fdd327780000","53444835ec580000"] TotalSupply: "7ffff448b00cdb47ad0e9aa60000"
Checkpoint Times: 1555527373,1555527373,1555527374
Sender: 0xCc036143C68A7A9a41558Eae739B428eCDe5EF66 Receiver: 0x26064a2E2b568D9A6D01B93D039D1da9Cf2A58CD Amount: "31f5c4ed27680000"
Checking Interim...
Checking TotalSupply: 30000000000000000000 is 30000000000000000000 at checkpoint: 1
Checking Balances: 10000000000000000000,10000000000000000000,10000000000000000000 is 10000000000000000000,10000000000000000000,10000000000000000000 at checkpoint: 1
Checking TotalSupply: 1298072504761782766539881003352064 is 1298072504761782766539881003352064 at checkpoint: 2
Checking Balances: 1298072504761762766539881003352064,14000000000000000000,6000000000000000000 is 1298072504761762766539881003352064,14000000000000000000,6000000000000000000 at checkpoint: 2
Checking TotalSupply: 2596144803321328633079762006704128 is 2596144803321328633079762006704128 at checkpoint: 3
Checking Balances: 2596144803321308633079762006704128,14000000000000000000,6000000000000000000 is 2596144803321308633079762006704128,14000000000000000000,6000000000000000000 at checkpoint: 3
Checkpoint: 4 Balances: ["7ffff448b00bf7af2bf2ae3e0000","c249fdd327780000","214e8348c4f00000"] TotalSupply: "7ffff448b00cdb47ad0e9aa60000"
Checkpoint Times: 1555527373,1555527373,1555527374,1555527374
Burning: 7000000000000000000 from: 0xe84Da28128a48Dd5585d1aBB1ba67276FdD70776
Checking Interim...
Checking TotalSupply: 30000000000000000000 is 30000000000000000000 at checkpoint: 1
Checking Balances: 10000000000000000000,10000000000000000000,10000000000000000000 is 10000000000000000000,10000000000000000000,10000000000000000000 at checkpoint: 1
Checking TotalSupply: 1298072504761782766539881003352064 is 1298072504761782766539881003352064 at checkpoint: 2
Checking Balances: 1298072504761762766539881003352064,14000000000000000000,6000000000000000000 is 1298072504761762766539881003352064,14000000000000000000,6000000000000000000 at checkpoint: 2
Checking TotalSupply: 2596144803321328633079762006704128 is 2596144803321328633079762006704128 at checkpoint: 3
Checking Balances: 2596144803321308633079762006704128,14000000000000000000,6000000000000000000 is 2596144803321308633079762006704128,14000000000000000000,6000000000000000000 at checkpoint: 3
Checking TotalSupply: 2596144803321328633079762006704128 is 2596144803321328633079762006704128 at checkpoint: 4
Checking Balances: 2596144803321312233079762006704128,14000000000000000000,2400000000000000000 is 2596144803321312233079762006704128,14000000000000000000,2400000000000000000 at checkpoint: 4
Checkpoint: 5 Balances: ["7ffff448b00bf7af2bf2ae3e0000","6124fee993bc0000","214e8348c4f00000"] TotalSupply: "7ffff448b00c7a22ae2506ea0000"
Checkpoint Times: 1555527373,1555527373,1555527374,1555527374,1555527374
Checking Interim...
Checking TotalSupply: 30000000000000000000 is 30000000000000000000 at checkpoint: 1
Checking Balances: 10000000000000000000,10000000000000000000,10000000000000000000 is 10000000000000000000,10000000000000000000,10000000000000000000 at checkpoint: 1
Checking TotalSupply: 1298072504761782766539881003352064 is 1298072504761782766539881003352064 at checkpoint: 2
Checking Balances: 1298072504761762766539881003352064,14000000000000000000,6000000000000000000 is 1298072504761762766539881003352064,14000000000000000000,6000000000000000000 at checkpoint: 2
Checking TotalSupply: 2596144803321328633079762006704128 is 2596144803321328633079762006704128 at checkpoint: 3
Checking Balances: 2596144803321308633079762006704128,14000000000000000000,6000000000000000000 is 2596144803321308633079762006704128,14000000000000000000,6000000000000000000 at checkpoint: 3
Checking TotalSupply: 2596144803321328633079762006704128 is 2596144803321328633079762006704128 at checkpoint: 4
Checking Balances: 2596144803321312233079762006704128,14000000000000000000,2400000000000000000 is 2596144803321312233079762006704128,14000000000000000000,2400000000000000000 at checkpoint: 4
Checking TotalSupply: 2596144803321321633079762006704128 is 2596144803321321633079762006704128 at checkpoint: 5
Checking Balances: 2596144803321312233079762006704128,7000000000000000000,2400000000000000000 is 2596144803321312233079762006704128,7000000000000000000,2400000000000000000 at checkpoint: 5
Checkpoint: 6 Balances: ["7ffff448b00bf7af2bf2ae3e0000","6124fee993bc0000","214e8348c4f00000"] TotalSupply: "7ffff448b00c7a22ae2506ea0000"
Checkpoint Times: 1555527373,1555527373,1555527374,1555527374,1555527374,1555527375
Sender: 0x26064a2E2b568D9A6D01B93D039D1da9Cf2A58CD Receiver: 0xCc036143C68A7A9a41558Eae739B428eCDe5EF66 Amount: "266662e29b36ca4e26c8cddf6666"
Sender: 0xCc036143C68A7A9a41558Eae739B428eCDe5EF66 Receiver: 0xe84Da28128a48Dd5585d1aBB1ba67276FdD70776 Amount: "133331714d9b75ce5508c967b333"
Minting: 1298072726986453466539881003352064 to: 0x26064a2E2b568D9A6D01B93D039D1da9Cf2A58CD
Checking Interim...
Checking TotalSupply: 30000000000000000000 is 30000000000000000000 at checkpoint: 1
Checking Balances: 10000000000000000000,10000000000000000000,10000000000000000000 is 10000000000000000000,10000000000000000000,10000000000000000000 at checkpoint: 1
Checking TotalSupply: 1298072504761782766539881003352064 is 1298072504761782766539881003352064 at checkpoint: 2
Checking Balances: 1298072504761762766539881003352064,14000000000000000000,6000000000000000000 is 1298072504761762766539881003352064,14000000000000000000,6000000000000000000 at checkpoint: 2
Checking TotalSupply: 2596144803321328633079762006704128 is 2596144803321328633079762006704128 at checkpoint: 3
Checking Balances: 2596144803321308633079762006704128,14000000000000000000,6000000000000000000 is 2596144803321308633079762006704128,14000000000000000000,6000000000000000000 at checkpoint: 3
Checking TotalSupply: 2596144803321328633079762006704128 is 2596144803321328633079762006704128 at checkpoint: 4
Checking Balances: 2596144803321312233079762006704128,14000000000000000000,2400000000000000000 is 2596144803321312233079762006704128,14000000000000000000,2400000000000000000 at checkpoint: 4
Checking TotalSupply: 2596144803321321633079762006704128 is 2596144803321321633079762006704128 at checkpoint: 5
Checking Balances: 2596144803321312233079762006704128,7000000000000000000,2400000000000000000 is 2596144803321312233079762006704128,7000000000000000000,2400000000000000000 at checkpoint: 5
Checking TotalSupply: 2596144803321321633079762006704128 is 2596144803321321633079762006704128 at checkpoint: 6
Checking Balances: 2596144803321312233079762006704128,7000000000000000000,2400000000000000000 is 2596144803321312233079762006704128,7000000000000000000,2400000000000000000 at checkpoint: 6
Checkpoint: 7 Balances: ["99998c978745f940a179a754999a","133331714d9bd6f353f25d23b333","133331714d9b75ce5508c967b333"] TotalSupply: "bfffef7a227d46024a74cde00000"
Checkpoint Times: 1555527373,1555527373,1555527374,1555527374,1555527374,1555527375,1555527376
Sender: 0xe84Da28128a48Dd5585d1aBB1ba67276FdD70776 Receiver: 0xe84Da28128a48Dd5585d1aBB1ba67276FdD70776 Amount: "5c28ed530e1f3af65fbe8bde8f5"
Minting: 1298072318697198866539881003352064 to: 0xCc036143C68A7A9a41558Eae739B428eCDe5EF66
Checking Interim...
Checking TotalSupply: 30000000000000000000 is 30000000000000000000 at checkpoint: 1
Checking Balances: 10000000000000000000,10000000000000000000,10000000000000000000 is 10000000000000000000,10000000000000000000,10000000000000000000 at checkpoint: 1
Checking TotalSupply: 1298072504761782766539881003352064 is 1298072504761782766539881003352064 at checkpoint: 2
Checking Balances: 1298072504761762766539881003352064,14000000000000000000,6000000000000000000 is 1298072504761762766539881003352064,14000000000000000000,6000000000000000000 at checkpoint: 2
Checking TotalSupply: 2596144803321328633079762006704128 is 2596144803321328633079762006704128 at checkpoint: 3
Checking Balances: 2596144803321308633079762006704128,14000000000000000000,6000000000000000000 is 2596144803321308633079762006704128,14000000000000000000,6000000000000000000 at checkpoint: 3
Checking TotalSupply: 2596144803321328633079762006704128 is 2596144803321328633079762006704128 at checkpoint: 4
Checking Balances: 2596144803321312233079762006704128,14000000000000000000,2400000000000000000 is 2596144803321312233079762006704128,14000000000000000000,2400000000000000000 at checkpoint: 4
Checking TotalSupply: 2596144803321321633079762006704128 is 2596144803321321633079762006704128 at checkpoint: 5
Checking Balances: 2596144803321312233079762006704128,7000000000000000000,2400000000000000000 is 2596144803321312233079762006704128,7000000000000000000,2400000000000000000 at checkpoint: 5
Checking TotalSupply: 2596144803321321633079762006704128 is 2596144803321321633079762006704128 at checkpoint: 6
Checking Balances: 2596144803321312233079762006704128,7000000000000000000,2400000000000000000 is 2596144803321312233079762006704128,7000000000000000000,2400000000000000000 at checkpoint: 6
Checking TotalSupply: 3894217530307775099619643010056192 is 3894217530307775099619643010056192 at checkpoint: 7
Checking Balances: 3115374089311372029695714408044954,389421720498205034961964301005619,389421720498198034961964301005619 is 3115374089311372029695714408044954,389421720498205034961964301005619,389421720498198034961964301005619 at checkpoint: 7
Checkpoint: 8 Balances: ["99998c978745f940a179a754999a","133331714d9bd6f353f25d23b333","53332b51056f6a21432d5f49b333"] TotalSupply: "ffffe959da513a55389963c20000"
Checkpoint Times: 1555527373,1555527373,1555527374,1555527374,1555527374,1555527375,1555527376,1555527376
Minting: 1298072716397401466539881003352064 to: 0xCc036143C68A7A9a41558Eae739B428eCDe5EF66
Burning: 1298072550771943366539881003352064 from: 0xCc036143C68A7A9a41558Eae739B428eCDe5EF66
Checking Interim...
Checking TotalSupply: 30000000000000000000 is 30000000000000000000 at checkpoint: 1
Checking Balances: 10000000000000000000,10000000000000000000,10000000000000000000 is 10000000000000000000,10000000000000000000,10000000000000000000 at checkpoint: 1
Checking TotalSupply: 1298072504761782766539881003352064 is 1298072504761782766539881003352064 at checkpoint: 2
Checking Balances: 1298072504761762766539881003352064,14000000000000000000,6000000000000000000 is 1298072504761762766539881003352064,14000000000000000000,6000000000000000000 at checkpoint: 2
Checking TotalSupply: 2596144803321328633079762006704128 is 2596144803321328633079762006704128 at checkpoint: 3
Checking Balances: 2596144803321308633079762006704128,14000000000000000000,6000000000000000000 is 2596144803321308633079762006704128,14000000000000000000,6000000000000000000 at checkpoint: 3
Checking TotalSupply: 2596144803321328633079762006704128 is 2596144803321328633079762006704128 at checkpoint: 4
Checking Balances: 2596144803321312233079762006704128,14000000000000000000,2400000000000000000 is 2596144803321312233079762006704128,14000000000000000000,2400000000000000000 at checkpoint: 4
Checking TotalSupply: 2596144803321321633079762006704128 is 2596144803321321633079762006704128 at checkpoint: 5
Checking Balances: 2596144803321312233079762006704128,7000000000000000000,2400000000000000000 is 2596144803321312233079762006704128,7000000000000000000,2400000000000000000 at checkpoint: 5
Checking TotalSupply: 2596144803321321633079762006704128 is 2596144803321321633079762006704128 at checkpoint: 6
Checking Balances: 2596144803321312233079762006704128,7000000000000000000,2400000000000000000 is 2596144803321312233079762006704128,7000000000000000000,2400000000000000000 at checkpoint: 6
Checking TotalSupply: 3894217530307775099619643010056192 is 3894217530307775099619643010056192 at checkpoint: 7
Checking Balances: 3115374089311372029695714408044954,389421720498205034961964301005619,389421720498198034961964301005619 is 3115374089311372029695714408044954,389421720498205034961964301005619,389421720498198034961964301005619 at checkpoint: 7
Checking TotalSupply: 5192289849004973966159524013408256 is 5192289849004973966159524013408256 at checkpoint: 8
Checking Balances: 3115374089311372029695714408044954,389421720498205034961964301005619,1687494039195396901501845304357683 is 3115374089311372029695714408044954,389421720498205034961964301005619,1687494039195396901501845304357683 at checkpoint: 8
Checkpoint: 9 Balances: ["99998c978745f940a179a754999a","133331714d9bd6f353f25d23b333","53332bda05fd7d36bb4c7f5bb333"] TotalSupply: "ffffe9e2dadf4d6ab0b883d40000"
Checkpoint Times: 1555527373,1555527373,1555527374,1555527374,1555527374,1555527375,1555527376,1555527376,1555527377
Sender: 0xCc036143C68A7A9a41558Eae739B428eCDe5EF66 Receiver: 0xCc036143C68A7A9a41558Eae739B428eCDe5EF66 Amount: "299995ed02febe9b5da63fadd999"
Sender: 0xe84Da28128a48Dd5585d1aBB1ba67276FdD70776 Receiver: 0x26064a2E2b568D9A6D01B93D039D1da9Cf2A58CD Amount: "b851daa61c3e75ecbf7d17bd1eb"
Burning: 77884344099641006992392860201124 from: 0xe84Da28128a48Dd5585d1aBB1ba67276FdD70776
Checking Interim...
Checking TotalSupply: 30000000000000000000 is 30000000000000000000 at checkpoint: 1
Checking Balances: 10000000000000000000,10000000000000000000,10000000000000000000 is 10000000000000000000,10000000000000000000,10000000000000000000 at checkpoint: 1
Checking TotalSupply: 1298072504761782766539881003352064 is 1298072504761782766539881003352064 at checkpoint: 2
Checking Balances: 1298072504761762766539881003352064,14000000000000000000,6000000000000000000 is 1298072504761762766539881003352064,14000000000000000000,6000000000000000000 at checkpoint: 2
Checking TotalSupply: 2596144803321328633079762006704128 is 2596144803321328633079762006704128 at checkpoint: 3
Checking Balances: 2596144803321308633079762006704128,14000000000000000000,6000000000000000000 is 2596144803321308633079762006704128,14000000000000000000,6000000000000000000 at checkpoint: 3
Checking TotalSupply: 2596144803321328633079762006704128 is 2596144803321328633079762006704128 at checkpoint: 4
Checking Balances: 2596144803321312233079762006704128,14000000000000000000,2400000000000000000 is 2596144803321312233079762006704128,14000000000000000000,2400000000000000000 at checkpoint: 4
Checking TotalSupply: 2596144803321321633079762006704128 is 2596144803321321633079762006704128 at checkpoint: 5
Checking Balances: 2596144803321312233079762006704128,7000000000000000000,2400000000000000000 is 2596144803321312233079762006704128,7000000000000000000,2400000000000000000 at checkpoint: 5
Checking TotalSupply: 2596144803321321633079762006704128 is 2596144803321321633079762006704128 at checkpoint: 6
Checking Balances: 2596144803321312233079762006704128,7000000000000000000,2400000000000000000 is 2596144803321312233079762006704128,7000000000000000000,2400000000000000000 at checkpoint: 6
Checking TotalSupply: 3894217530307775099619643010056192 is 3894217530307775099619643010056192 at checkpoint: 7
Checking Balances: 3115374089311372029695714408044954,389421720498205034961964301005619,389421720498198034961964301005619 is 3115374089311372029695714408044954,389421720498205034961964301005619,389421720498198034961964301005619 at checkpoint: 7
Checking TotalSupply: 5192289849004973966159524013408256 is 5192289849004973966159524013408256 at checkpoint: 8
Checking Balances: 3115374089311372029695714408044954,389421720498205034961964301005619,1687494039195396901501845304357683 is 3115374089311372029695714408044954,389421720498205034961964301005619,1687494039195396901501845304357683 at checkpoint: 8
Checking TotalSupply: 5192290014630432066159524013408256 is 5192290014630432066159524013408256 at checkpoint: 9
Checking Balances: 3115374089311372029695714408044954,389421720498205034961964301005619,1687494204820855001501845304357683 is 3115374089311372029695714408044954,389421720498205034961964301005619,1687494204820855001501845304357683 at checkpoint: 9
Checkpoint: 10 Balances: ["a51eaa41e909e09f6d7178d06b85","3d709e375ebf7ca43fd45d3f0a4","53332bda05fd7d36bb4c7f5bb333"] TotalSupply: "fc28dfff64f355a06cbb3e000f5c"
Checkpoint Times: 1555527373,1555527373,1555527374,1555527374,1555527374,1555527375,1555527376,1555527376,1555527377,1555527378
Sending full balance
Sender: 0xe84Da28128a48Dd5585d1aBB1ba67276FdD70776 Receiver: 0xCc036143C68A7A9a41558Eae739B428eCDe5EF66 Amount: "3d709e375ebf7ca43fd45d3f0a4"
Sender: 0xe84Da28128a48Dd5585d1aBB1ba67276FdD70776 Receiver: 0xCc036143C68A7A9a41558Eae739B428eCDe5EF66 Amount: "0"
Checking Interim...
Checking TotalSupply: 30000000000000000000 is 30000000000000000000 at checkpoint: 1
Checking Balances: 10000000000000000000,10000000000000000000,10000000000000000000 is 10000000000000000000,10000000000000000000,10000000000000000000 at checkpoint: 1
Checking TotalSupply: 1298072504761782766539881003352064 is 1298072504761782766539881003352064 at checkpoint: 2
Checking Balances: 1298072504761762766539881003352064,14000000000000000000,6000000000000000000 is 1298072504761762766539881003352064,14000000000000000000,6000000000000000000 at checkpoint: 2
Checking TotalSupply: 2596144803321328633079762006704128 is 2596144803321328633079762006704128 at checkpoint: 3
Checking Balances: 2596144803321308633079762006704128,14000000000000000000,6000000000000000000 is 2596144803321308633079762006704128,14000000000000000000,6000000000000000000 at checkpoint: 3
Checking TotalSupply: 2596144803321328633079762006704128 is 2596144803321328633079762006704128 at checkpoint: 4
Checking Balances: 2596144803321312233079762006704128,14000000000000000000,2400000000000000000 is 2596144803321312233079762006704128,14000000000000000000,2400000000000000000 at checkpoint: 4
Checking TotalSupply: 2596144803321321633079762006704128 is 2596144803321321633079762006704128 at checkpoint: 5
Checking Balances: 2596144803321312233079762006704128,7000000000000000000,2400000000000000000 is 2596144803321312233079762006704128,7000000000000000000,2400000000000000000 at checkpoint: 5
Checking TotalSupply: 2596144803321321633079762006704128 is 2596144803321321633079762006704128 at checkpoint: 6
Checking Balances: 2596144803321312233079762006704128,7000000000000000000,2400000000000000000 is 2596144803321312233079762006704128,7000000000000000000,2400000000000000000 at checkpoint: 6
Checking TotalSupply: 3894217530307775099619643010056192 is 3894217530307775099619643010056192 at checkpoint: 7
Checking Balances: 3115374089311372029695714408044954,389421720498205034961964301005619,389421720498198034961964301005619 is 3115374089311372029695714408044954,389421720498205034961964301005619,389421720498198034961964301005619 at checkpoint: 7
Checking TotalSupply: 5192289849004973966159524013408256 is 5192289849004973966159524013408256 at checkpoint: 8
Checking Balances: 3115374089311372029695714408044954,389421720498205034961964301005619,1687494039195396901501845304357683 is 3115374089311372029695714408044954,389421720498205034961964301005619,1687494039195396901501845304357683 at checkpoint: 8
Checking TotalSupply: 5192290014630432066159524013408256 is 5192290014630432066159524013408256 at checkpoint: 9
Checking Balances: 3115374089311372029695714408044954,389421720498205034961964301005619,1687494204820855001501845304357683 is 3115374089311372029695714408044954,389421720498205034961964301005619,1687494204820855001501845304357683 at checkpoint: 9
Checking TotalSupply: 5114405670530791059167131153207132 is 5114405670530791059167131153207132 at checkpoint: 10
Checking Balances: 3349027121610295050672892988648325,77884344099641006992392860201124,1687494204820855001501845304357683 is 3349027121610295050672892988648325,77884344099641006992392860201124,1687494204820855001501845304357683 at checkpoint: 10
Checking...
Checking TotalSupply: 30000000000000000000 is 30000000000000000000 at checkpoint: 1
Checking Balances: 10000000000000000000,10000000000000000000,10000000000000000000 is 10000000000000000000,10000000000000000000,10000000000000000000 at checkpoint: 1
Checking TotalSupply: 1298072504761782766539881003352064 is 1298072504761782766539881003352064 at checkpoint: 2
Checking Balances: 1298072504761762766539881003352064,14000000000000000000,6000000000000000000 is 1298072504761762766539881003352064,14000000000000000000,6000000000000000000 at checkpoint: 2
Checking TotalSupply: 2596144803321328633079762006704128 is 2596144803321328633079762006704128 at checkpoint: 3
Checking Balances: 2596144803321308633079762006704128,14000000000000000000,6000000000000000000 is 2596144803321308633079762006704128,14000000000000000000,6000000000000000000 at checkpoint: 3
Checking TotalSupply: 2596144803321328633079762006704128 is 2596144803321328633079762006704128 at checkpoint: 4
Checking Balances: 2596144803321312233079762006704128,14000000000000000000,2400000000000000000 is 2596144803321312233079762006704128,14000000000000000000,2400000000000000000 at checkpoint: 4
Checking TotalSupply: 2596144803321321633079762006704128 is 2596144803321321633079762006704128 at checkpoint: 5
Checking Balances: 2596144803321312233079762006704128,7000000000000000000,2400000000000000000 is 2596144803321312233079762006704128,7000000000000000000,2400000000000000000 at checkpoint: 5
Checking TotalSupply: 2596144803321321633079762006704128 is 2596144803321321633079762006704128 at checkpoint: 6
Checking Balances: 2596144803321312233079762006704128,7000000000000000000,2400000000000000000 is 2596144803321312233079762006704128,7000000000000000000,2400000000000000000 at checkpoint: 6
Checking TotalSupply: 3894217530307775099619643010056192 is 3894217530307775099619643010056192 at checkpoint: 7
Checking Balances: 3115374089311372029695714408044954,389421720498205034961964301005619,389421720498198034961964301005619 is 3115374089311372029695714408044954,389421720498205034961964301005619,389421720498198034961964301005619 at checkpoint: 7
Checking TotalSupply: 5192289849004973966159524013408256 is 5192289849004973966159524013408256 at checkpoint: 8
Checking Balances: 3115374089311372029695714408044954,389421720498205034961964301005619,1687494039195396901501845304357683 is 3115374089311372029695714408044954,389421720498205034961964301005619,1687494039195396901501845304357683 at checkpoint: 8
Checking TotalSupply: 5192290014630432066159524013408256 is 5192290014630432066159524013408256 at checkpoint: 9
Checking Balances: 3115374089311372029695714408044954,389421720498205034961964301005619,1687494204820855001501845304357683 is 3115374089311372029695714408044954,389421720498205034961964301005619,1687494204820855001501845304357683 at checkpoint: 9
Checking TotalSupply: 5114405670530791059167131153207132 is 5114405670530791059167131153207132 at checkpoint: 10
Checking Balances: 3349027121610295050672892988648325,77884344099641006992392860201124,1687494204820855001501845304357683 is 3349027121610295050672892988648325,77884344099641006992392860201124,1687494204820855001501845304357683 at checkpoint: 10
✓ Fuzz test balance checkpoints (6855ms)
Contract: CountTransferManager
STL - 0x5D3BeF47d7Be68C97b69Fa9B1DB1Ed3a5ADad5d2
--------------------- Polymath Network Smart Contracts: ---------------------
PolymathRegistry: 0xaC772223D1fb1e8881E29A4F55D815c8c4bBc43a
SecurityTokenRegistryProxy: 0xeD0e0bDbdB1A09f77B53F0c8345EAfA77951108f
SecurityTokenRegistry: 0x6347CecB93D8f1E6cFa30d62AAB5509DC276f53d
ModuleRegistry: 0x7EF88a3901494435700cCC4C7615903b43ec2Dbc
ModuleRegistryProxy: 0x24D718f7d8af7D7a4AbaA2B1Cb7AbbB36a23a00d
FeatureRegistry: 0x5cDc96cE31bdF08EF39D5f65A9Fd5E236CE2245F
STFactory: 0xa13BeaC90A97420310c3430c2A921786eA12D214
GeneralTransferManagerFactory: 0xf1a762a9a2e7f1Cb3D9e20c505d17Ef892E305e7
CountTransferManagerFactory: 0x146EEb2719451a7bcd57E755987224eFe6c9f7f6
-----------------------------------------------------------------------------
Generate the SecurityToken
✓ Should register the ticker before the generation of the security token (80ms)
✓ Should generate the new security token with the same symbol as registered above (307ms)
✓ Should initialize the auto attached modules
✓ Should successfully attach the CountTransferManager factory with the security token (196ms)
✓ Should successfully attach the CountTransferManager factory with the security token (203ms)
✓ Should successfully attach the CountTransferManager with the security token (159ms)
Buy tokens using on-chain whitelist
✓ Should Buy the tokens (196ms)
✓ Should Buy some more tokens (141ms)
✓ Should able to buy some more tokens (more than 2 hoders) -- because CountTransferManager is paused (163ms)
✓ Should fail to buy some more tokens (more than 2 holders) (208ms)
✓ Should still be able to add to original token holders (92ms)
✓ Should still be able to transfer between existing token holders before count change (71ms)
✓ Should fail in modifying the holder count (43ms)
✓ Modify holder count to 1
✓ Should still be able to transfer between existing token holders after count change (74ms)
✓ Should not be able to transfer to a new token holder (110ms)
✓ Should be able to consolidate balances (53ms)
✓ Should get the permission list
Test cases for adding and removing acc holder at the same time
✓ deploy a new token & auto attach modules (413ms)
✓ add 3 holders to the token (418ms)
✓ Should initialize the auto attached modules
✓ Should successfully attach the CountTransferManager factory with the security token (196ms)
current max holder number is 2
✓ Should successfully attach the CountTransferManager with the security token and set max holder to 2 (193ms)
✓ Should upgrade the CTM (392ms)
✓ Should upgrade the CTM again (445ms)
current investor count is 3
✓ Should allow add a new token holder while transfer all the tokens at one go (189ms)
Test cases for the factory
✓ should get the exact details of the factory (60ms)
✓ Should get the tags of the factory
Test cases for the ModuleFactory
✓ Should successfully change the SetupCost -- fail beacuse of bad owner
✓ Should successfully change the setupCost
✓ Should successfully change the cost type -- fail beacuse of bad owner
✓ Should successfully change the cost type (98ms)
✓ Should successfully change the usage fee -- fail beacuse of bad owner
✓ Should successfully change the usage fee
Test case for the changeSTVersionBounds
✓ Should successfully change the version bounds -- failed because of the non permitted bound type
✓ Should successfully change the version bound --failed because the new version length < 3
✓ Should successfully change the version bound (79ms)
Contract: ERC20DividendCheckpoint
STL - 0x5D3BeF47d7Be68C97b69Fa9B1DB1Ed3a5ADad5d2
--------------------- Polymath Network Smart Contracts: ---------------------
PolymathRegistry: 0xaC772223D1fb1e8881E29A4F55D815c8c4bBc43a
SecurityTokenRegistryProxy: 0xeD0e0bDbdB1A09f77B53F0c8345EAfA77951108f
SecurityTokenRegistry: 0x6347CecB93D8f1E6cFa30d62AAB5509DC276f53d
ModuleRegistry: 0x7EF88a3901494435700cCC4C7615903b43ec2Dbc
ModuleRegistryProxy: 0x24D718f7d8af7D7a4AbaA2B1Cb7AbbB36a23a00d
FeatureRegistry: 0x5cDc96cE31bdF08EF39D5f65A9Fd5E236CE2245F
STFactory: 0xa13BeaC90A97420310c3430c2A921786eA12D214
GeneralTransferManagerFactory: 0xf1a762a9a2e7f1Cb3D9e20c505d17Ef892E305e7
ERC20DividendCheckpointFactory: 0xEb5785C94A8b2B6302764a4d6DB8463337FD7bc6
-----------------------------------------------------------------------------
Generate the SecurityToken
✓ Should register the ticker before the generation of the security token (77ms)
✓ Should generate the new security token with the same symbol as registered above (290ms)
✓ Should initialize the auto attached modules
✓ Should successfully attach the ERC20DividendCheckpoint with the security token - fail insufficient payment (188ms)
✓ Should successfully attach the ERC20DividendCheckpoint with the security token with budget (227ms)
Result {
'0': [ BN { negative: 0, words: [Array], length: 1, red: null } ],
'1':
'0x45524332304469766964656e64436865636b706f696e74000000000000000000',
'2': '0xEb5785C94A8b2B6302764a4d6DB8463337FD7bc6',
'3': '0x095d48901E91cE3146F7E0E514b514673DD980F1',
'4':
BN {
negative: 0,
words: [ 0, <1 empty item> ],
length: 1,
red: null },
'5':
BN {
negative: 0,
words: [ 0, <1 empty item> ],
length: 1,
red: null },
'6':
'0x0000000000000000000000000000000000000000000000000000000000000000',
'7': false,
__length__: 8,
_types: [ BN { negative: 0, words: [Array], length: 1, red: null } ],
_name:
'0x45524332304469766964656e64436865636b706f696e74000000000000000000',
_moduleFactory: '0xEb5785C94A8b2B6302764a4d6DB8463337FD7bc6',
_module: '0x095d48901E91cE3146F7E0E514b514673DD980F1',
_moduleCost:
BN {
negative: 0,
words: [ 0, <1 empty item> ],
length: 1,
red: null },
_budget:
BN {
negative: 0,
words: [ 0, <1 empty item> ],
length: 1,
red: null },
_label:
'0x0000000000000000000000000000000000000000000000000000000000000000',
_archived: false }
✓ Should successfully attach the ERC20DividendCheckpoint with the security token (174ms)
Check Dividend payouts
✓ Buy some tokens for account_investor1 (1 ETH) (141ms)
✓ Buy some tokens for account_investor2 (2 ETH) (175ms)
✓ Should fail in creating the dividend - incorrect allowance (101ms)
✓ Should fail in creating the dividend - maturity > expiry (88ms)
✓ Should fail in creating the dividend - now > expiry (71ms)
✓ Should fail in creating the dividend - bad token (78ms)
✓ Should fail in creating the dividend - amount is 0 (73ms)
✓ Create new dividend of POLY tokens (89ms)
✓ Investor 1 transfers his token balance to investor 2 (86ms)
✓ Issuer pushes dividends iterating over account holders - dividends proportional to checkpoint - fails maturity in the future (39ms)
✓ Issuer pushes dividends iterating over account holders - dividends proportional to checkpoint - fails not owner (50ms)
✓ Issuer pushes dividends iterating over account holders - dividends proportional to checkpoint - fails wrong index
✓ Issuer pushes dividends iterating over account holders - dividends proportional to checkpoint (134ms)
✓ Buy some tokens for account_temp (1 ETH) (136ms)
✓ Should not allow to create dividend without name (128ms)
Gas used w/ no exclusions: 324644
✓ Create new dividend (92ms)
✓ Issuer pushes dividends iterating over account holders - dividends proportional to checkpoint - fails past expiry (44ms)
✓ Issuer pushes dividends iterating over account holders - dividends proportional to checkpoint - fails already reclaimed (83ms)
✓ Buy some tokens for account_investor3 (7 ETH) (135ms)
✓ Should allow to exclude same number of address as EXCLUDED_ADDRESS_LIMIT (3840ms)
✓ Should not allow to exclude duplicate address
✓ Should not allow to exclude 0x0 address
✓ Exclude account_temp using global exclusion list (198ms)
151
✓ Should not allow to exclude more address than EXCLUDED_ADDRESS_LIMIT (53ms)
Gas used w/ max exclusions - default: 371275
✓ Create another new dividend (130ms)
✓ should investor 3 claims dividend - fail bad index
0
Result {
'0':
[ '0xe84Da28128a48Dd5585d1aBB1ba67276FdD70776',
'0x9E1Ef1eC212F5DFfB41d35d9E5c14054F26c6560',
'0xCc036143C68A7A9a41558Eae739B428eCDe5EF66' ],
'1': [ false, false, true ],
'2': [ false, true, false ],
'3':
[ BN { negative: 0, words: [Array], length: 1, red: null },
BN { negative: 0, words: [Array], length: 1, red: null },
BN { negative: 0, words: [Array], length: 1, red: null } ],
'4':
[ BN { negative: 0, words: [Array], length: 3, red: null },
BN { negative: 0, words: [Array], length: 1, red: null },
BN { negative: 0, words: [Array], length: 3, red: null } ],
'5':
[ BN { negative: 0, words: [Array], length: 3, red: null },
BN { negative: 0, words: [Array], length: 3, red: null },
BN { negative: 0, words: [Array], length: 3, red: null } ],
investors:
[ '0xe84Da28128a48Dd5585d1aBB1ba67276FdD70776',
'0x9E1Ef1eC212F5DFfB41d35d9E5c14054F26c6560',
'0xCc036143C68A7A9a41558Eae739B428eCDe5EF66' ],
resultClaimed: [ false, false, true ],
resultExcluded: [ false, true, false ],
resultWithheld:
[ BN { negative: 0, words: [Array], length: 1, red: null },
BN { negative: 0, words: [Array], length: 1, red: null },
BN { negative: 0, words: [Array], length: 1, red: null } ],
resultAmount:
[ BN { negative: 0, words: [Array], length: 3, red: null },
BN { negative: 0, words: [Array], length: 1, red: null },
BN { negative: 0, words: [Array], length: 3, red: null } ],
resultBalance:
[ BN { negative: 0, words: [Array], length: 3, red: null },
BN { negative: 0, words: [Array], length: 3, red: null },
BN { negative: 0, words: [Array], length: 3, red: null } ] }
✓ should investor 3 claims dividend (194ms)
✓ should investor 3 claims dividend - fails already claimed
✓ should issuer pushes remain (171ms)
✓ Delete global exclusion list
✓ Investor 2 transfers 1 ETH of his token balance to investor 1 (107ms)
{"0":"4","1":"4","__length__":2,"_checkpointId":"4","_investorLength":"4"}
4
✓ Create another new dividend with explicit checkpoint - fails bad allowance (104ms)
4
✓ Create another new dividend with explicit - fails maturity > expiry (68ms)
4
✓ Create another new dividend with explicit - fails now > expiry (54ms)
✓ Create another new dividend with explicit - fails bad checkpoint (44ms)
✓ Set withholding tax of 20% on account_temp and 100% on investor2
✓ Should not allow mismatching input lengths
✓ Should not allow withholding greater than limit (70ms)
✓ Should not create dividend with more exclusions than limit (91ms)
✓ Create another new dividend with explicit checkpoint and exclusion (80ms)
✓ Should not create new dividend with duplicate exclusion (66ms)
✓ Should not create new dividend with 0x0 address in exclusion (67ms)
✓ Should not allow excluded to pull Dividend Payment
✓ Investor 2 claims dividend, issuer pushes investor 1 - fails not owner (42ms)
✓ Investor 2 claims dividend, issuer pushes investor 1 - fails bad index
✓ should not calculate dividend for invalid index
✓ should calculate dividend before the push dividend payment (79ms)
✓ Pause and unpause the dividend contract (131ms)
✓ Investor 2 claims dividend (111ms)
✓ Should issuer pushes temp investor - investor1 excluded (184ms)
✓ should calculate dividend after the push dividend payment
✓ Should not allow reclaiming withholding tax with incorrect index
Address:
0x26064a2E2b568D9A6D01B93D039D1da9Cf2A58CD
0xe84Da28128a48Dd5585d1aBB1ba67276FdD70776
0x9E1Ef1eC212F5DFfB41d35d9E5c14054F26c6560
0xCc036143C68A7A9a41558Eae739B428eCDe5EF66
Claimed:
false
true
true
false
Excluded:
true
false
false
false
Withheld:
0
2000000000000000000
200000000000000000
0
Claimed:
0
0
800000000000000000
7000000000000000000
Balance:
1000000000000000000
2000000000000000000
1000000000000000000
7000000000000000000
totalWithheld: 2200000000000000000
totalWithheldWithdrawn: 0
totalWithheld: 2200000000000000000
totalWithheldWithdrawn: 2200000000000000000
✓ Issuer reclaims withholding tax (239ms)
✓ Issuer changes wallet address (98ms)
✓ Issuer unable to reclaim dividend (expiry not passed)
✓ Issuer is unable to reclaim invalid dividend (40ms)
✓ Investor 3 unable to pull dividend after expiry
✓ Issuer is able to reclaim dividend after expiry (49ms)
✓ Issuer is unable to reclaim already reclaimed dividend (67ms)
✓ Investor 3 unable to pull dividend after reclaiming
✓ Should give the right dividend index
✓ Should give the right dividend index
✓ Should get the listed permissions
✓ should register a delegate (325ms)
✓ should not allow manager without permission to set default excluded (51ms)
✓ should not allow manager without permission to set withholding (49ms)
✓ should not allow manager without permission to set withholding fixed (50ms)
✓ should not allow manager without permission to create dividend (93ms)
✓ should not allow manager without permission to create dividend with checkpoint (105ms)
✓ should not allow manager without permission to create dividend with exclusion (60ms)
✓ should not allow manager without permission to create checkpoint (46ms)
✓ should not allow manager without permission to create dividend with checkpoint and exclusion (104ms)
✓ should give permission to manager (47ms)
✓ should allow manager with permission to set default excluded
✓ should allow manager with permission to set withholding
✓ should allow manager withpermission to set withholding fixed
✓ should allow manager with permission to create dividend (96ms)
✓ should allow manager with permission to create dividend with checkpoint (261ms)
Gas used w/ max exclusions - non-default: 364301
✓ should allow manager with permission to create dividend with exclusion (193ms)
BN {
negative: 0,
words: [ 7, <1 empty item> ],
length: 1,
red: null }
✓ should allow manager with permission to create dividend with checkpoint and exclusion (121ms)
✓ Should fail to update the dividend dates because msg.sender is not authorised (49ms)
✓ Should fail to update the dates when the dividend get expired (51ms)
✓ Should update the dividend dates (72ms)
Reclaimed: 4500000000000000000
✓ Reclaim ERC20 tokens from the dividend contract (99ms)
✓ should allow manager with permission to create checkpoint (86ms)
Test cases for the ERC20DividendCheckpointFactory
✓ should get the exact details of the factory (79ms)
Contract: EtherDividendCheckpoint
STL - 0x5D3BeF47d7Be68C97b69Fa9B1DB1Ed3a5ADad5d2
--------------------- Polymath Network Smart Contracts: ---------------------
PolymathRegistry: 0xaC772223D1fb1e8881E29A4F55D815c8c4bBc43a
SecurityTokenRegistryProxy: 0xeD0e0bDbdB1A09f77B53F0c8345EAfA77951108f
SecurityTokenRegistry: 0x6347CecB93D8f1E6cFa30d62AAB5509DC276f53d
ModuleRegistry: 0x7EF88a3901494435700cCC4C7615903b43ec2Dbc
ModuleRegistryProxy: 0x24D718f7d8af7D7a4AbaA2B1Cb7AbbB36a23a00d
FeatureRegistry: 0x5cDc96cE31bdF08EF39D5f65A9Fd5E236CE2245F
STFactory: 0xa13BeaC90A97420310c3430c2A921786eA12D214
GeneralTransferManagerFactory: 0xf1a762a9a2e7f1Cb3D9e20c505d17Ef892E305e7
EtherDividendCheckpointFactory: 0xEb5785C94A8b2B6302764a4d6DB8463337FD7bc6
-----------------------------------------------------------------------------
Generate the SecurityToken
✓ Should register the ticker before the generation of the security token (82ms)
✓ Should generate the new security token with the same symbol as registered above (309ms)
✓ Should initialize the auto attached modules
✓ Should successfully attach the ERC20DividendCheckpoint with the security token (202ms)
✓ Should successfully attach the EtherDividendCheckpoint with the security token (269ms)
✓ Should successfully attach the EtherDividendCheckpoint with the security token (167ms)
Check Dividend payouts
✓ Buy some tokens for account_investor1 (1 ETH) (142ms)
✓ Buy some tokens for account_investor2 (2 ETH) (125ms)
✓ Should fail in creating the dividend (68ms)
✓ Should fail in creating the dividend (65ms)
✓ Should fail in creating the dividend (69ms)
✓ Set withholding tax of 20% on investor 2
✓ Should fail in creating the dividend (69ms)
Dividend first :0
✓ Create new dividend (64ms)
✓ Investor 1 transfers his token balance to investor 2 (80ms)
✓ Issuer pushes dividends iterating over account holders - dividends proportional to checkpoint
✓ Issuer pushes dividends iterating over account holders - dividends proportional to checkpoint (51ms)
✓ Issuer pushes dividends iterating over account holders - dividends proportional to checkpoint
✓ Issuer pushes dividends iterating over account holders - dividends proportional to checkpoint (147ms)
✓ Should not allow reclaiming withholding tax with incorrect index
✓ Issuer reclaims withholding tax (41ms)
✓ No more withholding tax to withdraw
✓ Set withholding tax of 100% on investor 2
✓ Buy some tokens for account_temp (1 ETH) (141ms)
Dividend second :1
✓ Create new dividend (66ms)
✓ Issuer pushes dividends fails due to passed expiry (50ms)
✓ Issuer reclaims dividend (73ms)
✓ Still no more withholding tax to withdraw (39ms)
✓ Buy some tokens for account_investor3 (7 ETH) (138ms)
Dividend third :2
✓ Create another new dividend (65ms)
✓ should investor 3 claims dividend - fails bad index (60ms)
✓ Should investor 3 claims dividend (55ms)
✓ Still no more withholding tax to withdraw (39ms)
✓ should investor 3 claims dividend
✓ Issuer pushes remainder (123ms)
✓ Issuer withdraws new withholding tax (38ms)
✓ Investor 2 transfers 1 ETH of his token balance to investor 1 (102ms)
✓ Create another new dividend with no value - fails (71ms)
✓ Create another new dividend with explicit (42ms)
✓ Create another new dividend with bad expiry - fails (38ms)
✓ Create another new dividend with bad checkpoint in the future - fails (44ms)
✓ Should not create dividend with more exclusions than limit (86ms)
Dividend Fourth :3
✓ Create another new dividend with explicit checkpoint and excluding account_investor1 (59ms)
✓ Should not create new dividend with duplicate exclusion (93ms)
✓ Should not create new dividend with 0x0 address in exclusion (66ms)
✓ Non-owner pushes investor 1 - fails (66ms)
✓ issuer pushes investor 1 with bad dividend index - fails (61ms)
✓ should calculate dividend before the push dividend payment (81ms)
✓ Investor 2 claims dividend (58ms)
✓ Should issuer pushes investor 1 and temp investor (79ms)
✓ should calculate dividend after the push dividend payment
✓ Issuer unable to reclaim dividend (expiry not passed)
✓ Issuer is able to reclaim dividend after expiry (39ms)
✓ Issuer is able to reclaim dividend after expiry (42ms)
✓ Issuer is able to reclaim dividend after expiry
✓ Investor 3 unable to pull dividend after expiry
✓ Assign token balance to an address that can't receive funds (193ms)
Dividend Fifth :4
✓ Create another new dividend (61ms)
✓ Should issuer pushes all dividends (178ms)
✓ Should give the right dividend index
✓ Should give the right dividend index
✓ Should get the listed permissions
✓ should registr a delegate (320ms)
✓ should not allow manager without permission to create dividend (128ms)
✓ should not allow manager without permission to create dividend with checkpoint (103ms)
✓ should not allow manager without permission to create dividend with exclusion (55ms)
✓ should not allow manager without permission to create dividend with checkpoint and exclusion (106ms)
✓ should not allow manager without permission to create checkpoint (47ms)
✓ should give permission to manager (46ms)
Dividend sixth :5
✓ should allow manager with permission to create dividend (79ms)
Dividend seventh :6
✓ should allow manager with permission to create dividend with checkpoint (108ms)
Dividend Eighth :7
7
✓ should allow manager with permission to create dividend with exclusion (84ms)
✓ Should fail to update the dividend dates because msg.sender is not authorised (50ms)
✓ Should fail to update the dates when the dividend get expired (47ms)
✓ Should update the dividend dates (77ms)
Reclaimed: 29000000000000000000
✓ Reclaim ETH from the dividend contract (61ms)
✓ should allow manager with permission to create dividend with checkpoint and exclusion (156ms)
✓ should allow manager with permission to create checkpoint (89ms)
Test cases for the EtherDividendCheckpointFactory
✓ should get the exact details of the factory (87ms)
Contract: GeneralPermissionManager
STL - 0x5D3BeF47d7Be68C97b69Fa9B1DB1Ed3a5ADad5d2
--------------------- Polymath Network Smart Contracts: ---------------------
PolymathRegistry: 0xaC772223D1fb1e8881E29A4F55D815c8c4bBc43a
SecurityTokenRegistryProxy: 0xeD0e0bDbdB1A09f77B53F0c8345EAfA77951108f
SecurityTokenRegistry: 0x6347CecB93D8f1E6cFa30d62AAB5509DC276f53d
ModuleRegistryProxy 0x24D718f7d8af7D7a4AbaA2B1Cb7AbbB36a23a00d
ModuleRegistry: 0x7EF88a3901494435700cCC4C7615903b43ec2Dbc
FeatureRegistry: 0x5cDc96cE31bdF08EF39D5f65A9Fd5E236CE2245F
STFactory: 0xa13BeaC90A97420310c3430c2A921786eA12D214
GeneralTransferManagerFactory: 0xf1a762a9a2e7f1Cb3D9e20c505d17Ef892E305e7
GeneralPermissionManagerFactory: 0x146EEb2719451a7bcd57E755987224eFe6c9f7f6
-----------------------------------------------------------------------------
Generate the SecurityToken
✓ Should register the ticker before the generation of the security token (80ms)
✓ Should generate the new security token with the same symbol as registered above (262ms)
✓ Should initialize the auto attached modules
✓ Should successfully attach the General permission manager factory with the security token -- failed because Token is not paid (199ms)
✓ Should successfully attach the General permission manager factory with the security token (204ms)
✓ Should successfully attach the General permission manager factory with the security token (149ms)
General Permission Manager test cases
✓ Get the init data
✓ Should fail in adding the delegate -- msg.sender doesn't have permission (47ms)
✓ Should fail in adding the delegate -- no delegate details provided
✓ Should fail in adding the delegate -- no delegate address provided
✓ Should fail to remove the delegate -- failed because delegate does not exisit
✓ Should successfully add the delegate
✓ Should successfully add the delegate -- failed because trying to add the already present delegate
✓ Should fail to provide the permission -- because msg.sender doesn't have permission (47ms)
✓ Should check the permission
✓ Should provide the permission
✓ Should check the permission
✓ Security token should deny all permission if all permission managers are disabled (108ms)
✓ Should fail to remove the delegate -- failed because unauthorized msg.sender (46ms)
✓ Should remove the delegate
✓ Should check the permission
✓ Should successfully add the delegate
✓ Should check the delegate details
✓ Should get the permission of the general permission manager contract
✓ Should return all delegates (485ms)
✓ Should create a new token and add some more delegates, then get them (2040ms)
✓ Should check is delegate for 0x address - failed 0x address is not allowed
✓ Should return false when check is delegate - because user is not a delegate
✓ Should return true when check is delegate - because user is a delegate
✓ Should successfully provide the permissions in batch -- failed because of array length is 0 (61ms)
✓ Should successfully provide the permissions in batch -- failed because of perm array length is 0
✓ Should successfully provide the permissions in batch -- failed because mismatch in arrays length
✓ Should successfully provide the permissions in batch -- failed because mismatch in arrays length
✓ Should successfully provide the permissions in batch (51ms)
✓ Should provide all delegates with specified permission (44ms)
✓ Should get all delegates for the permission manager
✓ Should return all modules and all permission (55ms)
General Permission Manager Factory test cases
✓ should get the exact details of the factory (71ms)
✓ Should get the tags of the factory
Contract: GeneralTransferManager
STL - 0x5D3BeF47d7Be68C97b69Fa9B1DB1Ed3a5ADad5d2
--------------------- Polymath Network Smart Contracts: ---------------------
PolymathRegistry: 0xaC772223D1fb1e8881E29A4F55D815c8c4bBc43a
SecurityTokenRegistryProxy: 0xeD0e0bDbdB1A09f77B53F0c8345EAfA77951108f
SecurityTokenRegistry: 0x6347CecB93D8f1E6cFa30d62AAB5509DC276f53d
ModuleRegistryProxy: 0x24D718f7d8af7D7a4AbaA2B1Cb7AbbB36a23a00d
ModuleRegistry: 0x7EF88a3901494435700cCC4C7615903b43ec2Dbc
FeatureRegistry: 0x5cDc96cE31bdF08EF39D5f65A9Fd5E236CE2245F
STFactory: 0xa13BeaC90A97420310c3430c2A921786eA12D214
GeneralTransferManagerFactory: 0xf1a762a9a2e7f1Cb3D9e20c505d17Ef892E305e7
GeneralPermissionManagerFactory: 0x146EEb2719451a7bcd57E755987224eFe6c9f7f6
DummySTOFactory: 0xAEadfb0Fc437d3f2e8bD828523177F78D7152170
-----------------------------------------------------------------------------
Generate the SecurityToken
✓ Should register the ticker before the generation of the security token (83ms)
✓ Should generate the new security token with the same symbol as registered above (285ms)
✓ Should initialize the auto attached modules
✓ Should attach the paid GTM -- failed because of no tokens (191ms)
✓ Should attach the paid GTM (198ms)
✓ Should add investor flags (248ms)
Estimate gas of one Whitelist:
141899
Result {
'0':
[ '0xce42bdB34189a93c55De250E011c68FaeE374Dd3',
'0x97A3FC5Ee46852C1Cf92A97B7BaD42F2622267cC' ],
'1':
[ BN { negative: 0, words: [Array], length: 3, red: null },
BN { negative: 0, words: [Array], length: 2, red: null } ],
'2':
[ BN { negative: 0, words: [Array], length: 3, red: null },
BN { negative: 0, words: [Array], length: 2, red: null } ],
'3':
[ BN { negative: 0, words: [Array], length: 3, red: null },
BN { negative: 0, words: [Array], length: 2, red: null } ],
investors:
[ '0xce42bdB34189a93c55De250E011c68FaeE374Dd3',
'0x97A3FC5Ee46852C1Cf92A97B7BaD42F2622267cC' ],
canSendAfters:
[ BN { negative: 0, words: [Array], length: 3, red: null },
BN { negative: 0, words: [Array], length: 2, red: null } ],
canReceiveAfters:
[ BN { negative: 0, words: [Array], length: 3, red: null },
BN { negative: 0, words: [Array], length: 2, red: null } ],
expiryTimes:
[ BN { negative: 0, words: [Array], length: 3, red: null },
BN { negative: 0, words: [Array], length: 2, red: null } ] }
✓ Should whitelist the affiliates before the STO attached (327ms)
Multi Whitelist x 50: 4888141
✓ Should whitelist lots of addresses and check gas (1996ms)
Estimate gas cost for minting the tokens: 208130
✓ Should mint the tokens to the affiliates (185ms)
✓ Should successfully attach the STO factory with the security token -- failed because of no tokens (193ms)
✓ Should successfully attach the STO factory with the security token (213ms)
✓ Should successfully attach the STO factory with the security token - invalid data (128ms)
✓ Should successfully attach the STO factory with the security token (166ms)
✓ Should successfully attach the permission manager factory with the security token (165ms)
✓ should have transfer requirements initialized
✓ should not allow unauthorized people to change transfer requirements (110ms)
Buy tokens using on-chain whitelist
✓ Should buy the tokens -- Failed due to investor is not in the whitelist (139ms)
Gas usage of minting of tokens: 159722
✓ Should Buy the tokens (223ms)
✓ Should fail in buying the token from the STO (44ms)
✓ Should fail in buying the tokens from the STO -- because amount is 0
✓ Should fail in buying the tokens from the STO -- because STO is paused (84ms)
✓ Should buy more tokens from the STO to investor1 (79ms)
✓ Should fail in investing the money in STO -- expiry limit reached (112ms)
Buy tokens using on-chain whitelist and defaults
✓ Should Buy the tokens (201ms)
✓ Add a from default and check transfers are disabled then enabled in the future (205ms)
✓ Add a to default and check transfers are disabled then enabled in the future (272ms)
Buy tokens using off-chain whitelist
✓ Should buy the tokens -- Failed due to investor is not in the whitelist (111ms)
✓ Should provide the permission and change the signing address (58ms)
✓ Should buy the tokens -- Failed due to incorrect signature input (126ms)
✓ Should buy the tokens -- Failed due to incorrect signature timing (49ms)
✓ Should buy the tokens -- Failed due to incorrect signature signer (151ms)
✓ Should Not Transfer with expired Signed KYC data (183ms)
✓ Should Transfer with Signed KYC data (291ms)
✓ Should not do multiple signed whitelist if sig has expired (180ms)
✓ Should not do multiple signed whitelist if array length mismatch (79ms)
✓ Should do multiple signed whitelist in a signle transaction (165ms)
✓ Should Buy the tokens with signers signature (212ms)
✓ Should fail if the txn is generated with same nonce (51ms)
✓ Should sign with token owner key (76ms)
✓ Should get the permission
✓ Should set a usage fee for the GTM (43ms)
✓ Should fail to pull fees as no budget set (51ms)
✓ Should set a budget for the GeneralTransferManager (112ms)
✓ Factory owner should pull fees - fails as not permissioned by issuer (50ms)
✓ Factory owner should pull fees (117ms)
✓ should allow authorized people to modify transfer requirements
✓ should failed in trasfering the tokens (117ms)
✓ Should change the Issuance address
✓ Should unpause the transfers
✓ Should get the init function
WhiteList that addresses
✓ Should fail in adding the investors in whitelist (56ms)
✓ Should fail in adding the investors in whitelist -- array length mismatch (56ms)
✓ Should fail in adding the investors in whitelist -- array length mismatch (60ms)
✓ Should fail in adding the investors in whitelist -- array length mismatch (59ms)
✓ Should successfully add the investors in whitelist (130ms)
Test cases for the getTokensByPartition
✓ Should change the transfer requirements
✓ Should check the partition balance before changing the canSendAfter & canReceiveAfter (54ms)
✓ Should change the canSendAfter and canRecieveAfter of the investor2 (104ms)
✓ Should check the values of partition balance after the GTM pause (92ms)
General Transfer Manager Factory test cases
✓ Should get the exact details of the factory (71ms)
✓ Should get the tags of the factory
Dummy STO Factory test cases
✓ should get the exact details of the factory (71ms)
✓ Should get the tags of the factory
Test cases for the get functions of the dummy sto
✓ Should get the raised amount of ether
✓ Should get the raised amount of poly
✓ Should get the investors
✓ Should get the listed permissions
✓ Should get the amount of tokens sold
Contract: Issuance
STL - 0x5D3BeF47d7Be68C97b69Fa9B1DB1Ed3a5ADad5d2
--------------------- Polymath Network Smart Contracts: ---------------------
PolymathRegistry: 0xaC772223D1fb1e8881E29A4F55D815c8c4bBc43a
SecurityTokenRegistryProxy: 0xeD0e0bDbdB1A09f77B53F0c8345EAfA77951108f
SecurityTokenRegistry: 0x6347CecB93D8f1E6cFa30d62AAB5509DC276f53d
ModuleRegistry: 0x7EF88a3901494435700cCC4C7615903b43ec2Dbc
ModuleRegistryProxy: 0x24D718f7d8af7D7a4AbaA2B1Cb7AbbB36a23a00d
FeatureRegistry: 0x5cDc96cE31bdF08EF39D5f65A9Fd5E236CE2245F
STFactory: 0xa13BeaC90A97420310c3430c2A921786eA12D214
GeneralTransferManagerFactory: 0xf1a762a9a2e7f1Cb3D9e20c505d17Ef892E305e7
GeneralPermissionManagerFactory: 0x146EEb2719451a7bcd57E755987224eFe6c9f7f6
CappedSTOFactory: 0xEb5785C94A8b2B6302764a4d6DB8463337FD7bc6
-----------------------------------------------------------------------------
Launch SecurityToken & STO on the behalf of the issuer
Create securityToken for the issuer by the polymath
✓ POLYMATH: Should register the ticker before the generation of the security token (97ms)
✓ POLYMATH: Should generate the new security token with the same symbol as registered above (289ms)
✓ POLYMATH: Should initialize the auto attached modules
✓ POLYMATH: Should successfully attach the STO factory with the security token (370ms)
Transfer Manager operations by the polymath_account
✓ Should modify the whitelist (69ms)
✓ Should add the delegate with permission (257ms)
✓ POLYMATH: Should change the ownership of the SecurityToken
Operations on the STO
✓ Should Buy the tokens (134ms)
✓ Verification of the event Token Purchase
✓ should add the investor into the whitelist by the delegate (80ms)
✓ Should buy the token (114ms)
Contract: ManualApprovalTransferManager
STL - 0x5D3BeF47d7Be68C97b69Fa9B1DB1Ed3a5ADad5d2
--------------------- Polymath Network Smart Contracts: ---------------------
PolymathRegistry: 0xaC772223D1fb1e8881E29A4F55D815c8c4bBc43a
SecurityTokenRegistryProxy: 0xeD0e0bDbdB1A09f77B53F0c8345EAfA77951108f
SecurityTokenRegistry: 0x6347CecB93D8f1E6cFa30d62AAB5509DC276f53d
ModuleRegistry: 0x7EF88a3901494435700cCC4C7615903b43ec2Dbc
FeatureRegistry: 0x5cDc96cE31bdF08EF39D5f65A9Fd5E236CE2245F
STFactory: 0xa13BeaC90A97420310c3430c2A921786eA12D214
GeneralTransferManagerFactory: 0xf1a762a9a2e7f1Cb3D9e20c505d17Ef892E305e7
GeneralPermissionManagerFactory: 0x146EEb2719451a7bcd57E755987224eFe6c9f7f6
ManualApprovalTransferManagerFactory: 0xEb5785C94A8b2B6302764a4d6DB8463337FD7bc6
CountTransferManagerFactory: 0xD90d13ad9D5AB251D11dCC96Ac6fBd1302070eA5
-----------------------------------------------------------------------------
Generate the SecurityToken
✓ Should register the ticker before the generation of the security token (116ms)
✓ Should generate the new security token with the same symbol as registered above (314ms)
✓ Should initialize the auto attached modules
Buy tokens using whitelist & manual approvals
✓ Should Buy the tokens (139ms)
✓ Should Buy some more tokens (129ms)
✓ Should successfully attach the ManualApprovalTransferManager with the security token (210ms)
✓ Should successfully attach the General permission manager factory with the security token (205ms)
✓ Should successfully attach the ManualApprovalTransferManager with the security token (170ms)
✓ Cannot call executeTransfer on the TM directly
✓ Can call verifyTransfer on the TM directly if _isTransfer == false
✓ Add a new token holder (182ms)
✓ Should still be able to transfer between existing token holders (68ms)
✓ Should fail to add a manual approval because invalid expiry time
✓ Add a manual approval for a 4th investor & return correct length (38ms)
current approval length is 1
1
2
3
4
✓ Should return all approvals correctly
✓ Should try to add the same manual approval for the same `_from` & `_to` address
true
✓ Check verifyTransfer without actually transferring (127ms)
✓ Should fail to sell the tokens more than the allowance (113ms)
✓ Approval fails with wrong from to address (104ms)
✓ Should sell the tokens to investor 4 (GTM will give INVALID as investor 4 not in the whitelist) (91ms)
✓ Should sell more tokens to investor 4 with in the same day(GTM will give INVALID as investor 4 not in the whitelist) (115ms)
✓ Should fail to transact after the approval get expired (94ms)
✓ Should fail to modify the manual approval when the approval get expired
✓ Should attach the manual approval for the investor4 again (77ms)
✓ Should modify the manual approval expiry time for 4th investor
✓ Should transact after two days (95ms)
✓ Should modify the allowance of the manual approval (increase)
✓ Should transact according to new allowance (86ms)
✓ Should decrease the allowance
✓ Should fail to transfer the tokens because allowance get changed (89ms)
✓ Should successfully transfer the tokens within the allowance limit (82ms)
✓ Should fail to modify because allowance is zero
✓ Should fail to revoke the manual Approval -- bad owner (39ms)
✓ Should revoke the manual Approval b/w investor4 and 1 (57ms)
✓ Should fail to revoke the same manual approval again
✓ Should fail to add multiple manual approvals -- failed because of bad owner (48ms)
✓ Should fail to add multiple manual approvals -- failed because of length mismatch
✓ Should fail to add multiple manual approvals -- failed because of length mismatch
✓ Should fail to add multiple manual approvals -- failed because of length mismatch
✓ Should fail to add multiple manual approvals -- failed because of length mismatch
✓ Add multiple manual approvals (132ms)
✓ Should fail to revoke the multiple manual approvals -- because of bad owner (41ms)
✓ Should fail to revoke the multiple manual approvals -- because of input length mismatch
✓ Revoke multiple manual approvals (89ms)
✓ Add a manual approval for a 5th investor from issuance
✓ Should successfully attach the CountTransferManager with the security token (count of 1) (160ms)
✓ Should get the permission list
✓ Should get the init function
ManualApproval Transfer Manager Factory test cases
✓ Should get the exact details of the factory (65ms)
✓ Should get the tags of the factory
Contract: ModuleRegistry
STL - 0x5D3BeF47d7Be68C97b69Fa9B1DB1Ed3a5ADad5d2
--------------------- Polymath Network Smart Contracts: ---------------------
PolymathRegistry: 0xaC772223D1fb1e8881E29A4F55D815c8c4bBc43a
SecurityTokenRegistryProxy: 0xeD0e0bDbdB1A09f77B53F0c8345EAfA77951108f
SecurityTokenRegistry: 0x6347CecB93D8f1E6cFa30d62AAB5509DC276f53d
ModuleRegistry: 0x7EF88a3901494435700cCC4C7615903b43ec2Dbc
ModuleRegistryProxy: 0xBC57310D2E0543AeFe7F990948232Ae97934bFE9
FeatureRegistry: 0x5cDc96cE31bdF08EF39D5f65A9Fd5E236CE2245F
STFactory: 0xa13BeaC90A97420310c3430c2A921786eA12D214
GeneralTransferManagerFactory: 0xf1a762a9a2e7f1Cb3D9e20c505d17Ef892E305e7
-----------------------------------------------------------------------------
Test the initialize the function
✓ Should successfully update the implementation address -- fail because polymathRegistry address is 0x
✓ Should successfully update the implementation address -- fail because owner address is 0x
✓ Should successfully update the implementation address -- fail because all params are 0x
✓ Should successfully update the implementation address (92ms)
Test cases for the ModuleRegistry
Test case for the upgradeFromregistry
✓ Should successfully update the registry contract address -- failed because of bad owner
✓ Should successfully update the registry contract addresses (53ms)
Test the state variables
✓ Should be the right owner
✓ Should be the expected value of the paused and intialised variable
✓ Should be the expected value of the polymath registry
Test cases for the registering the module
✓ Should fail to register the module -- when registerModule is paused (62ms)
✓ Should register the module with the Module Registry (61ms)
✓ Should fail the register the module -- Already registered module
✓ Should fail in registering the module-- type = 0 (47ms)
✓ Should fail to register the new module because msg.sender is not the owner of the module (109ms)
✓ Should successfully register the module -- fail because no module type uniqueness (43ms)
Test case for verifyModule
✓ Should fail in calling the verify module. Because msg.sender should be account_polymath (51ms)
✓ Should successfully verify the module -- true
✓ Should successfully verify the module -- false (131ms)
✓ Should fail in verifying the module. Because the module is not registered
Test cases for the useModule function of the module registry
✓ Deploy the securityToken (403ms)
✓ Should fail in adding module. Because module is un-verified (45ms)
✓ Should fail to register module because custom modules not allowed (99ms)
✓ Should switch customModulesAllowed to true (38ms)
✓ Should successfully add module because custom modules switched on (210ms)
✓ Should successfully add module when custom modules switched on -- fail because factory owner is different (44ms)
✓ Should successfully add verified module (316ms)
I_TestSTOFactory:0xE6e7EE2e6AE93358A1d81481b7547FCBa21b2F94
✓ Should failed in adding the TestSTOFactory module because not compatible with the current protocol version --lower (320ms)
✓ Should failed in adding the TestSTOFactory module because not compatible with the current protocol version --upper (524ms)
Test case for the getModulesByTypeAndToken()
[ '0xc731c7cA8F7d08eDDb1d5B33ecdcfac47bAa841d' ]
✓ Should get the list of available modules when the customModulesAllowed (119ms)
[]
✓ Should get the list of available modules when the customModulesAllowed is not allowed (72ms)
Test cases for getters
getModulesByType:
Type: 0:
Type: 1:0x9c6f076855d3643AB52772F2108D4046a10049EC
Type: 2:0xf1a762a9a2e7f1Cb3D9e20c505d17Ef892E305e7
Type: 3:0x2f81cc8f6af30BcA58CbFAe4E6EeaA0D56AAD018,0xc731c7cA8F7d08eDDb1d5B33ecdcfac47bAa841d,0x688828B4032E708324ff253eF3A9640bAc371E23,0xE6e7EE2e6AE93358A1d81481b7547FCBa21b2F94
Type: 4:
getModulesByTypeAndToken:
Type: 0:
Type: 1:0x9c6f076855d3643AB52772F2108D4046a10049EC
Type: 2:0xf1a762a9a2e7f1Cb3D9e20c505d17Ef892E305e7
Type: 3:
Type: 4:
getTagsByType:
Type: 0:
Type: 0:
Type: 1:0x9c6f076855d3643AB52772F2108D4046a10049EC
Type: 1:Permission Management
Type: 2:0xf1a762a9a2e7f1Cb3D9e20c505d17Ef892E305e7,0xf1a762a9a2e7f1Cb3D9e20c505d17Ef892E305e7
Type: 2:General,Transfer Restriction
Type: 3:0x2f81cc8f6af30BcA58CbFAe4E6EeaA0D56AAD018,0x2f81cc8f6af30BcA58CbFAe4E6EeaA0D56AAD018,0x2f81cc8f6af30BcA58CbFAe4E6EeaA0D56AAD018,0x2f81cc8f6af30BcA58CbFAe4E6EeaA0D56AAD018,0xc731c7cA8F7d08eDDb1d5B33ecdcfac47bAa841d,0xc731c7cA8F7d08eDDb1d5B33ecdcfac47bAa841d,0xc731c7cA8F7d08eDDb1d5B33ecdcfac47bAa841d,0xc731c7cA8F7d08eDDb1d5B33ecdcfac47bAa841d,0x688828B4032E708324ff253eF3A9640bAc371E23,0x688828B4032E708324ff253eF3A9640bAc371E23,0x688828B4032E708324ff253eF3A9640bAc371E23,0x688828B4032E708324ff253eF3A9640bAc371E23,0xE6e7EE2e6AE93358A1d81481b7547FCBa21b2F94,0xE6e7EE2e6AE93358A1d81481b7547FCBa21b2F94,0xE6e7EE2e6AE93358A1d81481b7547FCBa21b2F94,0xE6e7EE2e6AE93358A1d81481b7547FCBa21b2F94
Type: 3:Capped,ETH,POLY,STO,Capped,ETH,POLY,STO,Capped,ETH,POLY,STO,Test,Non-refundable,ETH,
Type: 4:
Type: 4:
getTagsByTypeAndToken:
Type: 0:
Type: 0:
Type: 1:0x9c6f076855d3643AB52772F2108D4046a10049EC
Type: 1:Permission Management
Type: 2:0xf1a762a9a2e7f1Cb3D9e20c505d17Ef892E305e7,0xf1a762a9a2e7f1Cb3D9e20c505d17Ef892E305e7
Type: 2:General,Transfer Restriction
Type: 3:
Type: 3:
Type: 4:
Type: 4:
✓ Check getter - (583ms)
Test cases for removeModule()
✓ Should fail if msg.sender not curator or owner
✓ Should successfully remove module and delete data if msg.sender is curator (177ms)
✓ Should successfully remove module and delete data if msg.sender is owner (143ms)
✓ Should fail if module already removed (59ms)
Test cases for IRegistry functionality
Test cases for reclaiming funds
✓ Should successfully reclaim POLY tokens -- fail because token address will be 0x
✓ Should successfully reclaim POLY tokens -- not authorised
✓ Should successfully reclaim POLY tokens (100ms)
Test cases for pausing the contract
✓ Should fail to pause if msg.sender is not owner
✓ Should successfully pause the contract
✓ Should fail to unpause if msg.sender is not owner
✓ Should successfully unpause the contract
Test cases for the ReclaimTokens contract
✓ Should successfully reclaim POLY tokens -- fail because token address will be 0x
✓ Should successfully reclaim POLY tokens -- not authorised
✓ Should successfully reclaim POLY tokens (87ms)
Test case for the PolymathRegistry
✓ Should successfully get the address -- fail because key is not exist
✓ Should successfully get the address
Test cases for the transferOwnership
✓ Should fail to transfer the ownership -- not authorised
✓ Should fail to transfer the ownership -- 0x address is not allowed
✓ Should successfully transfer the ownership of the STR (54ms)
✓ New owner has authorisation
Contract: PercentageTransferManager
STL - 0x5D3BeF47d7Be68C97b69Fa9B1DB1Ed3a5ADad5d2
--------------------- Polymath Network Smart Contracts: ---------------------
PolymathRegistry: 0xaC772223D1fb1e8881E29A4F55D815c8c4bBc43a
SecurityTokenRegistryProxy: 0xeD0e0bDbdB1A09f77B53F0c8345EAfA77951108f
SecurityTokenRegistry: 0x6347CecB93D8f1E6cFa30d62AAB5509DC276f53d
ModuleRegistry: 0x7EF88a3901494435700cCC4C7615903b43ec2Dbc
ModuleRegistryProxy: 0x24D718f7d8af7D7a4AbaA2B1Cb7AbbB36a23a00d
FeatureRegistry: 0x5cDc96cE31bdF08EF39D5f65A9Fd5E236CE2245F
STFactory: 0xa13BeaC90A97420310c3430c2A921786eA12D214
GeneralTransferManagerFactory: 0xf1a762a9a2e7f1Cb3D9e20c505d17Ef892E305e7
GeneralPermissionManagerFactory: 0x146EEb2719451a7bcd57E755987224eFe6c9f7f6
PercentageTransferManagerFactory: 0xEb5785C94A8b2B6302764a4d6DB8463337FD7bc6
-----------------------------------------------------------------------------
Generate the SecurityToken
✓ Should register the ticker before the generation of the security token (78ms)
✓ Should generate the new security token with the same symbol as registered above (346ms)
✓ Should initialize the auto attached modules
✓ Should successfully attach the General permission manager factory with the security token (164ms)
Buy tokens using on-chain whitelist
✓ Should Buy the tokens (152ms)
✓ Should Buy some more tokens (140ms)
✓ Should successfully attach the PercentageTransferManager factory with the security token - failed payment (209ms)
✓ Should successfully attach the PercentageTransferManager factory with the security token (203ms)
✓ Should successfully attach the PercentageTransferManager with the security token (161ms)
✓ Add a new token holder (153ms)
✓ Should pause the tranfers at transferManager level
✓ Should still be able to transfer between existing token holders up to limit (68ms)
✓ Should unpause the tranfers at transferManager level
✓ Should not be able to transfer between existing token holders over limit (101ms)
✓ Should not be able to issue token amount over limit (96ms)
✓ Allow unlimited primary issuance and remint (115ms)
✓ Should not be able to transfer between existing token holders over limit (102ms)
✓ Should not be able to modify holder percentage to 100 - Unauthorized msg.sender (48ms)
✓ Should successfully add the delegate
✓ Should provide the permission
✓ Modify holder percentage to 100
✓ Should be able to transfer between existing token holders up to limit (85ms)
✓ Should whitelist in batch --failed because of mismatch in array lengths
✓ Should whitelist in batch (40ms)
✓ Should be able to whitelist address and then transfer regardless of holders (107ms)
✓ Should get the permission
Percentage Transfer Manager Factory test cases
✓ Should get the exact details of the factory (64ms)
✓ Should get the tags of the factory
Contract: PreSaleSTO
STL - 0x5D3BeF47d7Be68C97b69Fa9B1DB1Ed3a5ADad5d2
--------------------- Polymath Network Smart Contracts: ---------------------
PolymathRegistry: 0xaC772223D1fb1e8881E29A4F55D815c8c4bBc43a
SecurityTokenRegistryProxy: 0xeD0e0bDbdB1A09f77B53F0c8345EAfA77951108f
SecurityTokenRegistry: 0x6347CecB93D8f1E6cFa30d62AAB5509DC276f53d
ModuleRegistry: 0x7EF88a3901494435700cCC4C7615903b43ec2Dbc
ModuleRegistryProxy: 0x24D718f7d8af7D7a4AbaA2B1Cb7AbbB36a23a00d
FeatureRegistry: 0x5cDc96cE31bdF08EF39D5f65A9Fd5E236CE2245F
STFactory: 0xa13BeaC90A97420310c3430c2A921786eA12D214
GeneralTransferManagerFactory: 0xf1a762a9a2e7f1Cb3D9e20c505d17Ef892E305e7
PreSaleSTOFactory: 0x146EEb2719451a7bcd57E755987224eFe6c9f7f6
-----------------------------------------------------------------------------
Generate the SecurityToken
✓ Should register the ticker before the generation of the security token (80ms)
✓ Should generate the new security token with the same symbol as registered above (290ms)
✓ Should initialize the auto attached modules
✓ Should fail to launch the STO due to endTime is 0 (236ms)
✓ Should successfully attach the Paid STO factory (archived) with the security token (213ms)
✓ Should successfully attach the STO factory with the security token -- fail because signature is different (197ms)
✓ Should successfully attach the STO factory (archived) with the security token (186ms)
✓ Should successfully attach the STO factory with the security token (197ms)
verify the data of STO
✓ Should verify the configuration of the STO
✓ Should get the permissions
Buy tokens
BN {
negative: 0,
words: [ 1, <1 empty item> ],
length: 1,
red: null }
✓ Should Buy the tokens (367ms)
✓ Should allocate the tokens --failed because of amount is 0
✓ Should allocate the tokens -- failed due to msg.sender is not pre sale admin (46ms)
✓ Should allocate tokens to multiple investors (291ms)
✓ Should successfully mint multiple tokens -- failed because array mismatch
✓ Should successfully mint multiple tokens -- failed because array mismatch (40ms)
✓ Should successfully mint multiple tokens -- failed because array mismatch (39ms)
✓ Should successfully mint multiple tokens -- failed because array mismatch (38ms)
✓ Should buy some more tokens to previous investor (86ms)
✓ Should failed at the time of buying the tokens -- Because STO has ended (42ms)
Reclaim poly sent to STO by mistake
✓ Should fail to reclaim POLY because token contract address is 0 address (68ms)
✓ Should successfully reclaim POLY (125ms)
BN {
negative: 0,
words: [ 13369344, 49575989, 222710, <1 empty item> ],
length: 3,
red: null }
✓ Should get the the tokens sold
Test cases for the PresaleSTOFactory
✓ should get the exact details of the factory (80ms)
Contract: SecurityTokenRegistry
STL - 0x5D3BeF47d7Be68C97b69Fa9B1DB1Ed3a5ADad5d2
0x6347CecB93D8f1E6cFa30d62AAB5509DC276f53d
0x795d0789A203626d05FbA5419F298Ed6e641aF48
--------------------- Polymath Network Smart Contracts: ---------------------
PolymathRegistry: 0xaC772223D1fb1e8881E29A4F55D815c8c4bBc43a
SecurityTokenRegistryProxy: 0xEb5785C94A8b2B6302764a4d6DB8463337FD7bc6
SecurityTokenRegistry: 0x795d0789A203626d05FbA5419F298Ed6e641aF48
ModuleRegistry: 0x7EF88a3901494435700cCC4C7615903b43ec2Dbc
ModuleRegistryProxy: 0x24D718f7d8af7D7a4AbaA2B1Cb7AbbB36a23a00d
FeatureRegistry: 0x5cDc96cE31bdF08EF39D5f65A9Fd5E236CE2245F
STFactory: 0xa13BeaC90A97420310c3430c2A921786eA12D214
GeneralTransferManagerFactory: 0xf1a762a9a2e7f1Cb3D9e20c505d17Ef892E305e7
DummySTOFactory: 0x146EEb2719451a7bcd57E755987224eFe6c9f7f6
-----------------------------------------------------------------------------
Test the initialize the function
✓ Should successfully update the implementation address -- fail because polymathRegistry address is 0x (40ms)
✓ Should successfully update the implementation address -- fail because owner address is 0x (42ms)
✓ Should successfully update the implementation address -- fail because all params get 0 (39ms)
0xa13BeaC90A97420310c3430c2A921786eA12D214
3
0
0
[ BN {
negative: 0,
words: [ 3, <1 empty item> ],
length: 1,
red: null },
BN {
negative: 0,
words: [ 0, <1 empty item> ],
length: 1,
red: null },
BN {
negative: 0,
words: [ 0, <1 empty item> ],
length: 1,
red: null } ]
✓ Should successfully update the implementation address (158ms)
Test cases of the registerTicker
✓ verify the intial parameters (82ms)
✓ Can't call the initialize function again
✓ Should fail to register ticker if tickerRegFee not approved (47ms)
✓ Should fail to register ticker if owner is 0x (64ms)
✓ Should fail to register ticker due to the symbol length is 0
✓ Should fail to register ticker due to the symbol length is greater than 10
✓ Should register the ticker before the generation of the security token (101ms)
Current Rate: 250000000000000000
✓ Should change ticker price based on oracle (415ms)
✓ Should register the ticker when the tickerRegFee is 0 (94ms)
✓ Should fail to register same symbol again (110ms)
✓ Should successfully register pre registerd ticker if expiry is reached (130ms)
✓ Should fail to register ticker if registration is paused (76ms)
✓ Should fail to pause if already paused
✓ Should successfully register ticker if registration is unpaused (100ms)
✓ Should fail to unpause if already unpaused
Test cases for the expiry limit
✓ Should fail to set the expiry limit because msg.sender is not owner
✓ Should successfully set the expiry limit
✓ Should fail to set the expiry limit because new expiry limit is lesser than one day
Test cases for the getTickerDetails
✓ Should get the details of the symbol
✓ Should get the details of unregistered token
Generate SecurityToken
This is the data from the original securityTokenRegistry contract
✓ Should get the ticker details successfully and prove the data is not storing in to the logic contract
✓ Should fail to generate new security token if fee not provided (81ms)
✓ Should fail to generate token if registration is paused (68ms)
✓ Should fail to generate the securityToken -- Because ticker length is 0 (62ms)
✓ Should fail to generate the securityToken -- Because name length is 0
✓ Should fail to generate the securityToken -- Because version is not valid
✓ Should fail to generate the securityToken -- Because treasury wallet is 0x0
✓ Should fail to generate the securityToken -- Because msg.sender is not the rightful owner of the ticker (40ms)
0x0000000000000000000000000000000000000000
0
0
0
[ BN {
negative: 0,
words: [ 0, <1 empty item> ],
length: 1,
red: null },
BN {
negative: 0,
words: [ 0, <1 empty item> ],
length: 1,
red: null },
BN {
negative: 0,
words: [ 0, <1 empty item> ],
length: 1,
red: null } ]
✓ Should generate the new security token with the same symbol as registered above (322ms)
✓ Should fail to generate the SecurityToken when token is already deployed with the same symbol
✓ Should fail to generate the SecurityToken because ticker gets expired (135ms)
✓ Should generate the SecurityToken when launch fee is 0 (330ms)
✓ Should get all created security tokens (480ms)
Generate SecurityToken v2
STF deployed
✓ Should deploy the new ST factory version 2 (271ms)
✓ Should register the ticker before the generation of the security token (83ms)
✓ Should change the protocol version (124ms)
✓ Should fail to generate the securityToken because of invalid version (99ms)
Protocol version: 131584
[ BN {
negative: 0,
words: [ 2, <1 empty item> ],
length: 1,
red: null },
BN {
negative: 0,
words: [ 2, <1 empty item> ],
length: 1,
red: null },
BN {
negative: 0,
words: [ 0, <1 empty item> ],
length: 1,
red: null } ]
✓ Should generate the new security token with version 2 (264ms)
Deploy the new SecurityTokenRegistry
✓ Should deploy the new SecurityTokenRegistry contract logic
✓ Should fail to upgrade the logic contract of the STRProxy -- bad owner (48ms)
✓ Should upgrade the logic contract into the STRProxy (43ms)
✓ Should check the old data persist or not
✓ Should unpause the logic contract
Generate custom tokens
✓ Should fail if msg.sender is not polymath
✓ Should fail to genrate the custom security token -- ticker length is greater than 10 chars
✓ Should fail to generate the custom security token -- name should not be 0 length
✓ Should fail if ST address is 0 address
✓ Should fail if symbol length is 0
✓ Should fail to generate the custom ST -- deployedAt param is 0
[]
[ '0x4c4f470000000000000000000000000000000000000000000000000000000000' ]
[ '0x4c4f470000000000000000000000000000000000000000000000000000000000' ]
✓ Should successfully generate custom token (268ms)
✓ Should successfully generate the custom token (78ms)
✓ Should successfully modify the ticker (63ms)
Test case for modifyTicker
✓ Should add the custom ticker --failed because of bad owner
✓ Should add the custom ticker --fail ticker length should not be 0
✓ Should add the custom ticker --failed because time should not be 0
✓ Should add the custom ticker --failed because registeration date is greater than the expiryDate
✓ Should add the custom ticker --failed because owner should not be 0x
✓ Should add the new custom ticker (46ms)
✓ Should change the details of the existing ticker (97ms)
Test cases for the transferTickerOwnership()
✓ Should be able to transfer the ticker ownership -- failed because token is not deployed having the same ticker
✓ Should be able to transfer the ticker ownership -- failed because new owner is 0x
✓ Should be able to transfer the ticker ownership -- failed because ticker is of zero length
✓ Should be able to transfer the ticker ownership (78ms)
Test case for the changeSecurityLaunchFee()
✓ Should be able to change the STLaunchFee-- failed because of bad owner
✓ Should be able to change the STLaunchFee-- failed because of putting the same fee
✓ Should be able to change the STLaunchFee
Test cases for the changeExpiryLimit()
✓ Should be able to change the ExpiryLimit-- failed because of bad owner
✓ Should be able to change the ExpiryLimit-- failed because expirylimit is less than 1 day
✓ Should be able to change the ExpiryLimit
Test cases for the changeTickerRegistrationFee()
✓ Should be able to change the fee currency-- failed because of bad owner
✓ Should be able to change the fee currency-- failed because of putting the same currency
✓ Should be able to change the fee currency (107ms)
Test cases for the changeTickerRegistrationFee()
✓ Should be able to change the TickerRegFee-- failed because of bad owner
✓ Should be able to change the TickerRegFee-- failed because of putting the same fee
✓ Should be able to change the TickerRegFee
✓ Should fail to register the ticker with the old fee (66ms)
✓ Should register the ticker with the new fee (101ms)
✓ Should fail to launch the securityToken with the old launch fee (126ms)
✓ Should launch the the securityToken (252ms)
Test case for the update poly token
✓ Should change the polytoken address -- failed because of bad owner
✓ Should change the polytoken address -- failed because of 0x address
✓ Should successfully change the polytoken address (67ms)
Test case for refreshing a security token
✓ Should fail if msg.sender is not ST owner (44ms)
✓ Should fail if ticker is not deployed (41ms)
✓ Should fail if name is 0 length
✓ Should fail if null treasurey wallet
✓ Should fail if transfers not frozen (48ms)
✓ Should refresh security token (318ms)
Test cases for getters
✓ Should get the security token address
✓ Should get the security token data
[ '0x4445540000000000000000000000000000000000000000000000000000000000',
'0x4141410000000000000000000000000000000000000000000000000000000000',
'0x4554480000000000000000000000000000000000000000000000000000000000',
'0x504f4c5900000000000000000000000000000000000000000000000000000000' ]
[ '0x4c4f470000000000000000000000000000000000000000000000000000000000',
'0x4c4f473200000000000000000000000000000000000000000000000000000000',
'0x4445543200000000000000000000000000000000000000000000000000000000' ]
✓ Should get the tickers by owner (141ms)
Test case for the Removing the ticker
✓ Should remove the ticker from the polymath ecosystem -- bad owner
✓ Should remove the ticker from the polymath ecosystem -- fail because ticker doesn't exist in the ecosystem
✓ Should successfully remove the ticker from the polymath ecosystem (44ms)
Test cases of the registerTicker
[ 'LOG', 'LOG2', 'TOK1' ]
✓ Should register the ticker 1 (165ms)
[ 'LOG', 'LOG2', 'TOK1', 'TOK2' ]
✓ Should register the ticker 2 (181ms)
[ 'LOG', 'LOG2', 'TOK1', 'TOK2', 'TOK3' ]
✓ Should register the ticker 3 (199ms)
[ 'LOG', 'LOG2', 'TOK1', 'TOK3' ]
✓ Should successfully remove the ticker 2 (132ms)
[ 'LOG', 'LOG2', 'TOK3', 'TOK1' ]
✓ Should modify ticker 1 (147ms)
[ 'LOG', 'LOG2', 'TOK1', 'TOK3' ]
✓ Should modify ticker 3 (145ms)
Test cases for IRegistry functionality
Test cases for reclaiming funds
✓ Should successfully reclaim POLY tokens -- fail because token address will be 0x (38ms)
✓ Should successfully reclaim POLY tokens -- not authorised
✓ Should successfully reclaim POLY tokens (44ms)
Test cases for pausing the contract
✓ Should fail to pause if msg.sender is not owner
✓ Should successfully pause the contract
✓ Should fail to unpause if msg.sender is not owner
✓ Should successfully unpause the contract
Test cases for the setProtocolVersion
✓ Should successfully change the protocolVersion -- failed because of bad owner
✓ Should successfully change the protocolVersion -- failed because factory address is 0x
✓ Should successfully change the protocolVersion -- not a valid version
✓ Should successfully change the protocolVersion -- fail in second attempt because of invalid version (59ms)
Test cases for the transferOwnership
✓ Should fail to transfer the ownership -- not authorised
✓ Should fail to transfer the ownership -- 0x address is not allowed
✓ Should successfully transfer the ownership of the STR
Contract: SecurityToken
STL - 0x5D3BeF47d7Be68C97b69Fa9B1DB1Ed3a5ADad5d2
--------------------- Polymath Network Smart Contracts: ---------------------
PolymathRegistry: 0xaC772223D1fb1e8881E29A4F55D815c8c4bBc43a
SecurityTokenRegistryProxy: 0xeD0e0bDbdB1A09f77B53F0c8345EAfA77951108f
SecurityTokenRegistry: 0x6347CecB93D8f1E6cFa30d62AAB5509DC276f53d
ModuleRegistryProxy: 0x24D718f7d8af7D7a4AbaA2B1Cb7AbbB36a23a00d
ModuleRegistry: 0x7EF88a3901494435700cCC4C7615903b43ec2Dbc
FeatureRegistry: 0x5cDc96cE31bdF08EF39D5f65A9Fd5E236CE2245F
STFactory: 0xa13BeaC90A97420310c3430c2A921786eA12D214
GeneralTransferManagerFactory: 0xf1a762a9a2e7f1Cb3D9e20c505d17Ef892E305e7
GeneralPermissionManagerFactory: 0x146EEb2719451a7bcd57E755987224eFe6c9f7f6
CappedSTOFactory: 0xEb5785C94A8b2B6302764a4d6DB8463337FD7bc6
-----------------------------------------------------------------------------
Generate the SecurityToken
✓ Should register the ticker before the generation of the security token (84ms)
LOGS: 0
{ logIndex: 8,
transactionIndex: 0,
transactionHash:
'0x3f012492229a817a2e231d74c437ced7c2f341576e27b10fe465e17341738df1',
blockHash:
'0x1031b9d5a5ade3de84dffaaf4abaaf5f705a2cb6e9476725ab25f20cc0281ec5',
blockNumber: 117,
address: '0xBD031BCc6d4c151DC43F717e0Dd2aB9238eE0C42',
type: 'mined',
id: 'log_80aaa2ac',
event: 'OwnershipTransferred',
args:
Result {
'0': '0xa13BeaC90A97420310c3430c2A921786eA12D214',
'1': '0x6704Fbfcd5Ef766B287262fA2281C105d57246a6',
__length__: 2,
previousOwner: '0xa13BeaC90A97420310c3430c2A921786eA12D214',
newOwner: '0x6704Fbfcd5Ef766B287262fA2281C105d57246a6' } }
LOGS: 1
{ logIndex: 9,
transactionIndex: 0,
transactionHash:
'0x3f012492229a817a2e231d74c437ced7c2f341576e27b10fe465e17341738df1',
blockHash:
'0x1031b9d5a5ade3de84dffaaf4abaaf5f705a2cb6e9476725ab25f20cc0281ec5',
blockNumber: 117,
address: '0xeD0e0bDbdB1A09f77B53F0c8345EAfA77951108f',
type: 'mined',
id: 'log_ac232569',
event: 'NewSecurityTokenCreated',
args:
Result {
'0': 'DET',
'1': 'Demo Token',
'2': '0xBD031BCc6d4c151DC43F717e0Dd2aB9238eE0C42',
'3': '0x6704Fbfcd5Ef766B287262fA2281C105d57246a6',
'4': BN { negative: 0, words: [Array], length: 2, red: null },
'5': '0x6704Fbfcd5Ef766B287262fA2281C105d57246a6',
'6': false,
'7': BN { negative: 0, words: [Array], length: 3, red: null },
'8': BN { negative: 0, words: [Array], length: 3, red: null },
'9': BN { negative: 0, words: [Array], length: 1, red: null },
__length__: 10,
_ticker: 'DET',
_name: 'Demo Token',
_securityTokenAddress: '0xBD031BCc6d4c151DC43F717e0Dd2aB9238eE0C42',
_owner: '0x6704Fbfcd5Ef766B287262fA2281C105d57246a6',
_addedAt: BN { negative: 0, words: [Array], length: 2, red: null },
_registrant: '0x6704Fbfcd5Ef766B287262fA2281C105d57246a6',
_fromAdmin: false,
_usdFee: BN { negative: 0, words: [Array], length: 3, red: null },
_polyFee: BN { negative: 0, words: [Array], length: 3, red: null },
_protocolVersion: BN { negative: 0, words: [Array], length: 1, red: null } } }
✓ Should generate the new security token with the same symbol as registered above (313ms)
✓ Should not allow unauthorized address to change name
✓ Should allow authorized address to change name (38ms)
✓ Should initialize the auto attached modules
✓ Should failed to change the treasury wallet address -- because of wrong owner
✓ Should successfully change the treasury wallet address
✓ Should mint the tokens before attaching the STO -- fail only be called by the owner (90ms)
✓ Should issue the tokens before attaching the STO (67ms)
✓ Should issue the multi tokens before attaching the STO -- fail only be called by the owner (92ms)
Total balance: 100
Locked balance: 0
Unlocked balance: 100
Wrong partition: 0
✓ Should check the balance of the locked tokens (169ms)
✓ Should fail due to array length mismatch
Cost for issuing to 40 addresses without checkpoint: 5187193
Cost for issuing to 40 addresses with checkpoint: 7087762
✓ Should mint to lots of addresses and check gas (3468ms)
✓ Should issue the tokens for multiple afiliated investors before attaching the STO (106ms)
✓ Should ST be issuable
✓ Should finish the minting -- fail because owner didn't sign correct acknowledegement
✓ Should finish the minting -- fail because msg.sender is not the owner
✓ Should finish minting & restrict the further minting (81ms)
✓ Should fail to attach the STO factory because not enough poly in contract (192ms)
✓ Should fail to attach the STO factory because max cost too small (163ms)
0
module label is .. stofactory
✓ Should successfully add module with label (239ms)
✓ Should successfully attach the STO factory with the security token (218ms)
✓ Should successfully issue tokens while STO attached (67ms)
✓ Should fail to issue tokens while STO attached after freezeMinting called (65ms)
Module related functions
✓ Should get the modules of the securityToken by name
✓ Should get the modules of the securityToken by index (not added into the security token yet)
✓ Should get the modules of the securityToken by name
✓ Should get the modules of the securityToken by name (not added into the security token yet)
✓ Should get the modules of the securityToken by name (not added into the security token yet)
✓ Should fail in updating the token details
✓ Should update the token details
✓ Should successfully remove the general transfer manager module from the securityToken -- fails msg.sender should be Owner
✓ Should fail to remove the module - module not archived
✓ Should fail to remove the module - incorrect address
✓ Should successfully remove the general transfer manager module from the securityToken (194ms)
✓ Should successfully remove the module from the middle of the names mapping (1026ms)
✓ Should successfully archive the module first and fail during achiving the module again (60ms)
✓ Should verify the revertion of snapshot works properly
✓ Should successfully archive the general transfer manager module from the securityToken (40ms)
✓ Should successfully issue tokens while GTM archived (66ms)
✓ Should successfully unarchive the general transfer manager module from the securityToken (67ms)
✓ Should successfully unarchive the general transfer manager module from the securityToken -- fail because module is already unarchived
✓ Should successfully archive the module -- fail because module is not existed
✓ Should fail to issue tokens while GTM unarchived (97ms)
✓ Should change the budget of the module - fail incorrect address
✓ Should change the budget of the module (38ms)
✓ Should change the budget of the module (decrease it)
✓ Should fail to get the total supply -- because checkpoint id is greater than present
General Transfer manager Related test cases
BEFORE
AFTER
✓ Should Buy the tokens (190ms)
✓ Should Fail in transferring the token from one whitelist investor 1 to non whitelist investor 2 (227ms)
✓ Should fail to provide the permission to the delegate to change the transfer bools -- Bad owner (216ms)
✓ Should provide the permission to the delegate to change the transfer bools (57ms)
✓ Should activate allow All Transfer (74ms)
✓ Should fail to send tokens with the wrong granularity (61ms)
✓ Should not allow 0 granularity
✓ Should adjust granularity (125ms)
✓ Should not allow unauthorized address to change data store
✓ Should not allow 0x0 address as data store
✓ Should change data store (58ms)
✓ Should transfer from whitelist investor to non-whitelist investor in first tx and in 2nd tx non-whitelist to non-whitelist transfer (154ms)
✓ Should activate allow All Whitelist Transfers (59ms)
✓ Should upgrade token logic and getter (339ms)
✓ Should transfer from whitelist investor1 to whitelist investor 2 (132ms)
✓ Should transfer from whitelist investor1 to whitelist investor 2 -- value = 0 (47ms)
✓ Should transferFrom from one investor to other (140ms)
✓ Should Fail in trasferring from whitelist investor1 to non-whitelist investor (123ms)
✓ Should successfully issue tokens while STO attached (64ms)
✓ Should issue the tokens for multiple afiliated investors while STO attached (98ms)
✓ Should provide more permissions to the delegate (38ms)
✓ Should add the investor in the whitelist by the delegate (80ms)
✓ should account_temp successfully buy the token (111ms)
✓ STO should fail to issue tokens after minting is frozen (73ms)
✓ Should remove investor from the whitelist by the delegate (60ms)
✓ should account_temp fail in buying the token (61ms)
✓ Should freeze the transfers
✓ Should fail to freeze the transfers
✓ Should fail in buying to tokens (106ms)
✓ Should fail in trasfering the tokens from one user to another (44ms)
✓ Should unfreeze all the transfers (61ms)
✓ Should freeze the transfers
✓ Should able to transfers the tokens from one user to another (54ms)
Total Seen Investors: 4
✓ Should check that the list of investors is correct
✓ Should fail to set controller status because msg.sender not owner
✓ Should successfully set controller (82ms)
✓ Should ST be the controllable
✓ Should force burn the tokens - value too high (145ms)
0x9E1Ef1eC212F5DFfB41d35d9E5c14054F26c6560
500
0xce42bdB34189a93c55De250E011c68FaeE374Dd3
220
0xE2b3204F29Ab45d5fd074Ff02aDE098FbC381D42
1001
0xCc036143C68A7A9a41558Eae739B428eCDe5EF66
999
✓ Should force burn the tokens - wrong caller (110ms)
✓ Should burn the tokens (102ms)
Filtered investors:0x9E1Ef1eC212F5DFfB41d35d9E5c14054F26c6560,0xce42bdB34189a93c55De250E011c68FaeE374Dd3,0xE2b3204F29Ab45d5fd074Ff02aDE098FbC381D42
✓ Should use getInvestorsAt to determine balances now (62ms)
All investors:0x9E1Ef1eC212F5DFfB41d35d9E5c14054F26c6560,0xce42bdB34189a93c55De250E011c68FaeE374Dd3,0xE2b3204F29Ab45d5fd074Ff02aDE098FbC381D42,0xCc036143C68A7A9a41558Eae739B428eCDe5EF66
Filtered investors:0x9E1Ef1eC212F5DFfB41d35d9E5c14054F26c6560
✓ Should prune investor length test #2 (343ms)
All Investors: 0x9E1Ef1eC212F5DFfB41d35d9E5c14054F26c6560,0xce42bdB34189a93c55De250E011c68FaeE374Dd3,0xE2b3204F29Ab45d5fd074Ff02aDE098FbC381D42,0xCc036143C68A7A9a41558Eae739B428eCDe5EF66
Filtered Investors (0, 0): 0x9E1Ef1eC212F5DFfB41d35d9E5c14054F26c6560
Filtered Investors (2, 3): 0xE2b3204F29Ab45d5fd074Ff02aDE098FbC381D42,0xCc036143C68A7A9a41558Eae739B428eCDe5EF66
Filtered Investors (0, 3): 0x9E1Ef1eC212F5DFfB41d35d9E5c14054F26c6560,0xce42bdB34189a93c55De250E011c68FaeE374Dd3,0xE2b3204F29Ab45d5fd074Ff02aDE098FbC381D42,0xCc036143C68A7A9a41558Eae739B428eCDe5EF66
✓ Should get filtered investors (78ms)
✓ Should check the balance of investor at checkpoint
✓ Should check the balance of investor at checkpoint
Test cases for the Mock TrackedRedeemption
✓ Should add the tracked redeemption module successfully (369ms)
✓ Should successfully burn tokens (203ms)
Result {
'0':
'0x547261636b6564526564656d7074696f6e000000000000000000000000000000',
'1': '0xec7b1121cff1cb7fD3B7203f6BB28eC9e31457e6',
'2': '0xb52A9952aaea7189e0A4f2d872DF0993555aF57B',
'3': true,
'4': [ BN { negative: 0, words: [Array], length: 1, red: null } ],
'5':
'0x0000000000000000000000000000000000000000000000000000000000000000' }
✓ Should fail to burn the tokens because module get archived (75ms)
✓ Should successfully fail in calling the burn functions (472ms)
Withdraw Poly
✓ Should successfully withdraw the poly -- failed because of zero address of token
✓ Should successfully withdraw the poly
✓ Should successfully withdraw the poly (52ms)
✓ Should successfully withdraw the poly
Force Transfer
✓ Should fail to controllerTransfer because not approved controller
✓ Should fail to controllerTransfer because insufficient balance (86ms)
✓ Should fail to controllerTransfer because recipient is zero address (76ms)
✓ Should successfully controllerTransfer (126ms)
✓ Should fail to freeze controller functionality because proper acknowledgement not signed by owner
✓ Should fail to freeze controller functionality because not owner
✓ Should successfully freeze controller functionality (60ms)
✓ Should fail to freeze controller functionality because already frozen (45ms)
✓ Should fail to set controller because controller functionality frozen
✓ Should fail to controllerTransfer because controller functionality frozen
Test cases for the partition functions -- ERC1410
✓ Set the transfer requirements (44ms)
0xE2b3204F29Ab45d5fd074Ff02aDE098FbC381D42 total balance: 991
0xE2b3204F29Ab45d5fd074Ff02aDE098FbC381D42 Locked balance: 0
0xE2b3204F29Ab45d5fd074Ff02aDE098FbC381D42 Unlocked balance: 991
0x26064a2E2b568D9A6D01B93D039D1da9Cf2A58CD total balance: 10
0x26064a2E2b568D9A6D01B93D039D1da9Cf2A58CD Locked balance: 0
0x26064a2E2b568D9A6D01B93D039D1da9Cf2A58CD Unlocked balance: 10
0xe84Da28128a48Dd5585d1aBB1ba67276FdD70776 total balance: 0
0xe84Da28128a48Dd5585d1aBB1ba67276FdD70776 Locked balance: 0
0xe84Da28128a48Dd5585d1aBB1ba67276FdD70776 Unlocked balance: 0
0x9E1Ef1eC212F5DFfB41d35d9E5c14054F26c6560 total balance: 500
0x9E1Ef1eC212F5DFfB41d35d9E5c14054F26c6560 Locked balance: 0
0x9E1Ef1eC212F5DFfB41d35d9E5c14054F26c6560 Unlocked balance: 500
0xce42bdB34189a93c55De250E011c68FaeE374Dd3 total balance: 220
0xce42bdB34189a93c55De250E011c68FaeE374Dd3 Locked balance: 0
0xce42bdB34189a93c55De250E011c68FaeE374Dd3 Unlocked balance: 220
✓ Should Successfully transfer tokens by the partition (646ms)
✓ Should authorize the operator
✓ Should fail to call operatorTransferByPartition-- not a valid partition
✓ Should fail to call operatorTransferByPartition-- not a valid operator
✓ Should fail to call operatorTransferByPartition-- not a valid operatorData
✓ Should successfully execute operatorTransferByPartition (133ms)
✓ Should revoke operator
✓ Should fail to transfer by operator -- not a valid operator
✓ Should fail to execute authorizeOperatorByPartition successfully for invalid partition
✓ Should execute authorizeOperatorByPartition successfully
✓ Should successfully transfer the tokens by operator (130ms)
✓ Should successfully execute revokeOperatorByPartition successfully
✓ Should fail to issue to tokens according to partition -- invalid partition
✓ Should fail to issue to tokens according to partition -- invalid token owner
✓ Should successfullly issue the tokens according to partition (154ms)
✓ Should execute authorizeOperatorByPartition successfully (65ms)
✓ Should fail to redeem tokens as per partition -- incorrect msg.sender
✓ Should failed to redeem tokens by partition -- because not sufficient allowance (101ms)
✓ should failed to redeem tokens by partition -- because invalid partition (117ms)
✓ Should successfully redeem tokens by partition (88ms)
✓ Should failed to call operatorRedeemByPartition -- msg.sender is not authorised
✓ Should fail when partition is not valid (147ms)
✓ Should successfully redeem tokens by operator (93ms)
Test cases for the storage
Verifying the balances of the Addresses
Balances from the contract: 500
Balances from the storage: 500
Balances from the contract: 220
Balances from the storage: 220
Balances from the contract: 977
Balances from the storage: 977
Balances from the contract: 0
Balances from the storage: 0
TotalSupply from contract: 2551
TotalSupply from the storage: 2551
Name of the ST: Demo Token
Name of the ST from the storage: Demo Token�
Symbol of the ST: DET
Symbol of the ST from the storage: DET�
Address of the owner: 0x6704Fbfcd5Ef766B287262fA2281C105d57246a6
Address of the owner from the storage: 0x6704fbfcd5ef766b287262fa2281c105d57246a6
✓ Test the storage values of the ERC20 vairables (263ms)
Controller address from the contract: 0x0000000000000000000000000000000000000000
decimals from the contract: 18
controller address from the storage + uint8 decimals: 0x12
PolymathRegistry address from the contract: 0xaC772223D1fb1e8881E29A4F55D815c8c4bBc43a
PolymathRegistry address from the storage: 0xac772223d1fb1e8881e29a4f55d815c8c4bbc43a
ModuleRegistry address from the contract: 0x24D718f7d8af7D7a4AbaA2B1Cb7AbbB36a23a00d
ModuleRegistry address from the storage: 0x24d718f7d8af7d7a4abaa2b1cb7abbb36a23a00d
SecurityTokenRegistry address from the contract: 0xeD0e0bDbdB1A09f77B53F0c8345EAfA77951108f
SecurityTokenRegistry address from the storage: 0xed0e0bdbdb1a09f77b53f0c8345eafa77951108f
PolyToken address from the contract: 0x8215f88E6D8a1b8aF05b8aC5036Ca12e1aa8701b
PolyToken address from the storage: 0x8215f88e6d8a1b8af05b8ac5036ca12e1aa8701b
Delegate address from the contract: 0x8F873E9c628d763BD7D4Fddab8e071E31cF5Af0F
Delegate address from the storage: 0x8f873e9c628d763bd7d4fddab8e071e31cf5af0f
Datastore address from the contract: 0xf19BC6F2425ab439e80CCE51d95CAAc1B3E347d0
Datastore address from the storage: 0xf19bc6f2425ab439e80cce51d95caac1b3e347d0
Granularity value from the contract: 1000000000000000000
Granularity value from the storage: 1000000000000000000
Current checkpoint ID from the contract: 2
Current checkpoint ID from the storage: 2
TokenDetails from the contract: new token details
TokenDetails from the storage: new token details
✓ Verify the storage of the STStorage (277ms)
Test cases for the ERC1643 contract
Test cases for the setDocument() function of the ERC1643
✓ Should failed in executing the setDocument() function because msg.sender is not authorised
✓ Should failed to set a document details as name is empty
✓ Should failed to set a document details as URI is empty
✓ Should sucessfully add the document details in the `_documents` mapping and change the length of the `_docsNames`
(40ms)
✓ Should successfully add the new document and allow the empty docHash to be added in the `Document` structure
(40ms)
✓ Should successfully update the existing document and length of `_docsNames` should remain unaffected
Test cases for the getters functions
✓ Should get the details of existed document
✓ Should get the details of the non-existed document it means every value should be zero
✓ Should get all the documents present in the contract
Test cases for the removeDocument()
✓ Should failed to remove document because msg.sender is not authorised
✓ Should failed to remove the document that is not existed in the contract
✓ Should succssfully remove the document from the contract which is present in the last index of the `_docsName` and check the params of the `DocumentRemoved` event
(107ms)
✓ Should delete the doc to validate the #17 issue problem (39ms)
Test cases for the getters functions
✓ Should get the details of the non-existed (earlier was present but get removed ) document it means every value should be zero
✓ Should get all the documents present in the contract which should be 1
(42ms)
Contract: USDTieredSTO
STL - 0x5D3BeF47d7Be68C97b69Fa9B1DB1Ed3a5ADad5d2
--------------------- Polymath Network Smart Contracts: ---------------------
PolymathRegistry: 0xaC772223D1fb1e8881E29A4F55D815c8c4bBc43a
SecurityTokenRegistryProxy: 0xeD0e0bDbdB1A09f77B53F0c8345EAfA77951108f
SecurityTokenRegistry: 0x6347CecB93D8f1E6cFa30d62AAB5509DC276f53d
ModuleRegistry: 0x7EF88a3901494435700cCC4C7615903b43ec2Dbc
FeatureRegistry: 0x5cDc96cE31bdF08EF39D5f65A9Fd5E236CE2245F
STFactory: 0xa13BeaC90A97420310c3430c2A921786eA12D214
GeneralTransferManagerFactory: 0xf1a762a9a2e7f1Cb3D9e20c505d17Ef892E305e7
USDOracle: 0xD90d13ad9D5AB251D11dCC96Ac6fBd1302070eA5
POLYOracle: 0x4fE2f42c29EC6DbCfF88835Bb7F8268E5bDC8392
USDTieredSTOFactory: 0x1865bB3405Fb32FaC2d838eCeE497A8a86693775
-----------------------------------------------------------------------------
Generate the SecurityToken
✓ Should register the ticker before the generation of the security token (98ms)
✓ Should generate the new security token with the same symbol as registered above (294ms)
✓ Should initialize the auto attached modules
Test sto deployment
Gas addModule: 2287327
✓ Should successfully attach the first STO module to the security token (385ms)
✓ Should attach the paid STO factory -- failed because of no tokens (229ms)
✓ Should attach the paid STO factory (240ms)
✓ Should allow non-matching beneficiary
✓ Should allow non-matching beneficiary -- failed because it is already active
✓ Should successfully call the modifyTimes before starting the STO -- fail because of bad owner
✓ Should successfully call the modifyTimes before starting the STO (53ms)
Gas addModule: 2596854
✓ Should successfully attach the second STO module to the security token (613ms)
Gas addModule: 2302711
✓ Should successfully attach the third STO module to the security token (214ms)
Gas addModule: 2272263
✓ Should successfully attach the fourth STO module to the security token (205ms)
Gas addModule: 2302711
✓ Should successfully attach the fifth STO module to the security token (221ms)
Gas addModule: 2271815
✓ Should successfully attach the sixth STO module to the security token (226ms)
✓ Should fail because rates and tier array of different length (894ms)
✓ Should fail because rate of token should be greater than 0 (336ms)
✓ Should fail because Zero address is not permitted for wallet (263ms)
✓ Should fail because end time before start time (228ms)
✓ Should fail because start time is in the past (221ms)
Test modifying configuration
✓ Should successfully change config before startTime - funding (136ms)
HERE
✓ Should successfully change config before startTime - limits and tiers, times, addresses (249ms)
✓ Should fail to change config after endTime (223ms)
Test buying failure conditions
✓ should fail if before STO start time (676ms)
✓ should fail if not whitelisted (1277ms)
✓ should fail if minimumInvestmentUSD not met (746ms)
✓ should successfully pause the STO and make investments fail, then unpause and succeed (1329ms)
✓ should allow changing stable coin address in middle of STO (665ms)
✓ should fail if after STO end time (703ms)
✓ should fail if finalized (950ms)
Prep STO
✓ should jump forward to after STO start
✓ should whitelist ACCREDITED1 and NONACCREDITED1 (171ms)
Result {
'0':
[ '0xB9dcBf8A52Edc0C8DD9983fCc1d97b1F5d975Ed7',
'0xce42bdB34189a93c55De250E011c68FaeE374Dd3' ],
'1': [ false, true ],
'2':
[ BN { negative: 0, words: [Array], length: 1, red: null },
BN { negative: 0, words: [Array], length: 1, red: null } ],
investors:
[ '0xB9dcBf8A52Edc0C8DD9983fCc1d97b1F5d975Ed7',
'0xce42bdB34189a93c55De250E011c68FaeE374Dd3' ],
accredited: [ false, true ],
overrides:
[ BN { negative: 0, words: [Array], length: 1, red: null },
BN { negative: 0, words: [Array], length: 1, red: null } ] }
✓ should successfully modify accredited addresses for the STOs
Buy Tokens with no discount
Gas fallback purchase: 339099
✓ should successfully buy using fallback at tier 0 for NONACCREDITED1 (492ms)
Gas buyWithETH: 181986
✓ should successfully buy using buyWithETH at tier 0 for NONACCREDITED1 (389ms)
Gas buyWithPOLY: 227635
✓ should successfully buy using buyWithPOLY at tier 0 for NONACCREDITED1 (426ms)
Gas buyWithUSD: 233863
✓ should successfully buy using buyWithUSD at tier 0 for NONACCREDITED1 (466ms)
Gas fallback purchase: 232675
✓ should successfully buy using fallback at tier 0 for ACCREDITED1 (368ms)
Gas buyWithETH: 180562
✓ should successfully buy using buyWithETH at tier 0 for ACCREDITED1 (358ms)
Gas buyWithPOLY: 181211
✓ should successfully buy using buyWithPOLY at tier 0 for ACCREDITED1 (639ms)
Current investment: 20000000000000000000
Current limit: 5000000000000000000000
✓ should successfully modify NONACCREDITED cap for NONACCREDITED1 (73ms)
Expected refund in tokens: 200000000000000000000
Gas buyWithETH: 189274
Gas buyWithPOLY: 198287
✓ should successfully buy a partial amount and refund balance when reaching NONACCREDITED cap (805ms)
✓ should fail and revert when NONACCREDITED cap reached (257ms)
✓ should fail and revert despite oracle price change when NONACCREDITED cap reached (407ms)
Gas buyWithETH: 434998
✓ should successfully buy across tiers for NONACCREDITED ETH (436ms)
Gas buyWithPOLY: 356217
✓ should successfully buy across tiers for NONACCREDITED POLY (485ms)
Gas buyWithETH: 358574
✓ should successfully buy across tiers for ACCREDITED ETH (425ms)
Gas buyWithUSD: 345236
✓ should successfully buy across tiers for ACCREDITED DAI (492ms)
Gas buyWithPOLY: 324793
✓ should successfully buy across tiers for ACCREDITED POLY (524ms)
5000000000000000000:50000000000000000000
45000000000000000000
Gas buyWithETH: 205762
✓ should buy out the rest of the sto (233ms)
✓ should fail and revert when all tiers sold out (540ms)
✓ should fail and revert when all tiers sold out despite oracle price change (716ms)
Buy Tokens with POLY discount
Gas fallback purchase: 289837
✓ should successfully buy using fallback at tier 0 for NONACCREDITED1 (477ms)
Gas buyWithETH: 181986
✓ should successfully buy using buyWithETH at tier 0 for NONACCREDITED1 (365ms)
Gas buyWithPOLY: 247441
✓ should successfully buy using buyWithPOLY at tier 0 for NONACCREDITED1 (411ms)
Gas fallback purchase: 213413
✓ should successfully buy using fallback at tier 0 for ACCREDITED1 (360ms)
Gas buyWithETH: 180562
✓ should successfully buy using buyWithETH at tier 0 for ACCREDITED1 (416ms)
Gas buyWithPOLY: 201017
✓ should successfully buy using buyWithPOLY at tier 0 for ACCREDITED1 (606ms)
Gas buyWithPOLY: 202936
✓ should successfully buy a partial amount and refund balance when reaching NONACCREDITED cap (516ms)
Gas buyWithPOLY: 327273
✓ should successfully buy a granular amount and refund balance when buying indivisible token with POLY (554ms)
Gas buyWithPOLY: 424872
✓ should successfully buy a granular amount when buying indivisible token with illegal tier limits (630ms)
Gas buyWithETH: 232262
✓ should successfully buy a granular amount and refund balance when buying indivisible token with ETH (347ms)
✓ should fail and revert when NONACCREDITED cap reached (260ms)
✓ should fail when rate set my contract is too low (469ms)
✓ should fail and revert despite oracle price change when NONACCREDITED cap reached (460ms)
Gas buyWithPOLY: 186081
Gas buyWithPOLY: 339892
✓ should successfully buy across tiers for POLY (702ms)
Gas buyWithPOLY: 266835
✓ should successfully buy across the discount cap (448ms)
Gas buyWithPOLY: 181147
✓ should buy out the rest of the sto (261ms)
✓ should fail and revert when all tiers sold out (365ms)
✓ should fail and revert when all tiers sold out despite oracle price change (670ms)
Test getter functions
Generic
✓ should get the right number of investors (54ms)
✓ should get the right amounts invested (61ms)
✓ should return minted tokens in a tier
✓ should return correct tokens sold in token details
convertToUSD
✓ should reset exchange rates
✓ should get the right conversion for ETH to USD
✓ should get the right conversion for POLY to USD
convertFromUSD
✓ should get the right conversion for USD to ETH
✓ should get the right conversion for USD to POLY
Test cases for the USDTieredSTOFactory
✓ should get the exact details of the factory (91ms)
Contract: USDTieredSTO Sim
STL - 0x8574eCc76e61744EB1b7C15Ff88218348b56F923
--------------------- Polymath Network Smart Contracts: ---------------------
PolymathRegistry: 0x8215f88E6D8a1b8aF05b8aC5036Ca12e1aa8701b
SecurityTokenRegistryProxy: 0x3b49a36dB70229C30BA36162d4e8049264F37D98
SecurityTokenRegistry: 0xeD0e0bDbdB1A09f77B53F0c8345EAfA77951108f
ModuleRegistryProxy: 0xAd89528FFE22AA057CfbEC6c9CcF2367A638Eb79
ModuleRegistry: 0x24D718f7d8af7D7a4AbaA2B1Cb7AbbB36a23a00d
FeatureRegistry: 0x7EF88a3901494435700cCC4C7615903b43ec2Dbc
STFactory: 0x6347CecB93D8f1E6cFa30d62AAB5509DC276f53d
GeneralTransferManagerFactory: 0x8F873E9c628d763BD7D4Fddab8e071E31cF5Af0F
USDOracle: 0x1865bB3405Fb32FaC2d838eCeE497A8a86693775
POLYOracle: 0xc8a365621305768D430fa09006D60CB6493192a4
USDTieredSTOFactory: 0xa993Cc35b7b480d9C2945fF0504684f061A5cc97
-----------------------------------------------------------------------------
Deploy the STO
✓ Should register the ticker before the generation of the security token (94ms)
✓ Should generate the new security token with the same symbol as registered above (308ms)
✓ Should initialize the auto attached modules
Gas addModule: 2387544
✓ Should successfully attach the first STO module to the security token (429ms)
✓ Should successfully prepare the STO (536ms)
Simulate purchasing
------------------- Investor Addresses -------------------
ACCREDITED1: 0xce42bdB34189a93c55De250E011c68FaeE374Dd3
ACCREDITED2: 0x97A3FC5Ee46852C1Cf92A97B7BaD42F2622267cC
NONACCREDITED1: 0xB9dcBf8A52Edc0C8DD9983fCc1d97b1F5d975Ed7
NONACCREDITED2: 0x26064a2E2b568D9A6D01B93D039D1da9Cf2A58CD
NOTWHITELISTED: 0xe84Da28128a48Dd5585d1aBB1ba67276FdD70776
NOTAPPROVED: 0xCc036143C68A7A9a41558Eae739B428eCDe5EF66
----------------------------------------------------------
------------------- New Investment -------------------
Investor: 0xce42bdB34189a93c55De250E011c68FaeE374Dd3
N-A USD Remaining: 2000000000000000000000
Total Cap Remaining: 172728480850300000000,500000000000000000000,300000000000000000000
Discount Cap Remaining: 0,50000000000000000000,300000000000000000000
Total Tokens Sold: 0
Token Investment: 27271519149700000000
USD Investment: 13635759574850000000
POLY Investment: 0
DAI Investment: 13635759574850000000
ETH Investment: 0
------------------------------------------------------
buyWithUSD: 27 tokens for 13 DAI by 0xce42bdB34189a93c55De250E011c68FaeE374Dd3
Next round
Tokens Sold: 27
Next round
Tokens Sold: 27
------------------- New Investment -------------------
Investor: 0xB9dcBf8A52Edc0C8DD9983fCc1d97b1F5d975Ed7
N-A USD Remaining: 10000000000000000000
Total Cap Remaining: 155334332700600000000,500000000000000000000,300000000000000000000
Discount Cap Remaining: 0,50000000000000000000,300000000000000000000
Total Tokens Sold: 27271519149700000000
Token Investment: 17394148149700000000
USD Investment: 8697074074850000000
POLY Investment: 0
DAI Investment: 8697074074850000000
ETH Investment: 0
------------------------------------------------------
buyWithUSD: 17 tokens for 8 DAI by 0xB9dcBf8A52Edc0C8DD9983fCc1d97b1F5d975Ed7
Next round
Tokens Sold: 44
------------------- New Investment -------------------
Investor: 0x97A3FC5Ee46852C1Cf92A97B7BaD42F2622267cC
N-A USD Remaining: 2000000000000000000000
Total Cap Remaining: 148957842763300000000,500000000000000000000,300000000000000000000
Discount Cap Remaining: 0,50000000000000000000,300000000000000000000
Total Tokens Sold: 44665667299400000000
Token Investment: 6376489937300000000
USD Investment: 3188244968650000000
POLY Investment: 12752979874600000000
DAI Investment: 0
ETH Investment: 0
------------------------------------------------------
buyWithPOLY: 6 tokens for 12 POLY by 0x97A3FC5Ee46852C1Cf92A97B7BaD42F2622267cC
Next round
Tokens Sold: 51
------------------- New Investment -------------------
Investor: 0x26064a2E2b568D9A6D01B93D039D1da9Cf2A58CD
N-A USD Remaining: 10000000000000000000
Total Cap Remaining: 148072309402700000000,500000000000000000000,300000000000000000000
Discount Cap Remaining: 0,50000000000000000000,300000000000000000000
Total Tokens Sold: 51042157236700000000
Token Investment: 885533360600000000
USD Investment: 442766680300000000
POLY Investment: 0
DAI Investment: 442766680300000000
ETH Investment: 0
------------------------------------------------------
buyWithUSD: 0 tokens for 0 DAI by 0x26064a2E2b568D9A6D01B93D039D1da9Cf2A58CD
Next round
Tokens Sold: 51
------------------- New Investment -------------------
Investor: 0xB9dcBf8A52Edc0C8DD9983fCc1d97b1F5d975Ed7
N-A USD Remaining: 1302925925150000000
Total Cap Remaining: 145466457552400000000,500000000000000000000,300000000000000000000
Discount Cap Remaining: 0,50000000000000000000,300000000000000000000
Total Tokens Sold: 51927690597300000000
Token Investment: 2605851850300000000
USD Investment: 1302925925150000000
POLY Investment: 5211703700600000000
DAI Investment: 0
ETH Investment: 0
------------------------------------------------------
buyWithPOLY: 2 tokens for 5 POLY by 0xB9dcBf8A52Edc0C8DD9983fCc1d97b1F5d975Ed7
Next round
Tokens Sold: 54
------------------- New Investment -------------------
Investor: 0x97A3FC5Ee46852C1Cf92A97B7BaD42F2622267cC
N-A USD Remaining: 2000000000000000000000
Total Cap Remaining: 122926962399400000000,500000000000000000000,300000000000000000000
Discount Cap Remaining: 0,50000000000000000000,300000000000000000000
Total Tokens Sold: 54533542447600000000
Token Investment: 22539495153000000000
USD Investment: 11269747576500000000
POLY Investment: 0
DAI Investment: 11269747576500000000
ETH Investment: 0
------------------------------------------------------
buyWithUSD: 22 tokens for 11 DAI by 0x97A3FC5Ee46852C1Cf92A97B7BaD42F2622267cC
Next round
Tokens Sold: 77
Next round
Tokens Sold: 77
------------------- New Investment -------------------
Investor: 0x97A3FC5Ee46852C1Cf92A97B7BaD42F2622267cC
N-A USD Remaining: 2000000000000000000000
Total Cap Remaining: 98984131849300000000,500000000000000000000,300000000000000000000
Discount Cap Remaining: 0,50000000000000000000,300000000000000000000
Total Tokens Sold: 77073037600600000000
Token Investment: 23942830550100000000
USD Investment: 11971415275050000000
POLY Investment: 47885661100200000000
DAI Investment: 0
ETH Investment: 0
------------------------------------------------------
buyWithPOLY: 23 tokens for 47 POLY by 0x97A3FC5Ee46852C1Cf92A97B7BaD42F2622267cC
Next round
Tokens Sold: 101
Next round
Tokens Sold: 101
------------------- New Investment -------------------
Investor: 0xce42bdB34189a93c55De250E011c68FaeE374Dd3
N-A USD Remaining: 2000000000000000000000
Total Cap Remaining: 79161097319400000000,500000000000000000000,300000000000000000000
Discount Cap Remaining: 0,50000000000000000000,300000000000000000000
Total Tokens Sold: 101015868150700000000
Token Investment: 19823034529900000000
USD Investment: 9911517264950000000
POLY Investment: 39646069059800000000
DAI Investment: 0
ETH Investment: 0
------------------------------------------------------
buyWithPOLY: 19 tokens for 39 POLY by 0xce42bdB34189a93c55De250E011c68FaeE374Dd3
Next round
Tokens Sold: 120
Next round
Tokens Sold: 120
Next round
Tokens Sold: 120
Next round
Tokens Sold: 120
------------------- New Investment -------------------
Investor: 0xce42bdB34189a93c55De250E011c68FaeE374Dd3
N-A USD Remaining: 2000000000000000000000
Total Cap Remaining: 42028058204200000000,500000000000000000000,300000000000000000000
Discount Cap Remaining: 0,50000000000000000000,300000000000000000000
Total Tokens Sold: 120838902680600000000
Token Investment: 37133039115200000000
USD Investment: 18566519557600000000
POLY Investment: 74266078230400000000
DAI Investment: 0
ETH Investment: 0
------------------------------------------------------
buyWithPOLY: 37 tokens for 74 POLY by 0xce42bdB34189a93c55De250E011c68FaeE374Dd3
Next round
Tokens Sold: 157
------------------- New Investment -------------------
Investor: 0x26064a2E2b568D9A6D01B93D039D1da9Cf2A58CD
N-A USD Remaining: 9557233319700000000
Total Cap Remaining: 22913591564800000000,500000000000000000000,300000000000000000000
Discount Cap Remaining: 0,50000000000000000000,300000000000000000000
Total Tokens Sold: 157971941795800000000
Token Investment: 19114466639400000000
USD Investment: 9557233319700000000
POLY Investment: 38228933278800000000
DAI Investment: 0
ETH Investment: 0
------------------------------------------------------
buyWithPOLY: 19 tokens for 38 POLY by 0x26064a2E2b568D9A6D01B93D039D1da9Cf2A58CD
Next round
Tokens Sold: 177
Next round
Tokens Sold: 177
Next round
Tokens Sold: 177
------------------- New Investment -------------------
Investor: 0x97A3FC5Ee46852C1Cf92A97B7BaD42F2622267cC
N-A USD Remaining: 2000000000000000000000
Total Cap Remaining: 5767286850800000000,500000000000000000000,300000000000000000000
Discount Cap Remaining: 0,50000000000000000000,300000000000000000000
Total Tokens Sold: 177086408435200000000
Token Investment: 17146304714000000000
USD Investment: 8573152357000000000
POLY Investment: 34292609428000000000
DAI Investment: 0
ETH Investment: 0
------------------------------------------------------
buyWithPOLY: 17 tokens for 34 POLY by 0x97A3FC5Ee46852C1Cf92A97B7BaD42F2622267cC
Next round
Tokens Sold: 194
Next round
Tokens Sold: 194
------------------- New Investment -------------------
Investor: 0xce42bdB34189a93c55De250E011c68FaeE374Dd3
N-A USD Remaining: 2000000000000000000000
Total Cap Remaining: 0,497938385777100000000,300000000000000000000
Discount Cap Remaining: 0,50000000000000000000,300000000000000000000
Total Tokens Sold: 194232713149200000000
Token Investment: 7828901073700000000
USD Investment: 5563741915170000000
POLY Investment: 0
DAI Investment: 0
ETH Investment: 11127483830340000
------------------------------------------------------
buyWithETH: 7 tokens for 0 ETH by 0xce42bdB34189a93c55De250E011c68FaeE374Dd3
Next round
Tokens Sold: 202
------------------- New Investment -------------------
Investor: 0xce42bdB34189a93c55De250E011c68FaeE374Dd3
N-A USD Remaining: 2000000000000000000000
Total Cap Remaining: 0,477176436536900000000,300000000000000000000
Discount Cap Remaining: 0,29238050759800000000,300000000000000000000
Total Tokens Sold: 202061614222900000000
Token Investment: 20761949240200000000
USD Investment: 16609559392160000000
POLY Investment: 66438237568640000000
DAI Investment: 0
ETH Investment: 0
------------------------------------------------------
buyWithPOLY: 20 tokens for 66 POLY by 0xce42bdB34189a93c55De250E011c68FaeE374Dd3
Next round
Tokens Sold: 222
Next round
Tokens Sold: 222
Next round
Tokens Sold: 222
Next round
Tokens Sold: 222
Next round
Tokens Sold: 222
Next round
Tokens Sold: 222
------------------- New Investment -------------------
Investor: 0xce42bdB34189a93c55De250E011c68FaeE374Dd3
N-A USD Remaining: 2000000000000000000000
Total Cap Remaining: 0,463078790900700000000,300000000000000000000
Discount Cap Remaining: 0,15140405123600000000,300000000000000000000
Total Tokens Sold: 222823563463100000000
Token Investment: 14097645636200000000
USD Investment: 11278116508960000000
POLY Investment: 45112466035840000000
DAI Investment: 0
ETH Investment: 0
------------------------------------------------------
buyWithPOLY: 14 tokens for 45 POLY by 0xce42bdB34189a93c55De250E011c68FaeE374Dd3
Next round
Tokens Sold: 236
Next round
Tokens Sold: 236
------------------- New Investment -------------------
Investor: 0xce42bdB34189a93c55De250E011c68FaeE374Dd3
N-A USD Remaining: 2000000000000000000000
Total Cap Remaining: 0,452426390374800000000,300000000000000000000
Discount Cap Remaining: 0,15140405123600000000,300000000000000000000
Total Tokens Sold: 236921209099300000000
Token Investment: 10652400525900000000
USD Investment: 13848120683670000000
POLY Investment: 0
DAI Investment: 0
ETH Investment: 27696241367340000
------------------------------------------------------
buyWithETH: 10 tokens for 0 ETH by 0xce42bdB34189a93c55De250E011c68FaeE374Dd3
Next round
Tokens Sold: 247
Next round
Tokens Sold: 247
Next round
Tokens Sold: 247
------------------- New Investment -------------------
Investor: 0xce42bdB34189a93c55De250E011c68FaeE374Dd3
N-A USD Remaining: 2000000000000000000000
Total Cap Remaining: 0,411469040135400000000,300000000000000000000
Discount Cap Remaining: 0,0,300000000000000000000
Total Tokens Sold: 247573609625200000000
Token Investment: 40957350239400000000
USD Investment: 45674352749420000000
POLY Investment: 182697410997680000000
DAI Investment: 0
ETH Investment: 0
------------------------------------------------------
buyWithPOLY: 40 tokens for 182 POLY by 0xce42bdB34189a93c55De250E011c68FaeE374Dd3
Next round
Tokens Sold: 288
Next round
Tokens Sold: 288
------------------- New Investment -------------------
Investor: 0x97A3FC5Ee46852C1Cf92A97B7BaD42F2622267cC
N-A USD Remaining: 2000000000000000000000
Total Cap Remaining: 0,395993506159400000000,300000000000000000000
Discount Cap Remaining: 0,0,300000000000000000000
Total Tokens Sold: 288530959864600000000
Token Investment: 15475533976000000000
USD Investment: 20118194168800000000
POLY Investment: 0
DAI Investment: 20118194168800000000
ETH Investment: 0
------------------------------------------------------
buyWithUSD: 15 tokens for 20 DAI by 0x97A3FC5Ee46852C1Cf92A97B7BaD42F2622267cC
Next round
Tokens Sold: 304
Next round
Tokens Sold: 304
------------------- New Investment -------------------
Investor: 0xce42bdB34189a93c55De250E011c68FaeE374Dd3
N-A USD Remaining: 2000000000000000000000
Total Cap Remaining: 0,370775813224000000000,300000000000000000000
Discount Cap Remaining: 0,0,300000000000000000000
Total Tokens Sold: 304006493840600000000
Token Investment: 25217692935400000000
USD Investment: 32783000816020000000
POLY Investment: 0
DAI Investment: 32783000816020000000
ETH Investment: 0
------------------------------------------------------
buyWithUSD: 25 tokens for 32 DAI by 0xce42bdB34189a93c55De250E011c68FaeE374Dd3
Next round
Tokens Sold: 329
Next round
Tokens Sold: 329
Next round
Tokens Sold: 329
Next round
Tokens Sold: 329
Next round
Tokens Sold: 329
------------------- New Investment -------------------
Investor: 0xce42bdB34189a93c55De250E011c68FaeE374Dd3
N-A USD Remaining: 2000000000000000000000
Total Cap Remaining: 0,353987087190900000000,300000000000000000000
Discount Cap Remaining: 0,0,300000000000000000000
Total Tokens Sold: 329224186776000000000
Token Investment: 16788726033100000000
USD Investment: 21825343843030000000
POLY Investment: 0
DAI Investment: 21825343843030000000
ETH Investment: 0
------------------------------------------------------
buyWithUSD: 16 tokens for 21 DAI by 0xce42bdB34189a93c55De250E011c68FaeE374Dd3
Next round
Tokens Sold: 346
Next round
Tokens Sold: 346
Next round
Tokens Sold: 346
Next round
Tokens Sold: 346
Next round
Tokens Sold: 346
Next round
Tokens Sold: 346
------------------- New Investment -------------------
Investor: 0x97A3FC5Ee46852C1Cf92A97B7BaD42F2622267cC
N-A USD Remaining: 2000000000000000000000
Total Cap Remaining: 0,344418213659200000000,300000000000000000000
Discount Cap Remaining: 0,0,300000000000000000000
Total Tokens Sold: 346012912809100000000
Token Investment: 9568873531700000000
USD Investment: 12439535591210000000
POLY Investment: 49758142364840000000
DAI Investment: 0
ETH Investment: 0
------------------------------------------------------
buyWithPOLY: 9 tokens for 49 POLY by 0x97A3FC5Ee46852C1Cf92A97B7BaD42F2622267cC
Next round
Tokens Sold: 355
------------------- New Investment -------------------
Investor: 0xce42bdB34189a93c55De250E011c68FaeE374Dd3
N-A USD Remaining: 2000000000000000000000
Total Cap Remaining: 0,343251164332400000000,300000000000000000000
Discount Cap Remaining: 0,0,300000000000000000000
Total Tokens Sold: 355581786340800000000
Token Investment: 1167049326800000000
USD Investment: 1517164124840000000
POLY Investment: 6068656499360000000
DAI Investment: 0
ETH Investment: 0
------------------------------------------------------
buyWithPOLY: 1 tokens for 6 POLY by 0xce42bdB34189a93c55De250E011c68FaeE374Dd3
Next round
Tokens Sold: 356
Next round
Tokens Sold: 356
------------------- New Investment -------------------
Investor: 0x97A3FC5Ee46852C1Cf92A97B7BaD42F2622267cC
N-A USD Remaining: 2000000000000000000000
Total Cap Remaining: 0,294385253048000000000,300000000000000000000
Discount Cap Remaining: 0,0,300000000000000000000
Total Tokens Sold: 356748835667600000000
Token Investment: 48865911284400000000
USD Investment: 63525684669720000000
POLY Investment: 254102738678880000000
DAI Investment: 0
ETH Investment: 0
------------------------------------------------------
buyWithPOLY: 48 tokens for 254 POLY by 0x97A3FC5Ee46852C1Cf92A97B7BaD42F2622267cC
Next round
Tokens Sold: 405
Next round
Tokens Sold: 405
------------------- New Investment -------------------
Investor: 0x97A3FC5Ee46852C1Cf92A97B7BaD42F2622267cC
N-A USD Remaining: 2000000000000000000000
Total Cap Remaining: 0,282616495493600000000,300000000000000000000
Discount Cap Remaining: 0,0,300000000000000000000
Total Tokens Sold: 405614746952000000000
Token Investment: 11768757554400000000
USD Investment: 15299384820720000000
POLY Investment: 61197539282880000000
DAI Investment: 0
ETH Investment: 0
------------------------------------------------------
buyWithPOLY: 11 tokens for 61 POLY by 0x97A3FC5Ee46852C1Cf92A97B7BaD42F2622267cC
Next round
Tokens Sold: 417
Next round
Tokens Sold: 417
Next round
Tokens Sold: 417
Next round
Tokens Sold: 417
Next round
Tokens Sold: 417
Next round
Tokens Sold: 417
------------------- New Investment -------------------
Investor: 0x97A3FC5Ee46852C1Cf92A97B7BaD42F2622267cC
N-A USD Remaining: 2000000000000000000000
Total Cap Remaining: 0,261445790512300000000,300000000000000000000
Discount Cap Remaining: 0,0,300000000000000000000
Total Tokens Sold: 417383504506400000000
Token Investment: 21170704981300000000
USD Investment: 27521916475690000000
POLY Investment: 110087665902760000000
DAI Investment: 0
ETH Investment: 0
------------------------------------------------------
buyWithPOLY: 21 tokens for 110 POLY by 0x97A3FC5Ee46852C1Cf92A97B7BaD42F2622267cC
Next round
Tokens Sold: 438
Next round
Tokens Sold: 438
Next round
Tokens Sold: 438
Next round
Tokens Sold: 438
------------------- New Investment -------------------
Investor: 0xce42bdB34189a93c55De250E011c68FaeE374Dd3
N-A USD Remaining: 2000000000000000000000
Total Cap Remaining: 0,258872191016000000000,300000000000000000000
Discount Cap Remaining: 0,0,300000000000000000000
Total Tokens Sold: 438554209487700000000
Token Investment: 2573599496300000000
USD Investment: 3345679345190000000
POLY Investment: 13382717380760000000
DAI Investment: 0
ETH Investment: 0
------------------------------------------------------
buyWithPOLY: 2 tokens for 13 POLY by 0xce42bdB34189a93c55De250E011c68FaeE374Dd3
Next round
Tokens Sold: 441
Next round
Tokens Sold: 441
Next round
Tokens Sold: 441
------------------- New Investment -------------------
Investor: 0xce42bdB34189a93c55De250E011c68FaeE374Dd3
N-A USD Remaining: 2000000000000000000000
Total Cap Remaining: 0,242190288667700000000,300000000000000000000
Discount Cap Remaining: 0,0,300000000000000000000
Total Tokens Sold: 441127808984000000000
Token Investment: 16681902348300000000
USD Investment: 21686473052790000000
POLY Investment: 0
DAI Investment: 21686473052790000000
ETH Investment: 0
------------------------------------------------------
buyWithUSD: 16 tokens for 21 DAI by 0xce42bdB34189a93c55De250E011c68FaeE374Dd3
Next round
Tokens Sold: 457
Next round
Tokens Sold: 457
Next round
Tokens Sold: 457
Next round
Tokens Sold: 457
------------------- New Investment -------------------
Investor: 0x97A3FC5Ee46852C1Cf92A97B7BaD42F2622267cC
N-A USD Remaining: 2000000000000000000000
Total Cap Remaining: 0,222047871005900000000,300000000000000000000
Discount Cap Remaining: 0,0,300000000000000000000
Total Tokens Sold: 457809711332300000000
Token Investment: 20142417661800000000
USD Investment: 26185142960340000000
POLY Investment: 104740571841360000000
DAI Investment: 0
ETH Investment: 0
------------------------------------------------------
buyWithPOLY: 20 tokens for 104 POLY by 0x97A3FC5Ee46852C1Cf92A97B7BaD42F2622267cC
Next round
Tokens Sold: 477
------------------- New Investment -------------------
Investor: 0xce42bdB34189a93c55De250E011c68FaeE374Dd3
N-A USD Remaining: 2000000000000000000000
Total Cap Remaining: 0,198456694605500000000,300000000000000000000
Discount Cap Remaining: 0,0,300000000000000000000
Total Tokens Sold: 477952128994100000000
Token Investment: 23591176400400000000
USD Investment: 30668529320520000000
POLY Investment: 0
DAI Investment: 30668529320520000000
ETH Investment: 0
------------------------------------------------------
buyWithUSD: 23 tokens for 30 DAI by 0xce42bdB34189a93c55De250E011c68FaeE374Dd3
Next round
Tokens Sold: 501
Next round
Tokens Sold: 501
Next round
Tokens Sold: 501
------------------- New Investment -------------------
Investor: 0xce42bdB34189a93c55De250E011c68FaeE374Dd3
N-A USD Remaining: 2000000000000000000000
Total Cap Remaining: 0,157500559644500000000,300000000000000000000
Discount Cap Remaining: 0,0,300000000000000000000
Total Tokens Sold: 501543305394500000000
Token Investment: 40956134961000000000
USD Investment: 53242975449300000000
POLY Investment: 212971901797200000000
DAI Investment: 0
ETH Investment: 0
------------------------------------------------------
buyWithPOLY: 40 tokens for 212 POLY by 0xce42bdB34189a93c55De250E011c68FaeE374Dd3
Next round
Tokens Sold: 542
------------------- New Investment -------------------
Investor: 0xce42bdB34189a93c55De250E011c68FaeE374Dd3
N-A USD Remaining: 2000000000000000000000
Total Cap Remaining: 0,156467534867800000000,300000000000000000000
Discount Cap Remaining: 0,0,300000000000000000000
Total Tokens Sold: 542499440355500000000
Token Investment: 1033024776700000000
USD Investment: 1342932209710000000
POLY Investment: 5371728838840000000
DAI Investment: 0
ETH Investment: 0
------------------------------------------------------
buyWithPOLY: 1 tokens for 5 POLY by 0xce42bdB34189a93c55De250E011c68FaeE374Dd3
Next round
Tokens Sold: 543
Next round
Tokens Sold: 543
Next round
Tokens Sold: 543
Next round
Tokens Sold: 543
Next round
Tokens Sold: 543
------------------- New Investment -------------------
Investor: 0x97A3FC5Ee46852C1Cf92A97B7BaD42F2622267cC
N-A USD Remaining: 2000000000000000000000
Total Cap Remaining: 0,155559986821500000000,300000000000000000000
Discount Cap Remaining: 0,0,300000000000000000000
Total Tokens Sold: 543532465132200000000
Token Investment: 907548046300000000
USD Investment: 1179812460190000000
POLY Investment: 4719249840760000000
DAI Investment: 0
ETH Investment: 0
------------------------------------------------------
buyWithPOLY: 0 tokens for 4 POLY by 0x97A3FC5Ee46852C1Cf92A97B7BaD42F2622267cC
Next round
Tokens Sold: 544
Next round
Tokens Sold: 544
Next round
Tokens Sold: 544
Next round
Tokens Sold: 544
Next round
Tokens Sold: 544
Next round
Tokens Sold: 544
Next round
Tokens Sold: 544
------------------- New Investment -------------------
Investor: 0x97A3FC5Ee46852C1Cf92A97B7BaD42F2622267cC
N-A USD Remaining: 2000000000000000000000
Total Cap Remaining: 0,121337015634900000000,300000000000000000000
Discount Cap Remaining: 0,0,300000000000000000000
Total Tokens Sold: 544440013178500000000
Token Investment: 34222971186600000000
USD Investment: 44489862542580000000
POLY Investment: 0
DAI Investment: 0
ETH Investment: 88979725085160000
------------------------------------------------------
buyWithETH: 34 tokens for 0 ETH by 0x97A3FC5Ee46852C1Cf92A97B7BaD42F2622267cC
Next round
Tokens Sold: 578
------------------- New Investment -------------------
Investor: 0xce42bdB34189a93c55De250E011c68FaeE374Dd3
N-A USD Remaining: 2000000000000000000000
Total Cap Remaining: 0,77562341952300000000,300000000000000000000
Discount Cap Remaining: 0,0,300000000000000000000
Total Tokens Sold: 578662984365100000000
Token Investment: 43774673682600000000
USD Investment: 56907075787380000000
POLY Investment: 0
DAI Investment: 56907075787380000000
ETH Investment: 0
------------------------------------------------------
buyWithUSD: 43 tokens for 56 DAI by 0xce42bdB34189a93c55De250E011c68FaeE374Dd3
Next round
Tokens Sold: 622
------------------- New Investment -------------------
Investor: 0x97A3FC5Ee46852C1Cf92A97B7BaD42F2622267cC
N-A USD Remaining: 2000000000000000000000
Total Cap Remaining: 0,58042726829600000000,300000000000000000000
Discount Cap Remaining: 0,0,300000000000000000000
Total Tokens Sold: 622437658047700000000
Token Investment: 19519615122700000000
USD Investment: 25375499659510000000
POLY Investment: 101501998638040000000
DAI Investment: 0
ETH Investment: 0
------------------------------------------------------
buyWithPOLY: 19 tokens for 101 POLY by 0x97A3FC5Ee46852C1Cf92A97B7BaD42F2622267cC
Next round
Tokens Sold: 641
Next round
Tokens Sold: 641
------------------- New Investment -------------------
Investor: 0x97A3FC5Ee46852C1Cf92A97B7BaD42F2622267cC
N-A USD Remaining: 2000000000000000000000
Total Cap Remaining: 0,13855782155700000000,300000000000000000000
Discount Cap Remaining: 0,0,300000000000000000000
Total Tokens Sold: 641957273170400000000
Token Investment: 44186944673900000000
USD Investment: 57443028076070000000
POLY Investment: 229772112304280000000
DAI Investment: 0
ETH Investment: 0
------------------------------------------------------
buyWithPOLY: 44 tokens for 229 POLY by 0x97A3FC5Ee46852C1Cf92A97B7BaD42F2622267cC
Next round
Tokens Sold: 686
------------------- New Investment -------------------
Investor: 0xce42bdB34189a93c55De250E011c68FaeE374Dd3
N-A USD Remaining: 2000000000000000000000
Total Cap Remaining: 0,0,298252569198200000000
Discount Cap Remaining: 0,0,298252569198200000000
Total Tokens Sold: 686144217844300000000
Token Investment: 15603212957500000000
USD Investment: 20284176844750000000
POLY Investment: 81136707379000000000
DAI Investment: 0
ETH Investment: 0
------------------------------------------------------
buyWithPOLY: 15 tokens for 81 POLY by 0xce42bdB34189a93c55De250E011c68FaeE374Dd3
Next round
Tokens Sold: 701
Next round
Tokens Sold: 701
Next round
Tokens Sold: 701
------------------- New Investment -------------------
Investor: 0x97A3FC5Ee46852C1Cf92A97B7BaD42F2622267cC
N-A USD Remaining: 2000000000000000000000
Total Cap Remaining: 0,0,262476992885500000000
Discount Cap Remaining: 0,0,262476992885500000000
Total Tokens Sold: 701747430801800000000
Token Investment: 35775576312700000000
USD Investment: 46508249206510000000
POLY Investment: 186032996826040000000
DAI Investment: 0
ETH Investment: 0
------------------------------------------------------
buyWithPOLY: 35 tokens for 186 POLY by 0x97A3FC5Ee46852C1Cf92A97B7BaD42F2622267cC
Next round
Tokens Sold: 737
Next round
Tokens Sold: 737
Next round
Tokens Sold: 737
Next round
Tokens Sold: 737
Next round
Tokens Sold: 737
Next round
Tokens Sold: 737
Next round
Tokens Sold: 737
------------------- New Investment -------------------
Investor: 0xce42bdB34189a93c55De250E011c68FaeE374Dd3
N-A USD Remaining: 2000000000000000000000
Total Cap Remaining: 0,0,250827680793600000000
Discount Cap Remaining: 0,0,250827680793600000000
Total Tokens Sold: 737523007114500000000
Token Investment: 11649312091900000000
USD Investment: 15144105719470000000
POLY Investment: 60576422877880000000
DAI Investment: 0
ETH Investment: 0
------------------------------------------------------
buyWithPOLY: 11 tokens for 60 POLY by 0xce42bdB34189a93c55De250E011c68FaeE374Dd3
Next round
Tokens Sold: 749
Next round
Tokens Sold: 749
Next round
Tokens Sold: 749
Next round
Tokens Sold: 749
Next round
Tokens Sold: 749
Next round
Tokens Sold: 749
Next round
Tokens Sold: 749
Next round
Tokens Sold: 749
Next round
Tokens Sold: 749
Next round
Tokens Sold: 749
------------------- New Investment -------------------
Investor: 0xce42bdB34189a93c55De250E011c68FaeE374Dd3
N-A USD Remaining: 2000000000000000000000
Total Cap Remaining: 0,0,236947748566600000000
Discount Cap Remaining: 0,0,236947748566600000000
Total Tokens Sold: 749172319206400000000
Token Investment: 13879932227000000000
USD Investment: 18043911895100000000
POLY Investment: 72175647580400000000
DAI Investment: 0
ETH Investment: 0
------------------------------------------------------
buyWithPOLY: 13 tokens for 72 POLY by 0xce42bdB34189a93c55De250E011c68FaeE374Dd3
Next round
Tokens Sold: 763
Next round
Tokens Sold: 763
------------------- New Investment -------------------
Investor: 0x97A3FC5Ee46852C1Cf92A97B7BaD42F2622267cC
N-A USD Remaining: 2000000000000000000000
Total Cap Remaining: 0,0,231806384268600000000
Discount Cap Remaining: 0,0,231806384268600000000
Total Tokens Sold: 763052251433400000000
Token Investment: 5141364298000000000
USD Investment: 6683773587400000000
POLY Investment: 26735094349600000000
DAI Investment: 0
ETH Investment: 0
------------------------------------------------------
buyWithPOLY: 5 tokens for 26 POLY by 0x97A3FC5Ee46852C1Cf92A97B7BaD42F2622267cC
Next round
Tokens Sold: 768
------------------- New Investment -------------------
Investor: 0x97A3FC5Ee46852C1Cf92A97B7BaD42F2622267cC
N-A USD Remaining: 2000000000000000000000
Total Cap Remaining: 0,0,203460432441400000000
Discount Cap Remaining: 0,0,231806384268600000000
Total Tokens Sold: 768193615731400000000
Token Investment: 28345951827200000000
USD Investment: 48188118106240000000
POLY Investment: 0
DAI Investment: 48188118106240000000
ETH Investment: 0
------------------------------------------------------
buyWithUSD: 28 tokens for 48 DAI by 0x97A3FC5Ee46852C1Cf92A97B7BaD42F2622267cC
Next round
Tokens Sold: 796
Next round
Tokens Sold: 796
Next round
Tokens Sold: 796
Next round
Tokens Sold: 796
Next round
Tokens Sold: 796
Next round
Tokens Sold: 796
------------------- New Investment -------------------
Investor: 0x97A3FC5Ee46852C1Cf92A97B7BaD42F2622267cC
N-A USD Remaining: 2000000000000000000000
Total Cap Remaining: 0,0,161852196763300000000
Discount Cap Remaining: 0,0,190198148590500000000
Total Tokens Sold: 796539567558600000000
Token Investment: 41608235678100000000
USD Investment: 54090706381530000000
POLY Investment: 216362825526120000000
DAI Investment: 0
ETH Investment: 0
------------------------------------------------------
buyWithPOLY: 41 tokens for 216 POLY by 0x97A3FC5Ee46852C1Cf92A97B7BaD42F2622267cC
Next round
Tokens Sold: 838
Next round
Tokens Sold: 838
------------------- New Investment -------------------
Investor: 0x97A3FC5Ee46852C1Cf92A97B7BaD42F2622267cC
N-A USD Remaining: 2000000000000000000000
Total Cap Remaining: 0,0,120249408944400000000
Discount Cap Remaining: 0,0,148595360771600000000
Total Tokens Sold: 838147803236700000000
Token Investment: 41602787818900000000
USD Investment: 54083624164570000000
POLY Investment: 216334496658280000000
DAI Investment: 0
ETH Investment: 0
------------------------------------------------------
buyWithPOLY: 41 tokens for 216 POLY by 0x97A3FC5Ee46852C1Cf92A97B7BaD42F2622267cC
Next round
Tokens Sold: 879
Next round
Tokens Sold: 879
Next round
Tokens Sold: 879
------------------- New Investment -------------------
Investor: 0x97A3FC5Ee46852C1Cf92A97B7BaD42F2622267cC
N-A USD Remaining: 2000000000000000000000
Total Cap Remaining: 0,0,77634314925700000000
Discount Cap Remaining: 0,0,148595360771600000000
Total Tokens Sold: 879750591055600000000
Token Investment: 42615094018700000000
USD Investment: 72445659831790000000
POLY Investment: 0
DAI Investment: 72445659831790000000
ETH Investment: 0
------------------------------------------------------
buyWithUSD: 42 tokens for 72 DAI by 0x97A3FC5Ee46852C1Cf92A97B7BaD42F2622267cC
Next round
Tokens Sold: 922
Next round
Tokens Sold: 922
------------------- New Investment -------------------
Investor: 0xce42bdB34189a93c55De250E011c68FaeE374Dd3
N-A USD Remaining: 2000000000000000000000
Total Cap Remaining: 0,0,40538653809200000000
Discount Cap Remaining: 0,0,148595360771600000000
Total Tokens Sold: 922365685074300000000
Token Investment: 37095661116500000000
USD Investment: 63062623898050000000
POLY Investment: 0
DAI Investment: 0
ETH Investment: 126125247796100000
------------------------------------------------------
buyWithETH: 37 tokens for 0 ETH by 0xce42bdB34189a93c55De250E011c68FaeE374Dd3
Next round
Tokens Sold: 959
------------------- New Investment -------------------
Investor: 0x97A3FC5Ee46852C1Cf92A97B7BaD42F2622267cC
N-A USD Remaining: 2000000000000000000000
Total Cap Remaining: 0,0,40504250742600000000
Discount Cap Remaining: 0,0,148560957705000000000
Total Tokens Sold: 959461346190800000000
Token Investment: 34403066600000000
USD Investment: 44723986580000000
POLY Investment: 178895946320000000
DAI Investment: 0
ETH Investment: 0
------------------------------------------------------
buyWithPOLY: 0 tokens for 0 POLY by 0x97A3FC5Ee46852C1Cf92A97B7BaD42F2622267cC
Next round
Tokens Sold: 959
Next round
Tokens Sold: 959
------------------- New Investment -------------------
Investor: 0xce42bdB34189a93c55De250E011c68FaeE374Dd3
N-A USD Remaining: 2000000000000000000000
Total Cap Remaining: 0,0,31713004731500000000
Discount Cap Remaining: 0,0,139769711693900000000
Total Tokens Sold: 959495749257400000000
Token Investment: 8791246011100000000
USD Investment: 11428619814430000000
POLY Investment: 45714479257720000000
DAI Investment: 0
ETH Investment: 0
------------------------------------------------------
buyWithPOLY: 8 tokens for 45 POLY by 0xce42bdB34189a93c55De250E011c68FaeE374Dd3
Next round
Tokens Sold: 968
------------------- New Investment -------------------
Investor: 0xce42bdB34189a93c55De250E011c68FaeE374Dd3
N-A USD Remaining: 2000000000000000000000
Total Cap Remaining: 0,0,31109245439700000000
Discount Cap Remaining: 0,0,139165952402100000000
Total Tokens Sold: 968286995268500000000
Token Investment: 603759291800000000
USD Investment: 784887079340000000
POLY Investment: 3139548317360000000
DAI Investment: 0
ETH Investment: 0
------------------------------------------------------
buyWithPOLY: 0 tokens for 3 POLY by 0xce42bdB34189a93c55De250E011c68FaeE374Dd3
Next round
Tokens Sold: 968
------------------- New Investment -------------------
Investor: 0x97A3FC5Ee46852C1Cf92A97B7BaD42F2622267cC
N-A USD Remaining: 2000000000000000000000
Total Cap Remaining: 0,0,17616131996800000000
Discount Cap Remaining: 0,0,139165952402100000000
Total Tokens Sold: 968890754560300000000
Token Investment: 13493113442900000000
USD Investment: 22938292852930000000
POLY Investment: 0
DAI Investment: 22938292852930000000
ETH Investment: 0
------------------------------------------------------
buyWithUSD: 13 tokens for 22 DAI by 0x97A3FC5Ee46852C1Cf92A97B7BaD42F2622267cC
Next round
Tokens Sold: 982
Next round
Tokens Sold: 982
------------------- New Investment -------------------
Investor: 0x97A3FC5Ee46852C1Cf92A97B7BaD42F2622267cC
N-A USD Remaining: 2000000000000000000000
Total Cap Remaining: 0,0,7036985035200000000
Discount Cap Remaining: 0,0,139165952402100000000
Total Tokens Sold: 982383868003200000000
Token Investment: 10579146961600000000
USD Investment: 17984549834720000000
POLY Investment: 0
DAI Investment: 17984549834720000000
ETH Investment: 0
------------------------------------------------------
buyWithUSD: 10 tokens for 17 DAI by 0x97A3FC5Ee46852C1Cf92A97B7BaD42F2622267cC
Next round
Tokens Sold: 992
Next round
Tokens Sold: 992
Next round
Tokens Sold: 992
Next round
Tokens Sold: 992
------------------- New Investment -------------------
Investor: 0x97A3FC5Ee46852C1Cf92A97B7BaD42F2622267cC
N-A USD Remaining: 2000000000000000000000
Total Cap Remaining: 0,0,0
Discount Cap Remaining: 0,0,132128967366900000000
Total Tokens Sold: 992963014964800000000
Token Investment: 7036985035200000000
USD Investment: 9148080545760000000
POLY Investment: 36592322183040000000
DAI Investment: 0
ETH Investment: 0
------------------------------------------------------
buyWithPOLY: 7 tokens for 36 POLY by 0x97A3FC5Ee46852C1Cf92A97B7BaD42F2622267cC
Next round
Tokens Sold: 1000
1000000000000000000000 tokens sold, simulation completed successfully!
✓ Should successfully complete simulation (38550ms)
Contract: Concurrent STO
STL - 0x5D3BeF47d7Be68C97b69Fa9B1DB1Ed3a5ADad5d2
--------------------- Polymath Network Smart Contracts: ---------------------
PolymathRegistry: 0xaC772223D1fb1e8881E29A4F55D815c8c4bBc43a
SecurityTokenRegistryProxy: 0xeD0e0bDbdB1A09f77B53F0c8345EAfA77951108f
SecurityTokenRegistry: 0x6347CecB93D8f1E6cFa30d62AAB5509DC276f53d
ModuleRegistry: 0x7EF88a3901494435700cCC4C7615903b43ec2Dbc
ModuleRegistryProxy: 0x24D718f7d8af7D7a4AbaA2B1Cb7AbbB36a23a00d
FeatureRegistry: 0x5cDc96cE31bdF08EF39D5f65A9Fd5E236CE2245F
STFactory: 0xa13BeaC90A97420310c3430c2A921786eA12D214
GeneralTransferManagerFactory: 0xf1a762a9a2e7f1Cb3D9e20c505d17Ef892E305e7
CappedSTOFactory: 0x146EEb2719451a7bcd57E755987224eFe6c9f7f6
-----------------------------------------------------------------------------
Generate Security Token
✓ Should register the ticker before the generation of the security token (97ms)
✓ Should generate the new security token with the same symbol as registered above (304ms)
✓ Should initialize the auto attached modules
✓ Should whitelist account_investor1 (64ms)
Add STO and verify transfer
✓ Should attach STO modules up to the max number, then fail (2348ms)
✓ Should successfully invest in all modules attached (1061ms)
Contract: SecurityTokenRegistryProxy
STL - 0x5D3BeF47d7Be68C97b69Fa9B1DB1Ed3a5ADad5d2
--------------------- Polymath Network Smart Contracts: ---------------------
PolymathRegistry: 0xaC772223D1fb1e8881E29A4F55D815c8c4bBc43a
SecurityTokenRegistryProxy: 0xBC57310D2E0543AeFe7F990948232Ae97934bFE9
SecurityTokenRegistry: 0x6347CecB93D8f1E6cFa30d62AAB5509DC276f53d
STFactory: 0xa13BeaC90A97420310c3430c2A921786eA12D214
GeneralTransferManagerFactory: 0xf1a762a9a2e7f1Cb3D9e20c505d17Ef892E305e7
-----------------------------------------------------------------------------
Attach the implementation address
✓ Should attach the implementation and version (166ms)
✓ Verify the initialize data
Feed some data in storage
✓ Register the ticker (103ms)
✓ Should generate the new security token with the same symbol as registered above (363ms)
Upgrade the imlplementation address
✓ Should upgrade the version and implementation address -- fail bad owner (65ms)
✓ Should upgrade the version and implementation address -- Implementaion address should be a contract address
✓ Should upgrade the version and implementation address -- Implemenation address should not be 0x
✓ Should upgrade the version and implementation address -- Implemenation address should not be the same address
✓ Should upgrade the version and implementation address -- same version as previous is not allowed
✓ Should upgrade the version and implementation address -- empty version string is not allowed
✓ Should upgrade the version and the implementation address successfully (95ms)
Execute functionality of the implementation contract on the earlier storage
✓ Should get the previous data (45ms)
✓ Should alter the old storage
Transfer the ownership of the proxy contract
✓ Should change the ownership of the contract -- because of bad owner
✓ Should change the ownership of the contract -- new address should not be 0x
✓ Should change the ownership of the contract
✓ Should change the implementation contract and version by the new owner (107ms)
✓ Should get the version
✓ Should get the implementation address
Contract: ModuleRegistryProxy
STL - 0x5D3BeF47d7Be68C97b69Fa9B1DB1Ed3a5ADad5d2
--------------------- Polymath Network Smart Contracts: ---------------------
PolymathRegistry: 0xaC772223D1fb1e8881E29A4F55D815c8c4bBc43a
SecurityTokenRegistryProxy: 0xeD0e0bDbdB1A09f77B53F0c8345EAfA77951108f
SecurityTokenRegistry: 0x6347CecB93D8f1E6cFa30d62AAB5509DC276f53d
ModuleRegistry: 0x146EEb2719451a7bcd57E755987224eFe6c9f7f6
ModuleRegistryProxy: 0xBC57310D2E0543AeFe7F990948232Ae97934bFE9
STFactory: 0xa13BeaC90A97420310c3430c2A921786eA12D214
GeneralTransferManagerFactory: 0xf1a762a9a2e7f1Cb3D9e20c505d17Ef892E305e7
-----------------------------------------------------------------------------
Attach the implementation address
✓ Should attach the MR implementation and version (67ms)
✓ Deploy the essential smart contracts (317ms)
✓ Verify the initialize data
Feed some data in storage
✓ Register and verify the new module (133ms)
Upgrade the imlplementation address
✓ Should upgrade the version and implementation address -- fail bad owner (60ms)
✓ Should upgrade the version and implementation address -- Implementaion address should be a contract address
✓ Should upgrade the version and implementation address -- Implemenation address should not be 0x
✓ Should upgrade the version and implementation address -- Implemenation address should not be the same address
✓ Should upgrade the version and implementation address -- same version as previous is not allowed
✓ Should upgrade the version and implementation address -- empty version string is not allowed
✓ Should upgrade the version and the implementation address successfully (65ms)
Execute functionality of the implementation contract on the earlier storage
✓ Should get the previous data
✓ Should alter the old storage (46ms)
Transfer the ownership of the proxy contract
✓ Should change the ownership of the contract -- because of bad owner
✓ Should change the ownership of the contract -- new address should not be 0x
✓ Should change the ownership of the contract
✓ Should change the implementation contract and version by the new owner (87ms)
Contract: TrackedRedemption
STL - 0x5D3BeF47d7Be68C97b69Fa9B1DB1Ed3a5ADad5d2
--------------------- Polymath Network Smart Contracts: ---------------------
PolymathRegistry: 0xaC772223D1fb1e8881E29A4F55D815c8c4bBc43a
SecurityTokenRegistryProxy: 0xeD0e0bDbdB1A09f77B53F0c8345EAfA77951108f
SecurityTokenRegistry: 0x6347CecB93D8f1E6cFa30d62AAB5509DC276f53d
ModuleRegistry: 0x7EF88a3901494435700cCC4C7615903b43ec2Dbc
ModuleRegistryProxy: 0x24D718f7d8af7D7a4AbaA2B1Cb7AbbB36a23a00d
FeatureRegistry: 0x5cDc96cE31bdF08EF39D5f65A9Fd5E236CE2245F
STFactory: 0xa13BeaC90A97420310c3430c2A921786eA12D214
GeneralTransferManagerFactory: 0xf1a762a9a2e7f1Cb3D9e20c505d17Ef892E305e7
TrackedRedemptionFactory: 0xBC57310D2E0543AeFe7F990948232Ae97934bFE9
-----------------------------------------------------------------------------
Generate the SecurityToken
✓ Should register the ticker before the generation of the security token (83ms)
✓ Should generate the new security token with the same symbol as registered above (370ms)
✓ Should initialize the auto attached modules (40ms)
✓ Should successfully attach the paid TrackedRedemption with the security token (305ms)
✓ Should successfully attach the TrackedRedemption with the security token (171ms)
Make Redemptions
✓ Buy some tokens for account_investor1 (1 ETH) (139ms)
✓ Buy some tokens for account_investor2 (2 ETH) (131ms)
✓ Redeem some tokens - fail insufficient allowance (128ms)
[{"logIndex":3,"transactionIndex":0,"transactionHash":"0x9088884fa484593dd16be33cb7326e9d709d59683f25a33af9269da8898ed9b8","blockHash":"0x23328b74362d626289efacdd20166ecb5f03cc4691b58ec014f7ba95b319f000","blockNumber":125,"address":"0xB5E76490B21a80ddca96404c7A701050eB8b1204","type":"mined","id":"log_49bed151","event":"Redeemed","args":{"0":"0x26064a2E2b568D9A6D01B93D039D1da9Cf2A58CD","1":"de0b6b3a7640000","__length__":2,"_investor":"0x26064a2E2b568D9A6D01B93D039D1da9Cf2A58CD","_value":"de0b6b3a7640000"}}]
✓ Redeem some tokens (80ms)
✓ Get the init data
✓ Should get the listed permissions
Test cases for the TrackedRedemptionFactory
✓ should get the exact details of the factory (97ms)
Contract: LockUpTransferManager
STL - 0x5D3BeF47d7Be68C97b69Fa9B1DB1Ed3a5ADad5d2
--------------------- Polymath Network Smart Contracts: ---------------------
PolymathRegistry: 0xaC772223D1fb1e8881E29A4F55D815c8c4bBc43a
SecurityTokenRegistryProxy: 0xeD0e0bDbdB1A09f77B53F0c8345EAfA77951108f
SecurityTokenRegistry: 0x6347CecB93D8f1E6cFa30d62AAB5509DC276f53d
ModuleRegistry: 0x7EF88a3901494435700cCC4C7615903b43ec2Dbc
ModuleRegistryProxy: 0x24D718f7d8af7D7a4AbaA2B1Cb7AbbB36a23a00d
FeatureRegistry: 0x5cDc96cE31bdF08EF39D5f65A9Fd5E236CE2245F
STFactory: 0xa13BeaC90A97420310c3430c2A921786eA12D214
GeneralTransferManagerFactory: 0xf1a762a9a2e7f1Cb3D9e20c505d17Ef892E305e7
LockupVolumeRestrictionTransferManagerFactory:
0x146EEb2719451a7bcd57E755987224eFe6c9f7f6
-----------------------------------------------------------------------------
Generate the SecurityToken
✓ Should register the ticker before the generation of the security token (86ms)
✓ Should generate the new security token with the same symbol as registered above (313ms)
✓ Should initialize the auto attached modules
✓ Should register another ticker before the generation of new security token (83ms)
✓ Should generate the new security token with the same symbol as registered above (296ms)
✓ Should initialize the auto attached modules
Buy tokens using on-chain whitelist and test locking them up and attempting to transfer
0xe84Da28128a48Dd5585d1aBB1ba67276FdD70776
✓ Should Buy the tokens from non-divisible (136ms)
✓ Should Buy some more tokens from non-divisible tokens (123ms)
✓ Should unsuccessfully attach the LockUpTransferManager factory with the security token -- failed because Token is not paid (206ms)
500000000000000000000
✓ Should successfully attach the LockUpTransferManager factory with the security token (274ms)
✓ Should successfully attach the LockUpVolumeRestrictionTMFactory with the non-divisible security token (271ms)
✓ Should successfully attach the LockUpVolumeRestrictionTMFactory with the divisible security token (163ms)
✓ Add a new token holder (143ms)
✓ Should pause the tranfers at transferManager level
✓ Should still be able to transfer between existing token holders up to limit (67ms)
✓ Should unpause the tranfers at transferManager level (45ms)
✓ Should prevent the creation of a lockup with bad parameters where the lockupAmount is zero (41ms)
✓ Should prevent the creation of a lockup with bad parameters where the releaseFrequencySeconds is zero (40ms)
✓ Should prevent the creation of a lockup with bad parameters where the lockUpPeriodSeconds is zero (103ms)
✓ Should add the lockup type -- fail because of bad owner (43ms)
✓ Should add the new lockup type
✓ Should fail to add the creation of the lockup where lockupName is already exists
✓ Should allow the creation of a lockup where the lockup amount is divisible (42ms)
✓ Should allow the creation of a lockup where the lockup amount is prime no
balance 9
Amount get unlocked: 0
✓ Should prevent the transfer of tokens in a lockup (174ms)
Amount get unlocked: 3000000000000000000
✓ Should prevent the transfer of tokens if the amount is larger than the amount allowed by lockups (120ms)
Amount get unlocked: 3000000000000000000
✓ Should allow the transfer of tokens in a lockup if a period has passed (78ms)
Amount get unlocked: 3000000000000000000
✓ Should again transfer of tokens in a lockup if a period has passed (79ms)
Amount get unlocked: 6000000000000000000
✓ Should allow the transfer of more tokens in a lockup if another period has passed (85ms)
✓ Buy more tokens from secondary market to investor2 (65ms)
✓ Should allow transfer for the tokens that comes from secondary market + unlocked tokens (76ms)
0
✓ Should allow the transfer of all tokens in a lockup if the entire lockup has passed (111ms)
✓ Should fail to add the multiple lockups -- because array length mismatch (40ms)
✓ Should fail to add the multiple lockups -- because array length mismatch (45ms)
✓ Should fail to add the multiple lockups -- because array length mismatch (42ms)
✓ Should fail to add the multiple lockups -- because array length mismatch (40ms)
✓ Should fail to add the multiple lockups -- because array length mismatch (41ms)
Total Amount get unlocked: 00
✓ Should add the multiple lockup to a address (211ms)
Total balance: 10
Locked balance: 7
Unlocked balance: 10
✓ Should transfer the tokens after period get passed (164ms)
Total balance: 7
Locked balance: 7
Unlocked balance: 7
Wrong partition: 0
✓ Should check the balance of the locked tokens (215ms)
Total balance: 7
Locked balance of the investor by the lockup: 6
Paused status: false
Locked balance: 6
Unlocked Balance: 1
✓ Should transfer the tokens after passing another period of the lockup (284ms)
Total balance: 6
Locked balance: 3
Unlocked Amount for lockup 1: 4
Unlocked Amount for lockup 2: 2
Unlocked Balance: 6
After transaction
Total balance: 3
Locked balance: 3
Unlocked Amount for lockup 1: 4
Unlocked Amount for lockup 2: 2
Unlocked Balance: 3
✓ Should transfer the tokens from both the lockup simultaneously (335ms)
✓ Should remove multiple lockup --failed because of bad owner (43ms)
✓ Should remove the multiple lockup -- failed because of invalid lockupname (43ms)
✓ Should remove the multiple lockup (105ms)
✓ Should fail to modify the lockup -- because of bad owner (132ms)
✓ Modify the lockup when startTime is in past -- failed because startTime is in the past
✓ Modify the lockup when startTime is in past -- failed because of invalid index
✓ should successfully modify the lockup
balance 27
Result {
'0':
BN {
negative: 0,
words: [ 59506688, 13712553, 5995, <1 empty item> ],
length: 3,
red: null },
'1':
BN {
negative: 0,
words: [ 12029138, 23, <1 empty item> ],
length: 2,
red: null },
'2':
BN {
negative: 0,
words: [ 60, <1 empty item> ],
length: 1,
red: null },
'3':
BN {
negative: 0,
words: [ 20, <1 empty item> ],
length: 1,
red: null },
'4':
BN {
negative: 0,
words: [ 0, <1 empty item> ],
length: 1,
red: null },
lockupAmount:
BN {
negative: 0,
words: [ 59506688, 13712553, 5995, <1 empty item> ],
length: 3,
red: null },
startTime:
BN {
negative: 0,
words: [ 12029138, 23, <1 empty item> ],
length: 2,
red: null },
lockUpPeriodSeconds:
BN {
negative: 0,
words: [ 60, <1 empty item> ],
length: 1,
red: null },
releaseFrequencySeconds:
BN {
negative: 0,
words: [ 20, <1 empty item> ],
length: 1,
red: null },
unlockedAmount:
BN {
negative: 0,
words: [ 0, <1 empty item> ],
length: 1,
red: null } }
✓ Should prevent the transfer of tokens in an edited lockup (404ms)
9
✓ Modify the lockup during the lockup periods (62ms)
✓ Should remove the lockup multi (175ms)
Result {
'0':
[ '0x615f6c6f636b7570000000000000000000000000000000000000000000000000',
'0x625f6c6f636b7570000000000000000000000000000000000000000000000000',
'0x635f6c6f636b7570000000000000000000000000000000000000000000000000',
'0x645f6c6f636b7570000000000000000000000000000000000000000000000000',
'0x7a5f6c6f636b7570000000000000000000000000000000000000000000000000',
'0x665f6c6f636b7570000000000000000000000000000000000000000000000000',
'0x6c5f6c6f636b7570000000000000000000000000000000000000000000000000' ],
'1':
[ BN { negative: 0, words: [Array], length: 3, red: null },
BN { negative: 0, words: [Array], length: 3, red: null },
BN { negative: 0, words: [Array], length: 3, red: null },
BN { negative: 0, words: [Array], length: 3, red: null },
BN { negative: 0, words: [Array], length: 3, red: null },
BN { negative: 0, words: [Array], length: 3, red: null },
BN { negative: 0, words: [Array], length: 3, red: null } ],
'2':
[ BN { negative: 0, words: [Array], length: 2, red: null },
BN { negative: 0, words: [Array], length: 2, red: null },
BN { negative: 0, words: [Array], length: 2, red: null },
BN { negative: 0, words: [Array], length: 2, red: null },
BN { negative: 0, words: [Array], length: 2, red: null },
BN { negative: 0, words: [Array], length: 2, red: null },
BN { negative: 0, words: [Array], length: 2, red: null } ],
'3':
[ BN { negative: 0, words: [Array], length: 1, red: null },
BN { negative: 0, words: [Array], length: 1, red: null },
BN { negative: 0, words: [Array], length: 1, red: null },
BN { negative: 0, words: [Array], length: 1, red: null },
BN { negative: 0, words: [Array], length: 1, red: null },
BN { negative: 0, words: [Array], length: 1, red: null },
BN { negative: 0, words: [Array], length: 1, red: null } ],
'4':
[ BN { negative: 0, words: [Array], length: 1, red: null },
BN { negative: 0, words: [Array], length: 1, red: null },
BN { negative: 0, words: [Array], length: 1, red: null },
BN { negative: 0, words: [Array], length: 1, red: null },
BN { negative: 0, words: [Array], length: 1, red: null },
BN { negative: 0, words: [Array], length: 1, red: null },
BN { negative: 0, words: [Array], length: 1, red: null } ],
'5':
[ BN { negative: 0, words: [Array], length: 1, red: null },
BN { negative: 0, words: [Array], length: 3, red: null },
BN { negative: 0, words: [Array], length: 3, red: null },
BN { negative: 0, words: [Array], length: 3, red: null },
BN { negative: 0, words: [Array], length: 1, red: null },
BN { negative: 0, words: [Array], length: 1, red: null },
BN { negative: 0, words: [Array], length: 1, red: null } ],
lockupNames:
[ '0x615f6c6f636b7570000000000000000000000000000000000000000000000000',
'0x625f6c6f636b7570000000000000000000000000000000000000000000000000',
'0x635f6c6f636b7570000000000000000000000000000000000000000000000000',
'0x645f6c6f636b7570000000000000000000000000000000000000000000000000',
'0x7a5f6c6f636b7570000000000000000000000000000000000000000000000000',
'0x665f6c6f636b7570000000000000000000000000000000000000000000000000',
'0x6c5f6c6f636b7570000000000000000000000000000000000000000000000000' ],
lockupAmounts:
[ BN { negative: 0, words: [Array], length: 3, red: null },
BN { negative: 0, words: [Array], length: 3, red: null },
BN { negative: 0, words: [Array], length: 3, red: null },
BN { negative: 0, words: [Array], length: 3, red: null },
BN { negative: 0, words: [Array], length: 3, red: null },
BN { negative: 0, words: [Array], length: 3, red: null },
BN { negative: 0, words: [Array], length: 3, red: null } ],
startTimes:
[ BN { negative: 0, words: [Array], length: 2, red: null },
BN { negative: 0, words: [Array], length: 2, red: null },
BN { negative: 0, words: [Array], length: 2, red: null },
BN { negative: 0, words: [Array], length: 2, red: null },
BN { negative: 0, words: [Array], length: 2, red: null },
BN { negative: 0, words: [Array], length: 2, red: null },
BN { negative: 0, words: [Array], length: 2, red: null } ],
lockUpPeriodSeconds:
[ BN { negative: 0, words: [Array], length: 1, red: null },
BN { negative: 0, words: [Array], length: 1, red: null },
BN { negative: 0, words: [Array], length: 1, red: null },
BN { negative: 0, words: [Array], length: 1, red: null },
BN { negative: 0, words: [Array], length: 1, red: null },
BN { negative: 0, words: [Array], length: 1, red: null },
BN { negative: 0, words: [Array], length: 1, red: null } ],
releaseFrequencySeconds:
[ BN { negative: 0, words: [Array], length: 1, red: null },
BN { negative: 0, words: [Array], length: 1, red: null },
BN { negative: 0, words: [Array], length: 1, red: null },
BN { negative: 0, words: [Array], length: 1, red: null },
BN { negative: 0, words: [Array], length: 1, red: null },
BN { negative: 0, words: [Array], length: 1, red: null },
BN { negative: 0, words: [Array], length: 1, red: null } ],
unlockedAmounts:
[ BN { negative: 0, words: [Array], length: 1, red: null },
BN { negative: 0, words: [Array], length: 3, red: null },
BN { negative: 0, words: [Array], length: 3, red: null },
BN { negative: 0, words: [Array], length: 3, red: null },
BN { negative: 0, words: [Array], length: 1, red: null },
BN { negative: 0, words: [Array], length: 1, red: null },
BN { negative: 0, words: [Array], length: 1, red: null } ] }
✓ Should get the data of all lockups (88ms)
✓ Should succesfully get the non existed lockup value, it will give everything 0
✓ Should get configuration function signature
a_lockup
b_lockup
c_lockup
d_lockup
z_lockup
f_lockup
l_lockup
✓ Should get the all lockups added by the issuer till now
✓ Should get the permission
LockUpTransferManager Transfer Manager Factory test cases
✓ Should get the exact details of the factory (83ms)
✓ Should get the tags of the factory
Contract: ScheduledCheckpoint
STL - 0x5D3BeF47d7Be68C97b69Fa9B1DB1Ed3a5ADad5d2
--------------------- Polymath Network Smart Contracts: ---------------------
PolymathRegistry: 0xaC772223D1fb1e8881E29A4F55D815c8c4bBc43a
SecurityTokenRegistryProxy: 0xeD0e0bDbdB1A09f77B53F0c8345EAfA77951108f
SecurityTokenRegistry: 0x6347CecB93D8f1E6cFa30d62AAB5509DC276f53d
ModuleRegistry: 0x7EF88a3901494435700cCC4C7615903b43ec2Dbc
ModuleRegistryProxy: 0x24D718f7d8af7D7a4AbaA2B1Cb7AbbB36a23a00d
FeatureRegistry: 0x5cDc96cE31bdF08EF39D5f65A9Fd5E236CE2245F
STFactory: 0xa13BeaC90A97420310c3430c2A921786eA12D214
GeneralTransferManagerFactory: 0xf1a762a9a2e7f1Cb3D9e20c505d17Ef892E305e7
-----------------------------------------------------------------------------
Generate the SecurityToken
✓ Should register the ticker before the generation of the security token (82ms)
✓ Should generate the new security token with the same symbol as registered above (301ms)
✓ Should initialize the auto attached modules
Buy tokens using on-chain whitelist
✓ Should successfully attach the ScheduledCheckpoint with the security token (192ms)
Creating scheduled CP: 1553040102 86400
2: 1553040002
✓ Should create a daily checkpoint
✓ Remove (temp) daily checkpoint (38ms)
3: 1553040002
4: 1553040002
5: 1553045002
6: 1553045002
✓ Should Buy the tokens for account_investor1 (186ms)
✓ Should have checkpoint created with correct balances (49ms)
✓ Should Buy some more tokens for account_investor2 (146ms)
✓ No additional checkpoints created (48ms)
✓ Add a new token holder - account_investor3 (184ms)
✓ Should have new checkpoint created with correct balances (165ms)
✓ Should have correct balances for investor 3 after new checkpoint (310ms)
✓ Manually update checkpoints (323ms)
✓ Should get the permission
✓ Remove daily checkpoint (45ms)
Tests for monthly scheduled checkpoints
✓ Should create a monthly checkpoint (57ms)
✓ Check one monthly checkpoint (88ms)
✓ Check two monthly checkpoints (84ms)
✓ Check three monthly checkpoints (82ms)
✓ Check four monthly checkpoints (87ms)
✓ Check five monthly checkpoints (87ms)
✓ Remove monthly checkpoint (46ms)
Tests for yearly scheduled checkpoints
✓ Should create a yearly checkpoint
✓ Check one yearly checkpoint (77ms)
✓ Check two yearly checkpoints (78ms)
✓ Check three yearly checkpoints (81ms)
✓ Check four yearly checkpoints (81ms)
✓ Check five yearly checkpoints (81ms)
✓ Remove monthly checkpoint (46ms)
Tests for monthly scheduled checkpoints -- end of month
previousTime:2311205204
startTime:2335138004
startDate:Thu, 31 Dec 2043 01:26:44 GMT
✓ Should create a monthly checkpoint -- December 31
✓ Check monthly checkpoint -- January 31 (80ms)
✓ Check monthly checkpoints -- February 28/29 (77ms)
Thu, 31 Dec 2043 01:26:44 GMT
Sun, 31 Jan 2044 01:26:44 GMT
Mon, 29 Feb 2044 01:26:44 GMT
expected:Thu, 31 Mar 2044 01:26:44 GMT
actual:Thu, 31 Mar 2044 01:26:44 GMT
✓ Check monthly checkpoints -- March 31 (82ms)
✓ Remove monthly checkpoint (38ms)
Tests for daily scheduled checkpoints
✓ Should create a daily checkpoint
✓ Check one daily checkpoint (72ms)
✓ Check two daily checkpoints (72ms)
✓ Check three daily checkpoints (73ms)
✓ Check four daily checkpoints (78ms)
✓ Check five daily checkpoints (79ms)
✓ Remove daily checkpoint (44ms)
Tests for weekly scheduled checkpoints
✓ Should create a weekly checkpoint
✓ Check one weekly checkpoint (70ms)
✓ Check two weekly checkpoints (73ms)
✓ Check three weekly checkpoints (74ms)
✓ Check four weekly checkpoints (83ms)
✓ Check five weekly checkpoints (79ms)
✓ Remove weekly checkpoint (43ms)
Contract: VolumeRestrictionTransferManager
STL - 0x5D3BeF47d7Be68C97b69Fa9B1DB1Ed3a5ADad5d2
--------------------- Polymath Network Smart Contracts: ---------------------
PolymathRegistry: 0xaC772223D1fb1e8881E29A4F55D815c8c4bBc43a
SecurityTokenRegistryProxy: 0xeD0e0bDbdB1A09f77B53F0c8345EAfA77951108f
SecurityTokenRegistry: 0x6347CecB93D8f1E6cFa30d62AAB5509DC276f53d
ModuleRegistryProxy 0x24D718f7d8af7D7a4AbaA2B1Cb7AbbB36a23a00d
ModuleRegistry: 0x7EF88a3901494435700cCC4C7615903b43ec2Dbc
FeatureRegistry: 0x5cDc96cE31bdF08EF39D5f65A9Fd5E236CE2245F
STFactory: 0xa13BeaC90A97420310c3430c2A921786eA12D214
GeneralTransferManagerFactory: 0xf1a762a9a2e7f1Cb3D9e20c505d17Ef892E305e7
VolumeRestrictionTMFactory: 0x146EEb2719451a7bcd57E755987224eFe6c9f7f6
-----------------------------------------------------------------------------
Generate the SecurityToken
✓ Should register the ticker before the generation of the security token (78ms)
✓ Should generate the new security token with the same symbol as registered above (287ms)
✓ Should initialize the auto attached modules
Attach the VRTM
✓ Deploy the VRTM and attach with the ST (162ms)
✓ Transfer some tokens to different account (407ms)
Result {
'0': true,
'1': '0x51',
'2':
'0x0000000000000000000000000000000000000000000000000000000000000000' }
40
✓ Should transfer the tokens freely without any restriction (160ms)
Test for the addIndividualRestriction
✓ Should add the restriction -- failed because of bad owner (44ms)
✓ Should add the restriction -- failed because of bad parameters i.e invalid restriction type
✓ Should add the restriction -- failed because of bad parameters i.e Invalid value of allowed tokens (39ms)
✓ Should add the restriction -- failed because of bad parameters i.e Percentage of tokens not within (0,100] (59ms)
✓ Should add the restriction -- failed because of bad parameters i.e Percentage of tokens not within (0,100]
✓ Should add the restriction -- failed because of bad parameters i.e invalid dates (38ms)
✓ Should add the restriction -- failed because of bad parameters i.e invalid dates
✓ Should add the restriction -- failed because of bad parameters i.e invalid rolling period (45ms)
✓ Should add the restriction -- failed because of bad parameters i.e invalid rolling period (40ms)
✓ Should add the restriction -- failed because of bad parameters i.e invalid rolling period
Token holder: 0xCc036143C68A7A9a41558Eae739B428eCDe5EF66
Start Time: 1555527602
Rolling Period In Days: 3
End Time : 1555959600
Allowed Tokens: 12
Type of Restriction: 0
✓ Should add the restriction succesfully (115ms)
✓ Should add the restriction for multiple investor -- failed because of bad owner (54ms)
✓ Should add the restriction for multiple investor -- failed because of bad parameters i.e length mismatch
✓ Should add the restriction for multiple investor -- failed because of bad parameters i.e length mismatch
✓ Should add the restriction for multiple investor -- failed because of bad parameters i.e length mismatch
✓ Should add the restriction for multiple investor -- failed because of bad parameters i.e length mismatch
✓ Should add the restriction for multiple investor -- failed because of bad parameters i.e length mismatch
✓ Should add the restriction for multiple investor -- failed because of bad parameters i.e length mismatch
Token holder: 0xCc036143C68A7A9a41558Eae739B428eCDe5EF66
Start Time: 1555527602
Rolling Period In Days: 3
End Time : 1555959600
Allowed Tokens: 12
Type of Restriction: 0
Token holder: 0xE2b3204F29Ab45d5fd074Ff02aDE098FbC381D42
Start Time: 1555527601
Rolling Period In Days: 3
End Time : 1555959600
Allowed Tokens: 12
Type of Restriction: 0
Token holder: 0xB9dcBf8A52Edc0C8DD9983fCc1d97b1F5d975Ed7
Start Time: 1555527601
Rolling Period In Days: 4
End Time : 1556046000
Allowed Tokens: 10
Type of Restriction: 0
Token holder: 0xce42bdB34189a93c55De250E011c68FaeE374Dd3
Start Time: 1555527601
Rolling Period In Days: 5
End Time : 1556132400
Allowed Tokens: 15
Type of Restriction: 0
✓ Should add the restriction for multiple investor successfully (322ms)
✓ Should remove the restriction multi -- failed because of address is 0
Token holder: 0xCc036143C68A7A9a41558Eae739B428eCDe5EF66
Start Time: 1555527602
Rolling Period In Days: 3
End Time : 1555959600
Allowed Tokens: 12
Type of Restriction: 0
Token holder: 0xB9dcBf8A52Edc0C8DD9983fCc1d97b1F5d975Ed7
Start Time: 1555527601
Rolling Period In Days: 4
End Time : 1556046000
Allowed Tokens: 10
Type of Restriction: 0
Token holder: 0xce42bdB34189a93c55De250E011c68FaeE374Dd3
Start Time: 1555527601
Rolling Period In Days: 5
End Time : 1556132400
Allowed Tokens: 15
Type of Restriction: 0
✓ Should successfully remove the restriction (136ms)
✓ Should remove the restriction -- failed because restriction not present anymore
Token holder: 0xCc036143C68A7A9a41558Eae739B428eCDe5EF66
Start Time: 1555527602
Rolling Period In Days: 3
End Time : 1555959600
Allowed Tokens: 12
Type of Restriction: 0
✓ Should remove the restriction multi (137ms)
Estimated gas for addIndividualRestriction:
262285
Token holder: 0xCc036143C68A7A9a41558Eae739B428eCDe5EF66
Start Time: 1555968243
Rolling Period In Days: 3
End Time : 1556486641
Allowed Tokens: 12
Type of Restriction: 0
✓ Should add the restriction succesfully after the expiry of previous one for investor 1 (233ms)
✓ Should not successfully transact the tokens -- failed because volume is above the limit (125ms)
Gas estimation (Individual): 176787
Latest timestamp: 1555968243
SumOfLastPeriod: 0.3
Days Covered: 0
Latest timestamp daily: 0
Individual Total Trade on latestTimestamp : 0.3
Individual Total Trade on daily latestTimestamp : 0
Last Transaction time in UTC: Mon, 22 Apr 2019 21:24:11 GMT
✓ Should succesfully transact the tokens by investor 1 just after the startTime (400ms)
✓ Should fail to add the individual daily restriction -- Bad msg.sender (42ms)
✓ Should fail to add the individual daily restriction -- Bad params value
✓ Should fail to add the individual daily restriction -- Bad params value
✓ Should fail to add the individual daily restriction -- Bad params value
Token holder: 0xCc036143C68A7A9a41558Eae739B428eCDe5EF66
Start Time: 1555968243
Rolling Period In Days: 3
End Time : 1556486641
Allowed Tokens: 12
Type of Restriction: 0
Token holder: 0x97A3FC5Ee46852C1Cf92A97B7BaD42F2622267cC
Start Time: 1555968262
Rolling Period In Days: 1
End Time : 1556313852
Allowed Tokens: 6
Type of Restriction: 0
*** Individual Daily restriction data ***
Allowed Tokens: 6
StartTime : 1555968262
Rolling Period in days : 1
EndTime : 1556313852
Type of Restriction: 0
✓ Should add the individual daily restriction for investor 3 (135ms)
35.3
Gas Estimation for the Individual daily tx - 157407
Latest timestamp: 0
SumOfLastPeriod: 0
Days Covered: 0
Latest timestamp daily: 1555968262
Individual Total Trade on latestTimestamp : 0
Individual Total Trade on daily latestTimestamp : 2
Last Transaction time in UTC: Mon, 22 Apr 2019 21:24:24 GMT
Gas Estimation for the Individual daily tx - 107215
Latest timestamp: 0
SumOfLastPeriod: 0
Days Covered: 0
Latest timestamp daily: 1555968262
Individual Total Trade on latestTimestamp : 0
Individual Total Trade on daily latestTimestamp : 6
Last Transaction time in UTC: Mon, 22 Apr 2019 21:39:24 GMT
✓ Should transfer the tokens within the individual daily restriction limits (525ms)
✓ Should fail to transfer more tokens --because of the above limit (106ms)
Gas Estimation for the Individual daily tx - 127548
Latest timestamp: 0
SumOfLastPeriod: 0
Days Covered: 0
Latest timestamp daily: 1556054662
Individual Total Trade on latestTimestamp : 0
Individual Total Trade on daily latestTimestamp : 2
Last Transaction time in UTC: Tue, 23 Apr 2019 21:39:24 GMT
✓ Should try to send after the one day completion (308ms)
Token holder: 0xCc036143C68A7A9a41558Eae739B428eCDe5EF66
Start Time: 1555968243
Rolling Period In Days: 3
End Time : 1556486641
Allowed Tokens: 12
Type of Restriction: 0
Token holder: 0xCc036143C68A7A9a41558Eae739B428eCDe5EF66
Start Time: 1556055566
Rolling Period In Days: 1
End Time : 1556401164
Allowed Tokens: 0.05
Type of Restriction: 1
Token holder: 0x97A3FC5Ee46852C1Cf92A97B7BaD42F2622267cC
Start Time: 1555968262
Rolling Period In Days: 1
End Time : 1556313852
Allowed Tokens: 6
Type of Restriction: 0
*** Individual Daily restriction data ***
Allowed Tokens: 5 % of TotalSupply
StartTime : 1556055566
Rolling Period in days : 1
EndTime : 1556401164
Type of Restriction: 1
✓ Should add the daily restriction on the investor 1 (212ms)
Gas estimation (Individual + Individual daily): 201405
Latest timestamp: 1556054643
SumOfLastPeriod: 2.3
Days Covered: 1
Latest timestamp daily: 1556055566
Individual Total Trade on latestTimestamp : 2
Individual Total Trade on daily latestTimestamp : 2
Last Transaction time in UTC: Tue, 23 Apr 2019 21:39:29 GMT
✓ Should transfer tokens on the 2nd day by investor1 (Individual + Individual daily) (328ms)
✓ Should fail to transfer by investor 1 -- because voilating the individual daily (130ms)
Token holder: 0xCc036143C68A7A9a41558Eae739B428eCDe5EF66
Start Time: 1555968243
Rolling Period In Days: 3
End Time : 1556486641
Allowed Tokens: 12
Type of Restriction: 0
Token holder: 0xCc036143C68A7A9a41558Eae739B428eCDe5EF66
Start Time: 1556055566
Rolling Period In Days: 1
End Time : 1556401164
Allowed Tokens: 0.05
Type of Restriction: 1
Token holder: 0x97A3FC5Ee46852C1Cf92A97B7BaD42F2622267cC
Start Time: 1556055571
Rolling Period In Days: 6
End Time : 1557351569
Allowed Tokens: 0.1536
Type of Restriction: 1
Token holder: 0x97A3FC5Ee46852C1Cf92A97B7BaD42F2622267cC
Start Time: 1555968262
Rolling Period In Days: 1
End Time : 1556313852
Allowed Tokens: 6
Type of Restriction: 0
✓ Should add the individual restriction to investor 3 (121ms)
Balance of investor 327.3
Gas estimation (Individual + Individual daily): 176078
Latest timestamp: 1556055571
SumOfLastPeriod: 4
Days Covered: 0
Latest timestamp daily: 1556054662
Individual Total Trade on latestTimestamp : 4
Individual Total Trade on daily latestTimestamp : 6
Last Transaction time in UTC: Tue, 23 Apr 2019 21:39:34 GMT
✓ Should transfer the token by the investor 3 with in the (Individual + Individual daily limit) (446ms)
✓ Should fail during transferring more tokens by investor3 -- Voilating the daily Limit (135ms)
✓ Should remove the daily individual limit and transfer more tokens on a same day -- failed because of bad owner (41ms)
Token holder: 0xCc036143C68A7A9a41558Eae739B428eCDe5EF66
Start Time: 1555968243
Rolling Period In Days: 3
End Time : 1556486641
Allowed Tokens: 12
Type of Restriction: 0
Token holder: 0xCc036143C68A7A9a41558Eae739B428eCDe5EF66
Start Time: 1556055566
Rolling Period In Days: 1
End Time : 1556401164
Allowed Tokens: 0.05
Type of Restriction: 1
Token holder: 0x97A3FC5Ee46852C1Cf92A97B7BaD42F2622267cC
Start Time: 1556055571
Rolling Period In Days: 6
End Time : 1557351569
Allowed Tokens: 0.1536
Type of Restriction: 1
Latest timestamp: 1556055571
SumOfLastPeriod: 8
Days Covered: 0
Latest timestamp daily: 0
Individual Total Trade on latestTimestamp : 8
Individual Total Trade on daily latestTimestamp : 0
Last Transaction time in UTC: Tue, 23 Apr 2019 21:39:34 GMT
✓ Should remove the daily individual limit and transfer more tokens on a same day (297ms)
*** Individual Daily restriction data ***
Allowed Tokens: 2
StartTime : 1556141974
Rolling Period in days : 1
EndTime : 1556401174
Type of Restriction: 0
Latest timestamp: 1556141971
SumOfLastPeriod: 10
Days Covered: 1
Latest timestamp daily: 1556141974
Individual Total Trade on latestTimestamp : 2
Individual Total Trade on daily latestTimestamp : 2
Last Transaction time in UTC: Thu, 25 Apr 2019 00:03:34 GMT
✓ Should add the new Individual daily restriction and transact the tokens (369ms)
✓ Should fail to modify the individual daily restriction -- bad owner (44ms)
*** Modify Individual Daily restriction data ***
Allowed Tokens: 3
StartTime : 1556150625
Rolling Period in days : 1
EndTime : 1556582615
Type of Restriction: 0
✓ Should modify the individual daily restriction (44ms)
Latest timestamp: 1556141971
SumOfLastPeriod: 13
Days Covered: 1
Latest timestamp daily: 1556150625
Individual Total Trade on latestTimestamp : 5
Individual Total Trade on daily latestTimestamp : 3
Last Transaction time in UTC: Thu, 25 Apr 2019 00:03:50 GMT
✓ Should allow to sell to transfer more tokens by investor3 (183ms)
Latest timestamp: 1556228371
SumOfLastPeriod: 15.36
Days Covered: 2
Latest timestamp daily: 1556237025
Individual Total Trade on latestTimestamp : 2.36
Individual Total Trade on daily latestTimestamp : 2.36
Last Transaction time in UTC: Fri, 26 Apr 2019 02:27:50 GMT
✓ Should allow to transact the tokens on the other day (182ms)
✓ Should fail to transfer the tokens after completion of the total amount (138ms)
Latest timestamp: 1556228371
SumOfLastPeriod: 15.86
Days Covered: 2
Latest timestamp daily: 1556237025
Individual Total Trade on latestTimestamp : 2.86
Individual Total Trade on daily latestTimestamp : 2.86
Last Transaction time in UTC: Fri, 26 Apr 2019 02:27:50 GMT
✓ Should sell more tokens on the same day after changing the total supply (229ms)
Diff Days: 0.20021990740740742
✓ Should fail to transact tokens more than the allowed in the second rolling period (156ms)
Latest timestamp: 1556573971
SumOfLastPeriod: 16.86
Days Covered: 6
Latest timestamp daily: 1556237025
Individual Total Trade on latestTimestamp : 9
Individual Total Trade on daily latestTimestamp : 2.86
Last Transaction time in UTC: Tue, 30 Apr 2019 02:27:51 GMT
✓ Should successfully to transact tokens in the second rolling period (165ms)
*** Individual Daily restriction data ***
Allowed Tokens: 0
StartTime : 1556055571
Rolling Period in days : 6
EndTime : 1557351569
Type of Restriction: 1
Balance of Investor3 :12.44
4.544
7.896
Latest timestamp: 1556833171
SumOfLastPeriod: 16
Days Covered: 9
Latest timestamp daily: 1556237025
Individual Total Trade on latestTimestamp : 7
Individual Total Trade on daily latestTimestamp : 2.86
Last Transaction time in UTC: Fri, 03 May 2019 02:27:51 GMT
✓ Should sell more tokens on the next day of rolling period (262ms)
Latest timestamp: 1557178771
SumOfLastPeriod: 15
Days Covered: 13
Latest timestamp daily: 1556237025
Individual Total Trade on latestTimestamp : 8
Individual Total Trade on daily latestTimestamp : 2.86
Last Transaction time in UTC: Tue, 07 May 2019 14:27:51 GMT
✓ Should transfer after the 5 days (235ms)
✓ Should freely transfer the tokens after one day (completion of individual restriction) (66ms)
Test cases for the Default restrictions
✓ Should add the investor 4 in the whitelist (48ms)
✓ Should issue some tokens to investor 4 (60ms)
*** Add Individual Daily restriction data ***
Allowed Tokens: 2 % of TotalSupply
StartTime : 1557412073
Rolling Period in days : 1
EndTime : 1557671272
Type of Restriction: 1
✓ Should add the default daily restriction successfully (46ms)
✓ Should fail to transfer above the daily limit (134ms)
Latest timestamp: 0
SumOfLastPeriod: 0
Days Covered: 0
Latest timestamp daily: 1557412073
Individual Total Trade on latestTimestamp : 0
Individual Total Trade on daily latestTimestamp : 0
Last Transaction time in UTC: Thu, 09 May 2019 14:27:54 GMT
✓ Should transfer the token by investor 4 (129ms)
✓ Should transfer the tokens freely after ending the default daily restriction (127ms)
*** Add Individual restriction data ***
Allowed Tokens: 10
StartTime : 1557671285
Rolling Period in days : 5
EndTime : 1558535284
Type of Restriction: 0
✓ Should successfully add the default restriction (55ms)
Latest timestamp: 1557671285
SumOfLastPeriod: 5
Days Covered: 0
Latest timestamp daily: 0
Individual Total Trade on latestTimestamp : 5
Individual Total Trade on daily latestTimestamp : 0
Last Transaction time in UTC: Sun, 12 May 2019 14:28:14 GMT
Latest timestamp: 1557757685
SumOfLastPeriod: 8
Days Covered: 1
Latest timestamp daily: 0
Individual Total Trade on latestTimestamp : 3
Individual Total Trade on daily latestTimestamp : 0
Last Transaction time in UTC: Mon, 13 May 2019 14:28:14 GMT
✓ Should transfer tokens on by investor 3 (comes under the Default restriction) (302ms)
✓ Should fail to transfer more tokens than the available default limit (118ms)
*** Diff days: 0.00010416666666666667
Latest timestamp: 1558103285
SumOfLastPeriod: 10
Days Covered: 5
Latest timestamp daily: 0
Individual Total Trade on latestTimestamp : 7
Individual Total Trade on daily latestTimestamp : 0
Last Transaction time in UTC: Fri, 17 May 2019 16:52:15 GMT
✓ Should able to transfer tokens in the next rolling period (305ms)
*** Add Individual Daily restriction data ***
Allowed Tokens: 200
StartTime : 1558111945
Rolling Period in days : 1
EndTime : 1558371135
Type of Restriction: 0
✓ Should add the daily default restriction again (42ms)
✓ Should not able to transfer tokens more than the default daily restriction (132ms)
Latest timestamp: 1558189685
SumOfLastPeriod: 9
Days Covered: 6
Latest timestamp daily: 1558198345
Individual Total Trade on latestTimestamp : 2
Individual Total Trade on daily latestTimestamp : 2
Last Transaction time in UTC: Sat, 18 May 2019 16:52:30 GMT
✓ Should able to transfer tokens within the limit of (daily default + default) restriction (181ms)
Test for the exemptlist
✓ Should add the token holder in the exemption list -- failed because of bad owner (43ms)
[ '0xce42bdB34189a93c55De250E011c68FaeE374Dd3' ]
✓ Should add the token holder in the exemption list (168ms)
✓ Should add multiple token holders to exemption list and check the getter value (122ms)
✓ Should unexempt a particular address (44ms)
✓ Should fail to unexempt the same address again
✓ Should delete the last element of the exemption list (48ms)
✓ Should delete multiple investor from the exemption list (104ms)
Test for modify functions
✓ Should add the individual restriction for multiple investor (140ms)
✓ Should modify the details before the starttime passed (76ms)
Test the major issue from the audit ( Possible accounting corruption between individualRestriction and defaultRestriction)
Earlier time Sat, 18 May 2019 16:52:31 GMT
Current time Sun, 19 May 2019 00:52:31 GMT
Token holder: 0xCc036143C68A7A9a41558Eae739B428eCDe5EF66
Start Time: 1555968243
Rolling Period In Days: 3
End Time : 1556486641
Allowed Tokens: 12
Type of Restriction: 0
Token holder: 0xCc036143C68A7A9a41558Eae739B428eCDe5EF66
Start Time: 1556055566
Rolling Period In Days: 1
End Time : 1556401164
Allowed Tokens: 0.05
Type of Restriction: 1
Token holder: 0x97A3FC5Ee46852C1Cf92A97B7BaD42F2622267cC
Start Time: 1558284751
Rolling Period In Days: 20
End Time : 1561654351
Allowed Tokens: 0.1278
Type of Restriction: 1
Token holder: 0x97A3FC5Ee46852C1Cf92A97B7BaD42F2622267cC
Start Time: 1556150625
Rolling Period In Days: 1
End Time : 1556582615
Allowed Tokens: 3
Type of Restriction: 0
Token holder: 0xB9dcBf8A52Edc0C8DD9983fCc1d97b1F5d975Ed7
Start Time: 1558371151
Rolling Period In Days: 15
End Time : 1563382351
Allowed Tokens: 15
Type of Restriction: 0
Token holder: 0x26064a2E2b568D9A6D01B93D039D1da9Cf2A58CD
Start Time: 1558227211
Rolling Period In Days: 2
End Time : 1558702351
Allowed Tokens: 12
Type of Restriction: 0
*** Add Default restriction data ***
Allowed Tokens: 5
StartTime : 1558227211
Rolling Period in days : 5
EndTime : 1559955151
Type of Restriction: 0
✓ Should add the individual restriction for the delegate 2 address (414ms)
Print the default bucket details
Latest timestamp: 0
SumOfLastPeriod: 0
Days Covered: 0
Latest timestamp daily: 0
Individual Total Trade on latestTimestamp : 0
Individual Total Trade on daily latestTimestamp : 0
Last Transaction time in UTC: Thu, 01 Jan 1970 00:00:00 GMT
Print the individual bucket details
Latest timestamp: 1558227211
SumOfLastPeriod: 6
Days Covered: 0
Latest timestamp daily: 0
Individual Total Trade on latestTimestamp : 6
Individual Total Trade on daily latestTimestamp : 0
Last Transaction time in UTC: Sun, 19 May 2019 00:54:31 GMT
Print the default bucket details
Latest timestamp: 0
SumOfLastPeriod: 0
Days Covered: 0
Latest timestamp daily: 0
Individual Total Trade on latestTimestamp : 0
Individual Total Trade on daily latestTimestamp : 0
Last Transaction time in UTC: Thu, 01 Jan 1970 00:00:00 GMT
Print the individual bucket details
Latest timestamp: 1558659211
SumOfLastPeriod: 9
Days Covered: 5
Latest timestamp daily: 0
Individual Total Trade on latestTimestamp : 9
Individual Total Trade on daily latestTimestamp : 0
Last Transaction time in UTC: Fri, 24 May 2019 03:18:32 GMT
✓ Should transact with delegate address 2 (362ms)
✓ Should fail to transact -- edge case when user restriction changes and do the transfer on the same day (143ms)
Print the individual bucket details
Latest timestamp: 1558659211
SumOfLastPeriod: 9
Days Covered: 5
Latest timestamp daily: 0
Individual Total Trade on latestTimestamp : 9
Individual Total Trade on daily latestTimestamp : 0
Last Transaction time in UTC: Fri, 24 May 2019 03:18:32 GMT
1558667912
Print the default bucket details
Latest timestamp: 1558745611
SumOfLastPeriod: 4
Days Covered: 6
Latest timestamp daily: 0
Individual Total Trade on latestTimestamp : 4
Individual Total Trade on daily latestTimestamp : 0
Last Transaction time in UTC: Sat, 25 May 2019 05:42:32 GMT
1558762952
✓ Should transact under the default restriction unaffected from the edge case (206ms)
Print the individual bucket details
Latest timestamp: 1558763012
SumOfLastPeriod: 1
Days Covered: 0
Latest timestamp daily: 0
Individual Total Trade on latestTimestamp : 1
Individual Total Trade on daily latestTimestamp : 0
Last Transaction time in UTC: Sat, 25 May 2019 05:44:32 GMT
Print the default bucket details
Latest timestamp: 1558745611
SumOfLastPeriod: 4
Days Covered: 6
Latest timestamp daily: 0
Individual Total Trade on latestTimestamp : 4
Individual Total Trade on daily latestTimestamp : 0
Last Transaction time in UTC: Sat, 25 May 2019 05:42:32 GMT
✓ Should check whether user is able to transfer when amount is less than the restriction limit (when restriction change) (442ms)
VolumeRestriction Transfer Manager Factory test cases
✓ Should get the exact details of the factory (70ms)
✓ Should get the tags of the factory
Contract: BlacklistTransferManager
STL - 0x5D3BeF47d7Be68C97b69Fa9B1DB1Ed3a5ADad5d2
--------------------- Polymath Network Smart Contracts: ---------------------
PolymathRegistry: 0xaC772223D1fb1e8881E29A4F55D815c8c4bBc43a
SecurityTokenRegistryProxy: 0xeD0e0bDbdB1A09f77B53F0c8345EAfA77951108f
SecurityTokenRegistry: 0x6347CecB93D8f1E6cFa30d62AAB5509DC276f53d
ModuleRegistry: 0x7EF88a3901494435700cCC4C7615903b43ec2Dbc
ModuleRegistryProxy: 0x24D718f7d8af7D7a4AbaA2B1Cb7AbbB36a23a00d
FeatureRegistry: 0x5cDc96cE31bdF08EF39D5f65A9Fd5E236CE2245F
STFactory: 0xa13BeaC90A97420310c3430c2A921786eA12D214
GeneralTransferManagerFactory: 0xf1a762a9a2e7f1Cb3D9e20c505d17Ef892E305e7
GeneralPermissionManagerFactory: 0x146EEb2719451a7bcd57E755987224eFe6c9f7f6
BlacklistTransferManagerFactory: 0xEb5785C94A8b2B6302764a4d6DB8463337FD7bc6
-----------------------------------------------------------------------------
Generate the SecurityToken
✓ Should register the ticker before the generation of the security token (78ms)
✓ Should generate the new security token with the same symbol as registered above (299ms)
✓ Should initialize the auto attached modules
✓ Should successfully attach the BlacklistTransferManager factory with the security token (245ms)
✓ Should successfully attach the BlacklistTransferManager factory with the security token (206ms)
{ tx:
'0xc8350d9bd1383ce0929640eb28bad8ececf245c8a874818baa4349d19da16d94',
receipt:
{ transactionHash:
'0xc8350d9bd1383ce0929640eb28bad8ececf245c8a874818baa4349d19da16d94',
transactionIndex: 0,
blockHash:
'0x83a7384bd6a2aec31d9d8d47f82fa748109f477bc2e4c3bf88d33e58cc6d5307',
blockNumber: 124,
gasUsed: 1503562,
cumulativeGasUsed: 1503562,
contractAddress: null,
logs: [ [Object], [Object], [Object] ],
status: true,
logsBloom:
'0x00000400010080000040000000000800800000010000000000000010002000000004000000000000040000000000000400000000000000000080000000a0000000800000000000000800020000000000000000000040000000000000000000000000000000000000000000000000000000008000000001008008000000000400000000000000000000040000000200100000000000000048000000000000000002000080000000100000000000000000000000000000000000000000000000000000000000000000000000200000000000002000000000000c0000000080000000100000000000000000000010000000000000000000011000000004000c0200',
rawLogs:
[ [Object], [Object], [Object], [Object], [Object], [Object] ] },
logs:
[ { logIndex: 1,
transactionIndex: 0,
transactionHash:
'0xc8350d9bd1383ce0929640eb28bad8ececf245c8a874818baa4349d19da16d94',
blockHash:
'0x83a7384bd6a2aec31d9d8d47f82fa748109f477bc2e4c3bf88d33e58cc6d5307',
blockNumber: 124,
address: '0x8215f88E6D8a1b8aF05b8aC5036Ca12e1aa8701b',
type: 'mined',
id: 'log_b99d5d26',
event: 'Approval',
args: [Result] },
{ logIndex: 4,
transactionIndex: 0,
transactionHash:
'0xc8350d9bd1383ce0929640eb28bad8ececf245c8a874818baa4349d19da16d94',
blockHash:
'0x83a7384bd6a2aec31d9d8d47f82fa748109f477bc2e4c3bf88d33e58cc6d5307',
blockNumber: 124,
address: '0x8215f88E6D8a1b8aF05b8aC5036Ca12e1aa8701b',
type: 'mined',
id: 'log_cc8de813',
event: 'Approval',
args: [Result] },
{ logIndex: 5,
transactionIndex: 0,
transactionHash:
'0xc8350d9bd1383ce0929640eb28bad8ececf245c8a874818baa4349d19da16d94',
blockHash:
'0x83a7384bd6a2aec31d9d8d47f82fa748109f477bc2e4c3bf88d33e58cc6d5307',
blockNumber: 124,
address: '0xBD031BCc6d4c151DC43F717e0Dd2aB9238eE0C42',
type: 'mined',
id: 'log_da2af4e0',
event: 'ModuleAdded',
args: [Result] } ] }
✓ Should successfully attach the BlacklistTransferManager with the security token (171ms)
Buy tokens using on-chain whitelist
✓ Should Buy the tokens (150ms)
✓ Should Buy some more tokens (135ms)
✓ Should Buy some more tokens (139ms)
✓ Should Buy some more tokens (200ms)
✓ Should Buy some more tokens (153ms)
✓ Should add the blacklist (105ms)
✓ Should fail in adding the blacklist as blacklist type already exist
✓ Should fail in adding the blacklist as the blacklist name is invalid
✓ Should fail in adding the blacklist as the start date is invalid
✓ Should fail in adding the blacklist as the dates are invalid
✓ Should fail in adding the blacklist because only owner can add the blacklist (44ms)
✓ Should fail in adding the blacklist because repeat period is less than the difference of start time and end time
✓ Should add the mutiple blacklist (45ms)
✓ Should fail in adding the mutiple blacklist because only owner can add it (49ms)
✓ Should fail in adding the mutiple blacklist because array lenth are different (44ms)
✓ Should modify the blacklist
✓ Should fail in modifying the blacklist as the name is invalid
✓ Should fail in modifying the blacklist as the dates are invalid
✓ Should fail in modifying the blacklist as the repeat in days is invalid
✓ Should fail in modifying the blacklist as only owner can modify the blacklist (41ms)
✓ Should fail in modifying the blacklist as blacklist type doesnot exist
✓ Should modify the mutiple blacklist
✓ Should fail in modifying the mutiple blacklist because only owner can add it (44ms)
✓ Should fail in modifying the mutiple blacklist because array length are different (38ms)
✓ Should add investor to the blacklist
✓ Should fail in adding the investor to the blacklist because only owner can add the investor (38ms)
✓ Should fail in adding the investor to the blacklist as investor address is invalid
✓ Should fail in adding the investor to the non existing blacklist
✓ Should get the list of investors associated to blacklist
✓ Should fail in getting the list of investors from the non existing blacklist
✓ Should investor be able to transfer token because current time is less than the blacklist start time (109ms)
✓ Should investor be able to transfer token as it is not in blacklist time period (118ms)
✓ Should fail in transfer the tokens as the investor in blacklist (138ms)
✓ Should investor is able transfer the tokens- because BlacklistTransferManager is paused (163ms)
✓ Should investor fail in transfer token as it is in blacklist time period (228ms)
✓ Should investor be able to transfer token as it is not in blacklist time period (74ms)
✓ Should investor fail in transfer token as it is in blacklist time period (104ms)
✓ Should investor fail in transfer token as it is in blacklist time period (162ms)
✓ Should investor be able to transfer token as it is not in blacklist time period (79ms)
✓ Should investor fail in transfer token as it is in blacklist time period (96ms)
✓ Should delete the blacklist type (62ms)
✓ Only owner have the permission to delete the blacklist type (76ms)
✓ Should fail in deleting the blacklist type as the blacklist has associated addresses
✓ Should fail in deleting the blacklist type as the blacklist doesnot exist
✓ Should delete the mutiple blacklist type (41ms)
✓ Should fail in deleting multiple blacklist type because only owner can do it. (43ms)
✓ Should delete the investor from all the associated blacklist (117ms)
✓ Only owner has the permission to delete the investor from all the blacklist type (70ms)
✓ Should fail in deleting the investor from all the associated blacklist as th address is invalid
✓ Should fail in deleting the investor because investor is not associated to any blacklist
✓ Should delete the mutiple investor from all the associated blacklist (135ms)
✓ Should fail in deleting the mutiple investor from all the associated blacklist because only owner can do it. (115ms)
✓ Should delete the mutiple investor from particular associated blacklists (99ms)
✓ Should fail in deleting the mutiple investor from particular associated blacklist because only owner can do it. (105ms)
✓ Should fail in deleting the mutiple investor from particular associated blacklist because array length is incorrect. (39ms)
✓ Should delete the investor from the blacklist type (185ms)
✓ Only owner can delete the investor from the blacklist type (72ms)
✓ Should fail in deleting the investor because the investor address is invalid
✓ Should fail in deleting the investor because the investor is not associated to blacklist (69ms)
✓ Should fail in deleting the investor because the blacklist name is invalid
✓ Should add investor and new blacklist type
✓ Should fail in adding the investor and new blacklist type (45ms)
✓ Should add mutiple investor to blacklist (66ms)
✓ Should fail in adding the mutiple investor to the blacklist (50ms)
✓ Should add mutiple investor to the mutiple blacklist (103ms)
✓ Should fail in adding the mutiple investor to the mutiple blacklist because only owner can do it. (84ms)
✓ Should fail in adding mutiple investor to the mutiple blacklist because array length is not same (39ms)
✓ Should get the init function
✓ Should get the permission
Test cases for blacklist with repeat period 0 (Never repeat)
✓ Should add a new blacklist with no repeat time (176ms)
✓ Should allow transfer after blacklist end time (71ms)
Test cases for the factory
✓ Should get the exact details of the factory (85ms)
✓ Should get the tags of the factory
Contract: GeneralPermissionManager
STL - 0x5D3BeF47d7Be68C97b69Fa9B1DB1Ed3a5ADad5d2
--------------------- Polymath Network Smart Contracts: ---------------------
PolymathRegistry: 0xaC772223D1fb1e8881E29A4F55D815c8c4bBc43a
SecurityTokenRegistryProxy: 0xeD0e0bDbdB1A09f77B53F0c8345EAfA77951108f
SecurityTokenRegistry: 0x6347CecB93D8f1E6cFa30d62AAB5509DC276f53d
ModuleRegistryProxy 0x24D718f7d8af7D7a4AbaA2B1Cb7AbbB36a23a00d
ModuleRegistry: 0x7EF88a3901494435700cCC4C7615903b43ec2Dbc
FeatureRegistry: 0x5cDc96cE31bdF08EF39D5f65A9Fd5E236CE2245F
STFactory: 0xa13BeaC90A97420310c3430c2A921786eA12D214
GeneralTransferManagerFactory: 0xf1a762a9a2e7f1Cb3D9e20c505d17Ef892E305e7
GeneralPermissionManagerFactory: 0x146EEb2719451a7bcd57E755987224eFe6c9f7f6
-----------------------------------------------------------------------------
Generate the SecurityToken
✓ Should register the ticker before the generation of the security token (81ms)
✓ Should generate the new security token with the same symbol as registered above (321ms)
✓ Should initialize the auto attached modules (40ms)
✓ Should successfully attach the General permission manager factory with the security token -- failed because Token is not paid (209ms)
✓ Should successfully attach the General permission manager factory with the security token (213ms)
✓ Should successfully attach the General permission manager factory with the security token (162ms)
adding and removing different modules
1
1.2
choosen factory I_PercentageTransferManagerFactory
choosen module PercentageTransferManager
PTM 01
encoded.
1.3
successfully attached module 0x230891ddB95Ea38DeFbC9b06e5ec53E4dD4Fb210
1.4
successfully removed module 0x230891ddB95Ea38DeFbC9b06e5ec53E4dD4Fb210
1.2
choosen factory I_CountTransferManagerFactory
choosen module CountTransferManager
1.3
successfully attached module 0xfFf6eCE56888755009b8f067a12F24E01858a9bf
1.4
successfully removed module 0xfFf6eCE56888755009b8f067a12F24E01858a9bf
1.2
choosen factory I_ManualApprovalTransferManagerFactory
choosen module ManualApprovalTransferManager
1.3
successfully attached module 0x16f89f2F2Df12289138c41087E66Ae907cB7cC81
1.4
successfully removed module 0x16f89f2F2Df12289138c41087E66Ae907cB7cC81
1.2
choosen factory I_PercentageTransferManagerFactory
choosen module PercentageTransferManager
PTM 01
encoded.
1.3
successfully attached module 0x8D60296D3A66d05078Be784aceA1652f772f6E0D
1.4
successfully removed module 0x8D60296D3A66d05078Be784aceA1652f772f6E0D
1.2
choosen factory I_PercentageTransferManagerFactory
choosen module PercentageTransferManager
PTM 01
encoded.
1.3
successfully attached module 0x486CC55c4C92Baf5A378bd2C0807FEE1f8D44818
1.4
successfully removed module 0x486CC55c4C92Baf5A378bd2C0807FEE1f8D44818
1.2
choosen factory I_VolumeRestrictionTransferManagerFactory
choosen module VolumeRestrictionTransferManager
1.3
successfully attached module 0x522b0D497368B3E1011f18e0525ec01D75f65F21
1.4
successfully removed module 0x522b0D497368B3E1011f18e0525ec01D75f65F21
1.2
choosen factory I_CountTransferManagerFactory
choosen module CountTransferManager
1.3
successfully attached module 0x76587E4DA75B081162F68846aC1260c07957AcBe
1.4
successfully removed module 0x76587E4DA75B081162F68846aC1260c07957AcBe
1.2
choosen factory I_CountTransferManagerFactory
choosen module CountTransferManager
1.3
successfully attached module 0x8B9cf6E0b01eDcFA509142135F5d5dB725427c29
1.4
successfully removed module 0x8B9cf6E0b01eDcFA509142135F5d5dB725427c29
1.2
choosen factory I_ManualApprovalTransferManagerFactory
choosen module ManualApprovalTransferManager
1.3
successfully attached module 0xb4ADb7733E7b126D45ddDA2619F52a4F1F3D98fC
1.4
successfully removed module 0xb4ADb7733E7b126D45ddDA2619F52a4F1F3D98fC
1.2
choosen factory I_ManualApprovalTransferManagerFactory
choosen module ManualApprovalTransferManager
1.3
successfully attached module 0x16c64870fECd232010280b70079a811Baa371F12
1.4
successfully removed module 0x16c64870fECd232010280b70079a811Baa371F12
1.2
choosen factory I_VolumeRestrictionTransferManagerFactory
choosen module VolumeRestrictionTransferManager
1.3
successfully attached module 0xABC4c35fDc7F9FEeaacFDEADcC0F28D9A3B52757
1.4
successfully removed module 0xABC4c35fDc7F9FEeaacFDEADcC0F28D9A3B52757
1.2
choosen factory I_PercentageTransferManagerFactory
choosen module PercentageTransferManager
PTM 01
encoded.
1.3
successfully attached module 0xe3b6Dd97Ed81448b4e2bB18F8698869550D09066
1.4
successfully removed module 0xe3b6Dd97Ed81448b4e2bB18F8698869550D09066
1.2
choosen factory I_ManualApprovalTransferManagerFactory
choosen module ManualApprovalTransferManager
1.3
successfully attached module 0x39D9ecc06b5F93ddC128360d1d6D08FACB8f7183
1.4
successfully removed module 0x39D9ecc06b5F93ddC128360d1d6D08FACB8f7183
1.2
choosen factory I_ManualApprovalTransferManagerFactory
choosen module ManualApprovalTransferManager
1.3
successfully attached module 0x94350b934dE43828A7207c7bD364A5c6d8591C04
1.4
successfully removed module 0x94350b934dE43828A7207c7bD364A5c6d8591C04
1.2
choosen factory I_VolumeRestrictionTransferManagerFactory
choosen module VolumeRestrictionTransferManager
1.3
successfully attached module 0xD8267B5192471aaAC959a91BadC4b19818A169C1
1.4
successfully removed module 0xD8267B5192471aaAC959a91BadC4b19818A169C1
1.2
choosen factory I_ManualApprovalTransferManagerFactory
choosen module ManualApprovalTransferManager
1.3
successfully attached module 0x84eA92cC6B6b0289b4178362043D5BFaBD67796c
1.4
successfully removed module 0x84eA92cC6B6b0289b4178362043D5BFaBD67796c
1.2
choosen factory I_ManualApprovalTransferManagerFactory
choosen module ManualApprovalTransferManager
1.3
successfully attached module 0xC304504A8E44f979Ba0627a092EfcEeb2E925850
1.4
successfully removed module 0xC304504A8E44f979Ba0627a092EfcEeb2E925850
1.2
choosen factory I_CountTransferManagerFactory
choosen module CountTransferManager
1.3
successfully attached module 0x1233B0308d0F8f075Bb16eEc36AaFD0E918D9D71
1.4
successfully removed module 0x1233B0308d0F8f075Bb16eEc36AaFD0E918D9D71
1.2
choosen factory I_PercentageTransferManagerFactory
choosen module PercentageTransferManager
PTM 01
encoded.
1.3
successfully attached module 0x3DF0B4FFCF290F52115999908B79d4C61fe7BD54
1.4
successfully removed module 0x3DF0B4FFCF290F52115999908B79d4C61fe7BD54
1.2
choosen factory I_ManualApprovalTransferManagerFactory
choosen module ManualApprovalTransferManager
1.3
successfully attached module 0x3fd48a75921264C6367D5f5bFF06Ef9C9106E86E
1.4
successfully removed module 0x3fd48a75921264C6367D5f5bFF06Ef9C9106E86E
✓ should pass test for randomly adding and removing modules (4501ms)
Contract: VolumeRestrictionTransferManager
STL - 0x5D3BeF47d7Be68C97b69Fa9B1DB1Ed3a5ADad5d2
--------------------- Polymath Network Smart Contracts: ---------------------
PolymathRegistry: 0xaC772223D1fb1e8881E29A4F55D815c8c4bBc43a
SecurityTokenRegistryProxy: 0xeD0e0bDbdB1A09f77B53F0c8345EAfA77951108f
SecurityTokenRegistry: 0x6347CecB93D8f1E6cFa30d62AAB5509DC276f53d
ModuleRegistryProxy 0x24D718f7d8af7D7a4AbaA2B1Cb7AbbB36a23a00d
ModuleRegistry: 0x7EF88a3901494435700cCC4C7615903b43ec2Dbc
FeatureRegistry: 0x5cDc96cE31bdF08EF39D5f65A9Fd5E236CE2245F
STFactory: 0xa13BeaC90A97420310c3430c2A921786eA12D214
GeneralTransferManagerFactory: 0xf1a762a9a2e7f1Cb3D9e20c505d17Ef892E305e7
VolumeRestrictionTMFactory: 0x146EEb2719451a7bcd57E755987224eFe6c9f7f6
-----------------------------------------------------------------------------
Generate the SecurityToken
✓ Should register the ticker before the generation of the security token (82ms)
[ { logIndex: 8,
transactionIndex: 0,
transactionHash:
'0xc52b49fd496e8285f96f7734083646b277f629556b64d9d0ac08b24a88037172',
blockHash:
'0x76ae68be85cf75c8b4c7c2b61977514e1e26a9f64f55c97be41ac3161a7fe99a',
blockNumber: 117,
address: '0xBD031BCc6d4c151DC43F717e0Dd2aB9238eE0C42',
type: 'mined',
id: 'log_db5407f1',
event: 'OwnershipTransferred',
args:
Result {
'0': '0xa13BeaC90A97420310c3430c2A921786eA12D214',
'1': '0x6704Fbfcd5Ef766B287262fA2281C105d57246a6',
__length__: 2,
previousOwner: '0xa13BeaC90A97420310c3430c2A921786eA12D214',
newOwner: '0x6704Fbfcd5Ef766B287262fA2281C105d57246a6' } },
{ logIndex: 9,
transactionIndex: 0,
transactionHash:
'0xc52b49fd496e8285f96f7734083646b277f629556b64d9d0ac08b24a88037172',
blockHash:
'0x76ae68be85cf75c8b4c7c2b61977514e1e26a9f64f55c97be41ac3161a7fe99a',
blockNumber: 117,
address: '0xeD0e0bDbdB1A09f77B53F0c8345EAfA77951108f',
type: 'mined',
id: 'log_e9cd97e7',
event: 'NewSecurityTokenCreated',
args:
Result {
'0': 'SAP',
'1': 'Team',
'2': '0xBD031BCc6d4c151DC43F717e0Dd2aB9238eE0C42',
'3': '0x6704Fbfcd5Ef766B287262fA2281C105d57246a6',
'4': [BN],
'5': '0x6704Fbfcd5Ef766B287262fA2281C105d57246a6',
'6': false,
'7': [BN],
'8': [BN],
'9': [BN],
__length__: 10,
_ticker: 'SAP',
_name: 'Team',
_securityTokenAddress: '0xBD031BCc6d4c151DC43F717e0Dd2aB9238eE0C42',
_owner: '0x6704Fbfcd5Ef766B287262fA2281C105d57246a6',
_addedAt: [BN],
_registrant: '0x6704Fbfcd5Ef766B287262fA2281C105d57246a6',
_fromAdmin: false,
_usdFee: [BN],
_polyFee: [BN],
_protocolVersion: [BN] } } ]
✓ Should generate the new security token with the same symbol as registered above (283ms)
✓ Should initialize the auto attached modules
Attach the VRTM
✓ Deploy the VRTM and attach with the ST (160ms)
✓ Transfer some tokens to different account (320ms)
Fuzz test
✓ Should work with multiple transaction within 1 day with Individual and daily Restrictions
✓ Should work with fuzz test for individual restriction and general restriction
✓ Should work with fuzz test for randomly adding / removing individual daily restriction and perform multipel transactions
✓ should work in all cases if a sender is added in the exception list
Starting of the IR modification test case
fuzzer number 0
Add individual restriction with TotalAmount: 5.04
Restriction successfully added
Test number: 0
Original Restriction
Allowed Tokens : 5.04
StartTime : 1555700431
Rolling Period : 2
EndTime : 1555959631
Restriction Type: Fixed
Modification of the IR with new startTime: 155552763286400 and new total amount: 8.3
Modified Restriction
Allowed Tokens : 8.3
StartTime : 1555614032
Rolling Period : 2
EndTime : 1555959632
Restriction Type: Fixed
Successfully IR modified
Transaction Amount: 1.78
newIR Amount: 8.3
currentTime: 1555700432
Tx should succeed
Tx succeeded
Finished test number 0
Test number: 1
Original Restriction
Allowed Tokens : 8.3
StartTime : 1555614032
Rolling Period : 2
EndTime : 1555959632
Restriction Type: Fixed
Modification of the IR with new startTime: 1555527632172800 and new total amount: 4.63
Modified Restriction
Allowed Tokens : 4.63
StartTime : 1555700432
Rolling Period : 2
EndTime : 1556046032
Restriction Type: Fixed
Successfully IR modified
Transaction Amount: 6.62
newIR Amount: 4.63
currentTime: 1555786832
Tx should fail
Tx failed as expected
Finished test number 1
Test number: 2
Original Restriction
Allowed Tokens : 4.63
StartTime : 1555700432
Rolling Period : 2
EndTime : 1556046032
Restriction Type: Fixed
Modification of the IR with new startTime: 1555527632259200 and new total amount: 2.43
Modified Restriction
Allowed Tokens : 2.43
StartTime : 1555786832
Rolling Period : 2
EndTime : 1556132432
Restriction Type: Fixed
Successfully IR modified
Transaction Amount: 3.59
newIR Amount: 2.43
currentTime: 1555873232
Tx should fail
Tx failed as expected
Finished test number 2
Test number: 3
Original Restriction
Allowed Tokens : 2.43
StartTime : 1555786832
Rolling Period : 2
EndTime : 1556132432
Restriction Type: Fixed
Modification of the IR with new startTime: 1555527632345600 and new total amount: 2.76
Modified Restriction
Allowed Tokens : 2.76
StartTime : 1555873232
Rolling Period : 2
EndTime : 1556218832
Restriction Type: Fixed
Successfully IR modified
Transaction Amount: 1.02
newIR Amount: 2.76
currentTime: 1555959633
Tx should succeed
Tx succeeded
Finished test number 3
Test number: 4
Original Restriction
Allowed Tokens : 2.76
StartTime : 1555873232
Rolling Period : 2
EndTime : 1556218832
Restriction Type: Fixed
Modification of the IR with new startTime: 1555527633432000 and new total amount: 8.6
Modified Restriction
Allowed Tokens : 8.6
StartTime : 1555959633
Rolling Period : 2
EndTime : 1556305233
Restriction Type: Fixed
Successfully IR modified
Transaction Amount: 2.97
newIR Amount: 8.6
currentTime: 1556046033
Tx should succeed
Tx succeeded
Finished test number 4
Test number: 5
Original Restriction
Allowed Tokens : 8.6
StartTime : 1555959633
Rolling Period : 2
EndTime : 1556305233
Restriction Type: Fixed
Modification of the IR with new startTime: 1555527633518400 and new total amount: 8.47
Modified Restriction
Allowed Tokens : 8.47
StartTime : 1556046033
Rolling Period : 2
EndTime : 1556391633
Restriction Type: Fixed
Successfully IR modified
Transaction Amount: 6.28
newIR Amount: 8.47
currentTime: 1556132433
Tx should succeed
Tx succeeded
Finished test number 5
Test number: 6
Original Restriction
Allowed Tokens : 8.47
StartTime : 1556046033
Rolling Period : 2
EndTime : 1556391633
Restriction Type: Fixed
Modification of the IR with new startTime: 1555527633604800 and new total amount: 5.72
Modified Restriction
Allowed Tokens : 5.72
StartTime : 1556132433
Rolling Period : 2
EndTime : 1556478033
Restriction Type: Fixed
Successfully IR modified
Transaction Amount: 7.32
newIR Amount: 5.72
currentTime: 1556218833
Tx should fail
Tx failed as expected
Finished test number 6
Test number: 7
Original Restriction
Allowed Tokens : 5.72
StartTime : 1556132433
Rolling Period : 2
EndTime : 1556478033
Restriction Type: Fixed
Modification of the IR with new startTime: 1555527633691200 and new total amount: 6.86
Modified Restriction
Allowed Tokens : 6.86
StartTime : 1556218833
Rolling Period : 2
EndTime : 1556564433
Restriction Type: Fixed
Successfully IR modified
Transaction Amount: 5.8
newIR Amount: 6.86
currentTime: 1556305233
Tx should succeed
Tx succeeded
Finished test number 7
Test number: 8
Original Restriction
Allowed Tokens : 6.86
StartTime : 1556218833
Rolling Period : 2
EndTime : 1556564433
Restriction Type: Fixed
Modification of the IR with new startTime: 1555527633777600 and new total amount: 8.81
Modified Restriction
Allowed Tokens : 8.81
StartTime : 1556305233
Rolling Period : 2
EndTime : 1556650833
Restriction Type: Fixed
Successfully IR modified
Transaction Amount: 9.22
newIR Amount: 8.81
currentTime: 1556391633
Tx should fail
Tx failed as expected
Finished test number 8
Test number: 9
Original Restriction
Allowed Tokens : 8.81
StartTime : 1556305233
Rolling Period : 2
EndTime : 1556650833
Restriction Type: Fixed
Modification of the IR with new startTime: 1555527633864000 and new total amount: 5.51
Modified Restriction
Allowed Tokens : 5.51
StartTime : 1556391633
Rolling Period : 2
EndTime : 1556737233
Restriction Type: Fixed
Successfully IR modified
Transaction Amount: 5.98
newIR Amount: 5.51
currentTime: 1556478034
Tx should fail
Tx failed as expected
Finished test number 9
Removed daily restriction
✓ Should work if IR is modified (1854ms)
Contract: GeneralPermissionManager Fuzz
STL - 0x5D3BeF47d7Be68C97b69Fa9B1DB1Ed3a5ADad5d2
--------------------- Polymath Network Smart Contracts: ---------------------
PolymathRegistry: 0xaC772223D1fb1e8881E29A4F55D815c8c4bBc43a
SecurityTokenRegistryProxy: 0xeD0e0bDbdB1A09f77B53F0c8345EAfA77951108f
SecurityTokenRegistry: 0x6347CecB93D8f1E6cFa30d62AAB5509DC276f53d
ModuleRegistryProxy 0x24D718f7d8af7D7a4AbaA2B1Cb7AbbB36a23a00d
ModuleRegistry: 0x7EF88a3901494435700cCC4C7615903b43ec2Dbc
FeatureRegistry: 0x5cDc96cE31bdF08EF39D5f65A9Fd5E236CE2245F
STFactory: 0xa13BeaC90A97420310c3430c2A921786eA12D214
GeneralTransferManagerFactory: 0xf1a762a9a2e7f1Cb3D9e20c505d17Ef892E305e7
GeneralPermissionManagerFactory: 0x146EEb2719451a7bcd57E755987224eFe6c9f7f6
-----------------------------------------------------------------------------
Generate the SecurityToken
✓ Should register the ticker before the generation of the security token (79ms)
✓ Should generate the new security token with the same symbol as registered above (279ms)
✓ Should initialize the auto attached modules
✓ Should successfully attach the General permission manager factory with the security token -- failed because Token is not paid (204ms)
✓ Should successfully attach the General permission manager factory with the security token - paid module (244ms)
✓ Should successfully attach the General permission manager factory with the security token - free module (163ms)
fuzz test for general transfer manager
1
2
Test number 2 with account 3 and perm TRANSFER_APPROVAL for functions require perm FLAGS failed as expected
3
3.3
3.4
3.5
2
Test number 3 with account 8 and perm TRANSFER_APPROVAL for functions require perm FLAGS failed as expected
3
3.3
3.4
3.5
2
Test number 4 with account 5 and perm WHITELIST for functions require perm FLAGS failed as expected
3
3.3
3.4
3.5
2
Test number 5 with account 8 and perm WHITELIST for functions require perm FLAGS failed as expected
3
3.3
3.4
3.5
2
Test number 6 with account 7 and perm TRANSFER_APPROVAL for functions require perm FLAGS failed as expected
3
3.3
3.4
3.5
2
Test number 7 with account 6 and perm TRANSFER_APPROVAL for functions require perm FLAGS failed as expected
3
3.3
3.4
3.5
2
Test number 8 with account 7 and perm FLAGS for functions require perm FLAGS failed as expected
3
3.3
3.4
3.5
2
Test number 9 with account 2 and perm WHITELIST for functions require perm FLAGS failed as expected
3
3.3
3.4
3.5
2
Test number 10 with account 2 and perm ADMIN about to start
Test number 10 with account 2 and perm ADMIN for functions with require perm FLAGS passed
3
3.1
Result {
'0': '0x97A3FC5Ee46852C1Cf92A97B7BaD42F2622267cC',
'1': '0x9E1Ef1eC212F5DFfB41d35d9E5c14054F26c6560',
'2':
BN {
negative: 0,
words: [ 12023767, 23, <1 empty item> ],
length: 2,
red: null },
'3':
BN {
negative: 0,
words: [ 13751767, 23, <1 empty item> ],
length: 2,
red: null },
'4':
BN {
negative: 0,
words: [ 14615767, 23, <1 empty item> ],
length: 2,
red: null },
__length__: 5,
_investor: '0x97A3FC5Ee46852C1Cf92A97B7BaD42F2622267cC',
_addedBy: '0x9E1Ef1eC212F5DFfB41d35d9E5c14054F26c6560',
_canSendAfter:
BN {
negative: 0,
words: [ 12023767, 23, <1 empty item> ],
length: 2,
red: null },
_canReceiveAfter:
BN {
negative: 0,
words: [ 13751767, 23, <1 empty item> ],
length: 2,
red: null },
_expiryTime:
BN {
negative: 0,
words: [ 14615767, 23, <1 empty item> ],
length: 2,
red: null } }
3.2
2
Test number 11 with account 5 and perm ADMIN about to start
Test number 11 with account 5 and perm ADMIN for functions with require perm FLAGS passed
3
3.1
Result {
'0': '0x97A3FC5Ee46852C1Cf92A97B7BaD42F2622267cC',
'1': '0xB9dcBf8A52Edc0C8DD9983fCc1d97b1F5d975Ed7',
'2':
BN {
negative: 0,
words: [ 12023768, 23, <1 empty item> ],
length: 2,
red: null },
'3':
BN {
negative: 0,
words: [ 13751768, 23, <1 empty item> ],
length: 2,
red: null },
'4':
BN {
negative: 0,
words: [ 14615768, 23, <1 empty item> ],
length: 2,
red: null },
__length__: 5,
_investor: '0x97A3FC5Ee46852C1Cf92A97B7BaD42F2622267cC',
_addedBy: '0xB9dcBf8A52Edc0C8DD9983fCc1d97b1F5d975Ed7',
_canSendAfter:
BN {
negative: 0,
words: [ 12023768, 23, <1 empty item> ],
length: 2,
red: null },
_canReceiveAfter:
BN {
negative: 0,
words: [ 13751768, 23, <1 empty item> ],
length: 2,
red: null },
_expiryTime:
BN {
negative: 0,
words: [ 14615768, 23, <1 empty item> ],
length: 2,
red: null } }
3.2
2
Test number 12 with account 3 and perm WHITELIST for functions require perm FLAGS failed as expected
3
3.3
3.4
3.5
2
Test number 13 with account 2 and perm TRANSFER_APPROVAL for functions require perm FLAGS failed as expected
3
3.3
3.4
3.5
2
Test number 14 with account 6 and perm TRANSFER_APPROVAL for functions require perm FLAGS failed as expected
3
3.3
3.4
3.5
2
Test number 15 with account 3 and perm ADMIN about to start
Test number 15 with account 3 and perm ADMIN for functions with require perm FLAGS passed
3
3.1
Result {
'0': '0x97A3FC5Ee46852C1Cf92A97B7BaD42F2622267cC',
'1': '0xce42bdB34189a93c55De250E011c68FaeE374Dd3',
'2':
BN {
negative: 0,
words: [ 12023769, 23, <1 empty item> ],
length: 2,
red: null },
'3':
BN {
negative: 0,
words: [ 13751769, 23, <1 empty item> ],
length: 2,
red: null },
'4':
BN {
negative: 0,
words: [ 14615769, 23, <1 empty item> ],
length: 2,
red: null },
__length__: 5,
_investor: '0x97A3FC5Ee46852C1Cf92A97B7BaD42F2622267cC',
_addedBy: '0xce42bdB34189a93c55De250E011c68FaeE374Dd3',
_canSendAfter:
BN {
negative: 0,
words: [ 12023769, 23, <1 empty item> ],
length: 2,
red: null },
_canReceiveAfter:
BN {
negative: 0,
words: [ 13751769, 23, <1 empty item> ],
length: 2,
red: null },
_expiryTime:
BN {
negative: 0,
words: [ 14615769, 23, <1 empty item> ],
length: 2,
red: null } }
3.2
2
Test number 16 with account 2 and perm ADMIN about to start
Test number 16 with account 2 and perm ADMIN for functions with require perm FLAGS passed
3
3.1
Result {
'0': '0x97A3FC5Ee46852C1Cf92A97B7BaD42F2622267cC',
'1': '0x9E1Ef1eC212F5DFfB41d35d9E5c14054F26c6560',
'2':
BN {
negative: 0,
words: [ 12023769, 23, <1 empty item> ],
length: 2,
red: null },
'3':
BN {
negative: 0,
words: [ 13751769, 23, <1 empty item> ],
length: 2,
red: null },
'4':
BN {
negative: 0,
words: [ 14615769, 23, <1 empty item> ],
length: 2,
red: null },
__length__: 5,
_investor: '0x97A3FC5Ee46852C1Cf92A97B7BaD42F2622267cC',
_addedBy: '0x9E1Ef1eC212F5DFfB41d35d9E5c14054F26c6560',
_canSendAfter:
BN {
negative: 0,
words: [ 12023769, 23, <1 empty item> ],
length: 2,
red: null },
_canReceiveAfter:
BN {
negative: 0,
words: [ 13751769, 23, <1 empty item> ],
length: 2,
red: null },
_expiryTime:
BN {
negative: 0,
words: [ 14615769, 23, <1 empty item> ],
length: 2,
red: null } }
3.2
2
Test number 17 with account 2 and perm ADMIN about to start
Test number 17 with account 2 and perm ADMIN for functions with require perm FLAGS passed
3
3.1
Result {
'0': '0x97A3FC5Ee46852C1Cf92A97B7BaD42F2622267cC',
'1': '0x9E1Ef1eC212F5DFfB41d35d9E5c14054F26c6560',
'2':
BN {
negative: 0,
words: [ 12023769, 23, <1 empty item> ],
length: 2,
red: null },
'3':
BN {
negative: 0,
words: [ 13751769, 23, <1 empty item> ],
length: 2,
red: null },
'4':
BN {
negative: 0,
words: [ 14615769, 23, <1 empty item> ],
length: 2,
red: null },
__length__: 5,
_investor: '0x97A3FC5Ee46852C1Cf92A97B7BaD42F2622267cC',
_addedBy: '0x9E1Ef1eC212F5DFfB41d35d9E5c14054F26c6560',
_canSendAfter:
BN {
negative: 0,
words: [ 12023769, 23, <1 empty item> ],
length: 2,
red: null },
_canReceiveAfter:
BN {
negative: 0,
words: [ 13751769, 23, <1 empty item> ],
length: 2,
red: null },
_expiryTime:
BN {
negative: 0,
words: [ 14615769, 23, <1 empty item> ],
length: 2,
red: null } }
3.2
2
Test number 18 with account 2 and perm FLAGS for functions require perm FLAGS failed as expected
3
3.3
3.4
3.5
2
Test number 19 with account 4 and perm FLAGS for functions require perm FLAGS failed as expected
3
3.3
3.4
3.5
4
✓ should pass fuzz test for changeIssuanceAddress() (4583ms)
fuzz test for count transfer manager
✓ Should successfully attach the CountTransferManager with the security token (158ms)
Test number 2 with account 9 and perm ADMIN passed
Test number 3 with account 2 and perm TRANSFER_APPROVAL failed as expected
Test number 4 with account 5 and perm FLAGS failed as expected
Test number 5 with account 2 and perm WHITELIST failed as expected
Test number 6 with account 3 and perm FLAGS failed as expected
Test number 7 with account 2 and perm FLAGS failed as expected
Test number 8 with account 7 and perm TRANSFER_APPROVAL failed as expected
Test number 9 with account 2 and perm WHITELIST failed as expected
Test number 10 with account 3 and perm TRANSFER_APPROVAL failed as expected
Test number 11 with account 2 and perm WHITELIST failed as expected
Test number 12 with account 6 and perm ADMIN passed
Test number 13 with account 4 and perm FLAGS failed as expected
Test number 14 with account 3 and perm ADMIN passed
Test number 15 with account 2 and perm ADMIN passed
Test number 16 with account 2 and perm ADMIN passed
Test number 17 with account 2 and perm WHITELIST failed as expected
Test number 18 with account 7 and perm TRANSFER_APPROVAL failed as expected
Test number 19 with account 6 and perm WHITELIST failed as expected
✓ should pass fuzz test for changeHolderCount() (1800ms)
fuzz test for percentage transfer manager
1
✓ Should successfully attach the percentage transfer manager with the security token (171ms)
Test number 2 with account 3 and perm WHITELIST failed as expected
Test number 3 with account 7 and perm TRANSFER_APPROVAL failed as expected
Test number 4 with account 6 and perm WHITELIST failed as expected
Test number 5 with account 5 and perm TRANSFER_APPROVAL failed as expected
Test number 6 with account 2 and perm TRANSFER_APPROVAL failed as expected
Test number 7 with account 8 and perm ADMIN passed as expected
Test number 8 with account 9 and perm ADMIN passed as expected
Test number 9 with account 2 and perm WHITELIST failed as expected
Test number 10 with account 9 and perm WHITELIST failed as expected
Test number 11 with account 6 and perm ADMIN passed as expected
Test number 12 with account 9 and perm ADMIN passed as expected
Test number 13 with account 2 and perm FLAGS failed as expected
Test number 14 with account 7 and perm ADMIN passed as expected
Test number 15 with account 5 and perm ADMIN passed as expected
Test number 16 with account 6 and perm ADMIN passed as expected
Test number 17 with account 2 and perm FLAGS failed as expected
Test number 18 with account 3 and perm ADMIN passed as expected
Test number 19 with account 7 and perm TRANSFER_APPROVAL failed as expected
✓ should pass fuzz test for modifyWhitelist with perm ADMIN (1622ms)
Test number 2 with account 5 and perm WHITELIST failed as expected
Test number 3 with account 7 and perm FLAGS failed as expected
Test number 4 with account 2 and perm WHITELIST failed as expected
Test number 5 with account 7 and perm ADMIN passed as expected
Test number 6 with account 5 and perm FLAGS failed as expected
Test number 7 with account 2 and perm ADMIN passed as expected
Test number 8 with account 2 and perm FLAGS failed as expected
Test number 9 with account 2 and perm ADMIN passed as expected
Test number 10 with account 2 and perm TRANSFER_APPROVAL failed as expected
Test number 11 with account 2 and perm TRANSFER_APPROVAL failed as expected
Test number 12 with account 8 and perm WHITELIST failed as expected
Test number 13 with account 7 and perm WHITELIST failed as expected
Test number 14 with account 2 and perm WHITELIST failed as expected
Test number 15 with account 6 and perm WHITELIST failed as expected
Test number 16 with account 2 and perm ADMIN passed as expected
Test number 17 with account 8 and perm TRANSFER_APPROVAL failed as expected
Test number 18 with account 2 and perm TRANSFER_APPROVAL failed as expected
Test number 19 with account 3 and perm FLAGS failed as expected
✓ should pass fuzz test for modifyWhitelistMulti with perm ADMIN (1971ms)
Test number 2 with account 4 and perm WHITELIST should failed
Test number 2 with account 4 and perm WHITELIST failed as expected
Test number 3 with account 2 and perm WHITELIST should failed
Test number 3 with account 2 and perm WHITELIST failed as expected
Test number 4 with account 5 and perm FLAGS should failed
Test number 4 with account 5 and perm FLAGS failed as expected
Test number 5 with account 5 and perm FLAGS should failed
Test number 5 with account 5 and perm FLAGS failed as expected
Test number 6 with account 2 and perm WHITELIST should failed
Test number 6 with account 2 and perm WHITELIST failed as expected
Test number 7 with account 5 and perm ADMIN should pass
Test number 7 with account 5 and perm ADMIN passed as expected
Test number 8 with account 4 and perm TRANSFER_APPROVAL should failed
Test number 8 with account 4 and perm TRANSFER_APPROVAL failed as expected
Test number 9 with account 5 and perm WHITELIST should failed
Test number 9 with account 5 and perm WHITELIST failed as expected
Test number 10 with account 6 and perm FLAGS should failed
Test number 10 with account 6 and perm FLAGS failed as expected
Test number 11 with account 6 and perm FLAGS should failed
Test number 11 with account 6 and perm FLAGS failed as expected
Test number 12 with account 3 and perm WHITELIST should failed
Test number 12 with account 3 and perm WHITELIST failed as expected
Test number 13 with account 2 and perm WHITELIST should failed
Test number 13 with account 2 and perm WHITELIST failed as expected
Test number 14 with account 6 and perm TRANSFER_APPROVAL should failed
Test number 14 with account 6 and perm TRANSFER_APPROVAL failed as expected
Test number 15 with account 2 and perm ADMIN should pass
Test number 15 with account 2 and perm ADMIN passed as expected
Test number 16 with account 6 and perm WHITELIST should failed
Test number 16 with account 6 and perm WHITELIST failed as expected
Test number 17 with account 8 and perm WHITELIST should failed
Test number 17 with account 8 and perm WHITELIST failed as expected
Test number 18 with account 2 and perm WHITELIST should failed
Test number 18 with account 2 and perm WHITELIST failed as expected
Test number 19 with account 5 and perm WHITELIST should failed
Test number 19 with account 5 and perm WHITELIST failed as expected
✓ should pass fuzz test for setAllowPrimaryIssuance with perm ADMIN (1962ms)
fuzz test for manual approval transfer manager
✓ Should successfully attach the ManualApprovalTransferManager with the security token (152ms)
Test number 2 with account 2 and perm ADMIN should pass
2
3
Test number 2 with account 2 and perm ADMIN passed as expected
Test number 3 with account 2 and perm TRANSFER_APPROVAL should failed
Test number 3 with account 2 and perm TRANSFER_APPROVAL failed as expected
Test number 4 with account 6 and perm WHITELIST should failed
Test number 4 with account 6 and perm WHITELIST failed as expected
Test number 5 with account 4 and perm ADMIN should pass
2
3
Test number 5 with account 4 and perm ADMIN passed as expected
Test number 6 with account 2 and perm ADMIN should pass
2
3
Test number 6 with account 2 and perm ADMIN passed as expected
Test number 7 with account 8 and perm TRANSFER_APPROVAL should failed
Test number 7 with account 8 and perm TRANSFER_APPROVAL failed as expected
Test number 8 with account 8 and perm FLAGS should failed
Test number 8 with account 8 and perm FLAGS failed as expected
Test number 9 with account 5 and perm FLAGS should failed
Test number 9 with account 5 and perm FLAGS failed as expected
Test number 10 with account 4 and perm TRANSFER_APPROVAL should failed
Test number 10 with account 4 and perm TRANSFER_APPROVAL failed as expected
Test number 11 with account 2 and perm TRANSFER_APPROVAL should failed
Test number 11 with account 2 and perm TRANSFER_APPROVAL failed as expected
Test number 12 with account 9 and perm ADMIN should pass
2
3
Test number 12 with account 9 and perm ADMIN passed as expected
Test number 13 with account 6 and perm ADMIN should pass
2
3
Test number 13 with account 6 and perm ADMIN passed as expected
Test number 14 with account 3 and perm WHITELIST should failed
Test number 14 with account 3 and perm WHITELIST failed as expected
Test number 15 with account 6 and perm FLAGS should failed
Test number 15 with account 6 and perm FLAGS failed as expected
Test number 16 with account 9 and perm ADMIN should pass
2
3
Test number 16 with account 9 and perm ADMIN passed as expected
Test number 17 with account 9 and perm TRANSFER_APPROVAL should failed
Test number 17 with account 9 and perm TRANSFER_APPROVAL failed as expected
Test number 18 with account 2 and perm WHITELIST should failed
Test number 18 with account 2 and perm WHITELIST failed as expected
Test number 19 with account 2 and perm FLAGS should failed
Test number 19 with account 2 and perm FLAGS failed as expected
✓ should pass fuzz test for addManualApproval & revokeManualApproval with perm ADMIN (3130ms)
Contract: VestingEscrowWallet
STL - 0x5D3BeF47d7Be68C97b69Fa9B1DB1Ed3a5ADad5d2
--------------------- Polymath Network Smart Contracts: ---------------------
PolymathRegistry: 0xaC772223D1fb1e8881E29A4F55D815c8c4bBc43a
SecurityTokenRegistryProxy: 0xeD0e0bDbdB1A09f77B53F0c8345EAfA77951108f
SecurityTokenRegistry: 0x6347CecB93D8f1E6cFa30d62AAB5509DC276f53d
ModuleRegistry: 0x7EF88a3901494435700cCC4C7615903b43ec2Dbc
ModuleRegistryProxy: 0x24D718f7d8af7D7a4AbaA2B1Cb7AbbB36a23a00d
FeatureRegistry: 0x5cDc96cE31bdF08EF39D5f65A9Fd5E236CE2245F
STFactory: 0xa13BeaC90A97420310c3430c2A921786eA12D214
GeneralTransferManagerFactory: 0xf1a762a9a2e7f1Cb3D9e20c505d17Ef892E305e7
GeneralPermissionManagerFactory: 0x146EEb2719451a7bcd57E755987224eFe6c9f7f6
I_VestingEscrowWalletFactory: 0xEb5785C94A8b2B6302764a4d6DB8463337FD7bc6
-----------------------------------------------------------------------------
Generate the SecurityToken
✓ Should register the ticker before the generation of the security token (83ms)
✓ Should generate the new security token with the same symbol as registered above (302ms)
✓ Should initialize the auto attached modules
✓ Should successfully attach the General permission manager factory with the security token (156ms)
✓ Should successfully attach the VestingEscrowWallet with the security token (196ms)
✓ Should fail to change the treasury wallet
✓ Should change the treasury wallet
✓ Should Buy the tokens for token_owner (138ms)
✓ Should whitelist investors (208ms)
✓ Should successfully add the delegate (wallet_admin)
✓ Should successfully add the delegate (wallet_operator)
✓ Should provide the permission
✓ Should provide the permission
✓ Should get the permission
✓ Should get the tags of the factory
Depositing and withdrawing tokens
✓ Should not be able to deposit -- fail because of permissions check
✓ Should change treasury wallet (63ms)
✓ Should fail to deposit zero amount of tokens
✓ Should not be able to deposit -- fail because of permissions check (71ms)
✓ Should deposit tokens for new vesting schedules (111ms)
✓ Should not be able to withdraw tokens to a treasury -- fail because of permissions check (54ms)
✓ Should not be able to withdraw tokens to a treasury -- fail because of zero amount (50ms)
✓ Should not be able to withdraw tokens to a treasury -- fail because amount is greater than unassigned tokens (51ms)
✓ Should withdraw partial tokens to a treasury (96ms)
✓ Should withdraw all tokens to a treasury (95ms)
✓ Should not be able to push available tokens -- fail because of permissions check (193ms)
✓ Should not be able to remove template -- fail because template is used (50ms)
✓ Should push available tokens to the beneficiary address (139ms)
✓ Should fail to modify vesting schedule -- fail because schedule already started (227ms)
✓ Should fail to modify vesting schedule -- fail because date in the past (53ms)
✓ Should withdraw available tokens to the beneficiary address (464ms)
✓ Should fetch the unused tokens from the wallet (144ms)
✓ Should fail to transfer the tokens to wallet
✓ Should withdraw available tokens 2 times by 3 schedules to the beneficiary address (769ms)
Adding, modifying and revoking vesting schedule
✓ Should fail to add vesting schedule to the beneficiary address -- fail because address in invalid (64ms)
✓ Should fail to add vesting schedule to the beneficiary address -- fail because start date in the past (134ms)
✓ Should fail to add vesting schedule to the beneficiary address -- fail because number of tokens is 0 (51ms)
✓ Should fail to add vesting schedule to the beneficiary address -- fail because duration can't be divided entirely by frequency (51ms)
✓ Should fail to add vesting schedule to the beneficiary address -- fail because number of tokens can't be divided entirely by period count (48ms)
✓ Should fail to get vesting schedule -- fail because address is invalid
✓ Should fail to get vesting schedule -- fail because schedule not found
✓ Should fail to get count of vesting schedule -- fail because address is invalidm
✓ Should not be able to add schedule -- fail because of permissions check (221ms)
✓ Should add vesting schedule to the beneficiary address (203ms)
✓ Should add vesting schedule without depositing to the beneficiary address (314ms)
✓ Should fail to modify vesting schedule -- fail because schedule not found (58ms)
✓ Should not be able to modify schedule -- fail because of permissions check (47ms)
✓ Should modify vesting schedule for the beneficiary's address (72ms)
✓ Should not be able to revoke schedule -- fail because of permissions check (51ms)
✓ Should revoke vesting schedule from the beneficiary address (182ms)
✓ Should fail to revoke vesting schedule -- fail because address is invalid (48ms)
✓ Should fail to revoke vesting schedule -- fail because schedule not found (50ms)
✓ Should fail to revoke vesting schedules -- fail because address is invalid (52ms)
✓ Should add 3 vesting schedules to the beneficiary address (351ms)
✓ Should not be able to revoke schedules -- fail because of permissions check (53ms)
✓ Should revoke 1 of 3 vesting schedule from the beneficiary address (158ms)
✓ Should revoke 2 vesting schedules from the beneficiary address (170ms)
✓ Should push available tokens during revoking vesting schedule (861ms)
Adding, using and removing templates
✓ Should not be able to add template -- fail because of permissions check (52ms)
✓ Should not be able to add template -- fail because of invalid name (52ms)
✓ Should add 3 Templates (168ms)
✓ Should not be able to add template -- fail because template already exists (53ms)
✓ Should not be able to remove template -- fail because of permissions check (54ms)
✓ Should not be able to remove template -- fail because template not found (53ms)
✓ Should remove template (44ms)
✓ Should fail to add vesting schedule from template -- fail because template not found (51ms)
✓ Should not be able to add schedule from template -- fail because of permissions check (53ms)
✓ Should not be able to add vesting schedule from template -- fail because template not found (51ms)
✓ Should add vesting schedule from template (304ms)
✓ Should not be able to add vesting schedule from template -- fail because template already added (124ms)
✓ Should fail to remove template (52ms)
✓ Should remove 2 Templates (117ms)
Tests for multi operations
✓ Should not be able to add schedules to the beneficiaries -- fail because of permissions check (56ms)
✓ Should not be able to add schedules to the beneficiaries -- fail because of arrays sizes mismatch (231ms)
✓ Should add schedules for 3 beneficiaries (289ms)
✓ Should not be able modify vesting schedule for 3 beneficiary's addresses -- fail because of arrays sizes mismatch (57ms)
✓ Should not be able to modify schedules for the beneficiaries -- fail because of permissions check (53ms)
✓ Should modify vesting schedule for 3 beneficiary's addresses (153ms)
✓ Should not be able to send available tokens to the beneficiaries addresses -- fail because of array size (52ms)
✓ Should not be able to send available tokens to the beneficiaries -- fail because of permissions check (50ms)
✓ Should send available tokens to the beneficiaries addresses (961ms)
✓ Should not be able to add schedules from template to the beneficiaries -- fail because of permissions check (189ms)
✓ Should add schedules from template for 3 beneficiaries (137ms)
✓ Should not be able to revoke schedules of the beneficiaries -- fail because of permissions check (58ms)
✓ Should revoke vesting schedule from the 3 beneficiary's addresses (235ms)
Contract: Data store
STL - 0x5D3BeF47d7Be68C97b69Fa9B1DB1Ed3a5ADad5d2
--------------------- Polymath Network Smart Contracts: ---------------------
PolymathRegistry: 0xaC772223D1fb1e8881E29A4F55D815c8c4bBc43a
SecurityTokenRegistryProxy: 0xeD0e0bDbdB1A09f77B53F0c8345EAfA77951108f
SecurityTokenRegistry: 0x6347CecB93D8f1E6cFa30d62AAB5509DC276f53d
ModuleRegistry: 0x7EF88a3901494435700cCC4C7615903b43ec2Dbc
FeatureRegistry: 0x5cDc96cE31bdF08EF39D5f65A9Fd5E236CE2245F
STFactory: 0xa13BeaC90A97420310c3430c2A921786eA12D214
GeneralTransferManagerFactory: 0xf1a762a9a2e7f1Cb3D9e20c505d17Ef892E305e7
-----------------------------------------------------------------------------
Generate the SecurityToken
✓ Should register the ticker before the generation of the security token (78ms)
✓ Should generate the new security token with the same symbol as registered above (290ms)
✓ Should fetch data store address
Should attach to security token securely
✓ Should be attached to a security token upon deployment
✓ Should not allow non-issuer to change security token address
✓ Should allow issuer to change security token address (47ms)
Should set data correctly
✓ Should set and fetch uint256 correctly (61ms)
✓ Should set and fetch bytes32 correctly
✓ Should set and fetch address correctly
✓ Should set and fetch string correctly
✓ Should set and fetch bytes correctly (41ms)
✓ Should set and fetch bool correctly
✓ Should set and fetch uint256 array correctly (54ms)
✓ Should set and fetch bytes32 array correctly (57ms)
✓ Should set and fetch address array correctly (55ms)
✓ Should set and fetch bool array correctly (85ms)
✓ Should insert uint256 into Array (70ms)
✓ Should insert bytes32 into Array (72ms)
✓ Should insert address into Array (73ms)
✓ Should insert bool into Array (70ms)
✓ Should delete uint256 from Array (72ms)
✓ Should delete bytes32 from Array (69ms)
✓ Should delete address from Array (68ms)
✓ Should delete bool from Array (70ms)
✓ Should set and fetch multiple uint256 correctly (71ms)
✓ Should set and fetch multiple bytes32 correctly (48ms)
✓ Should set and fetch multiple address correctly (48ms)
✓ Should set and fetch multiple bool correctly (44ms)
✓ Should insert multiple uint256 into multiple Array (99ms)
✓ Should insert multiple bytes32 into multiple Array (99ms)
✓ Should insert multiple address into multiple Array (94ms)
✓ Should insert multiple bool into multiple Array (95ms)
Should not allow unautohrized modification to data
✓ Should not allow unauthorized addresses to modify uint256 (46ms)
✓ Should not allow unauthorized addresses to modify bytes32 (44ms)
✓ Should not allow unauthorized addresses to modify address (42ms)
✓ Should not allow unauthorized addresses to modify string (89ms)
✓ Should not allow unauthorized addresses to modify bytes (48ms)
✓ Should not allow unauthorized addresses to modify bool (42ms)
✓ Should not allow unauthorized addresses to modify uint256 array (46ms)
✓ Should not allow unauthorized addresses to modify bytes32 array (46ms)
✓ Should not allow unauthorized addresses to modify address array (46ms)
✓ Should not allow unauthorized addresses to modify bool array (45ms)
✓ Should not allow unauthorized addresses to insert uint256 into Array (45ms)
✓ Should not allow unauthorized addresses to insert bytes32 into Array (45ms)
✓ Should not allow unauthorized addresses to insert address into Array (45ms)
✓ Should not allow unauthorized addresses to insert bool into Array (45ms)
✓ Should not allow unauthorized addresses to delete uint256 from Array (45ms)
✓ Should not allow unauthorized addresses to delete bytes32 from Array (45ms)
✓ Should not allow unauthorized addresses to delete address from Array (44ms)
✓ Should not allow unauthorized addresses to delete bool from Array (44ms)
✓ Should not allow unauthorized addresses to modify multiple uint256 (46ms)
✓ Should not allow unauthorized addresses to modify multiple bytes32 (47ms)
✓ Should not allow unauthorized addresses to modify multiple address (47ms)
✓ Should not allow unauthorized addresses to modify multiple bool (47ms)
✓ Should not allow unauthorized addresses to insert multiple uint256 into multiple Array (47ms)
✓ Should not allow unauthorized addresses to insert multiple bytes32 into multiple Array (45ms)
✓ Should not allow unauthorized addresses to insert multiple address into multiple Array (44ms)
✓ Should not allow unauthorized addresses to insert multiple bool into multiple Array (47ms)
Contract: SignedTransferManager
STL - 0x5D3BeF47d7Be68C97b69Fa9B1DB1Ed3a5ADad5d2
--------------------- Polymath Network Smart Contracts: ---------------------
PolymathRegistry: 0xaC772223D1fb1e8881E29A4F55D815c8c4bBc43a
SecurityTokenRegistryProxy: 0xeD0e0bDbdB1A09f77B53F0c8345EAfA77951108f
SecurityTokenRegistry: 0x6347CecB93D8f1E6cFa30d62AAB5509DC276f53d
ModuleRegistryProxy: 0x24D718f7d8af7D7a4AbaA2B1Cb7AbbB36a23a00d
ModuleRegistry: 0x7EF88a3901494435700cCC4C7615903b43ec2Dbc
FeatureRegistry: 0x5cDc96cE31bdF08EF39D5f65A9Fd5E236CE2245F
ManualApprovalTransferManagerFactory: 0x795d0789A203626d05FbA5419F298Ed6e641aF48
-----------------------------------------------------------------------------
Generate the SecurityToken
✓ Should register the ticker before the generation of the security token (78ms)
✓ Should generate the new security token with the same symbol as registered above (303ms)
✓ Should initialize the auto attached modules (38ms)
signed transfer manager tests
✓ Should Buy the tokens (129ms)
✓ Should successfully attach the SignedTransferManager with the security token (174ms)
✓ should fail to transfer because transaction is not verified yet. (109ms)
0
✓ Should successfully attach the permission manager factory with the security token (222ms)
✓ should allow to invalidate siganture if sender is the signer and is in the signer list (204ms)
✓ should allow transfer with valid sig (389ms)
✓ should not allow transfer if the signer is not on the signer list (153ms)
Contract: PLCRVotingCheckpoint
STL - 0x5D3BeF47d7Be68C97b69Fa9B1DB1Ed3a5ADad5d2
--------------------- Polymath Network Smart Contracts: ---------------------
PolymathRegistry: 0xaC772223D1fb1e8881E29A4F55D815c8c4bBc43a
SecurityTokenRegistryProxy: 0xeD0e0bDbdB1A09f77B53F0c8345EAfA77951108f
SecurityTokenRegistry: 0x6347CecB93D8f1E6cFa30d62AAB5509DC276f53d
ModuleRegistry: 0x7EF88a3901494435700cCC4C7615903b43ec2Dbc
ModuleRegistryProxy: 0x24D718f7d8af7D7a4AbaA2B1Cb7AbbB36a23a00d
FeatureRegistry: 0x5cDc96cE31bdF08EF39D5f65A9Fd5E236CE2245F
STFactory: 0xa13BeaC90A97420310c3430c2A921786eA12D214
GeneralTransferManagerFactory: 0xf1a762a9a2e7f1Cb3D9e20c505d17Ef892E305e7
PLCRVotingCheckpointFactory: 0x146EEb2719451a7bcd57E755987224eFe6c9f7f6
-----------------------------------------------------------------------------
Test case for PLCR Vote Checkpoint module
Attaching the PLCR vote checkpoint module
✓ Should register the ticker before the generation of the security token
(81ms)
✓ Should generate the new security token with the same symbol as registered above
(276ms)
✓ Should initialize the auto attached modules
✓ Should attach the voting module with the ST
(153ms)
✓ Should fail to attach the voting module because allowance is unsufficent
(119ms)
✓ Should attach the voting module with the ST
(189ms)
✓ Should attach the general permission manager (151ms)
Test for createBallot
✓ Should fail to create ballot -- bad owner
(49ms)
✓ Should fail to create ballot -- bad commit duration
(56ms)
✓ Should fail to create ballot -- bad reveal duration
(57ms)
✓ Should fail to create ballot -- bad proposed quorum
(54ms)
✓ Should fail to create ballot -- bad proposed quorum more than 100 %
(53ms)
✓ Should fail to create ballot -- bad no of proposals
(53ms)
✓ Should fail to create ballot -- bad no of proposals
(56ms)
✓ Mint some tokens and transfer to whitelisted investors
(362ms)
✓ Should fail to create ballot -- Invalid checkpoint Id
(44ms)
✓ Should fail to create ballot -- Invalid start time
(41ms)
✓ SHould give admin permission to the delegate
(47ms)
✓ Should create the ballot successfully
(94ms)
Test case for commitVote
✓ Should fail to commitVote -- bad ballot id
✓ Should fail to commitVote -- not in the commit stage
✓ Should fail to commitVote -- secret vote is 0
(39ms)
✓ Should change some ballot status
(51ms)
✓ Should fail to commitVote because ballot is not active
✓ Should change some ballot status
(85ms)
✓ Should fail to add voter in ballot exemption list -- address is zero (41ms)
✓ Should fail to add voter in ballot exemption list -- invalid ballot id
✓ Should add the voter in to the ballot exemption list
✓ Should fail to add voter in ballot exemption list -- doing the same change again
✓ Should fail to vote -- voter is present in the exemption list
✓ Should add the multiple voter in to the ballot exemption list -- failed (38ms)
✓ Should add the multiple voter in to the ballot exemption list --failed because of bad msg.sender (60ms)
✓ Should add the multiple voter in to the ballot exemption list (41ms)
✓ Should successfully vote by account investor1
(57ms)
✓ Should failed to vote again
✓ Should fail to add voter in default exemption list -- address is zero
✓ Should add the voter in to the default exemption list
✓ Should fail to add voter in default exemption list -- doing the same change again
✓ Should fail to vote -- voter is present in the exemption list
✓ Should change the deafult exemption list using Multi function -- failed because of mismatch array length (38ms)
✓ Should change the default exemption list by allowing investor 1 to vote (42ms)
✓ Should change the default exemption list using Multi function (106ms)
✓ Should change the default exemption list by allowing investor 1 to vote again (45ms)
✓ Should change the default exemption list using Multi function (70ms)
✓ Should successfully vote by account investor3
(81ms)
✓ Should successfully vote by account investor2
(68ms)
✓ Mint some more tokens and transferred to the tokens holders
(231ms)
✓ Should fail to vote with a zero weight
(52ms)
✓ Should create a new ballot
(67ms)
✓ Should reveal the vote -- failed because not a valid stage
✓ Should try to commit vote but failed because commit periods end
(38ms)
✓ Should fail to reveal vote -- not a valid ballot Id
✓ Should fali to reveal the vote -- not have the secret vote
✓ Should fail to reveal vote -- not a valid choice of proposal
✓ Should fail to reveal vote -- Invalid salt
✓ Should successfully reveal the vote by investor 3
(59ms)
✓ Should fail to change the ballot status-- bad owner
(50ms)
✓ Should fail to change the ballot status-- no change in the state
✓ Should change the status of the ballot with the help of changeBallotStatus
✓ Should fail to reveal vote as ballot status is false
✓ Should successfully reveal the vote by investor 1
(81ms)
✓ Should fail to reveal vote again
✓ Should ge the ballot stage
✓ Should fail to reveal vote when reveal period is over
(39ms)
✓ Should check who votes whom
(53ms)
✓ Should give the result to 0 because ballot id is not valid
✓ Should get the result of the ballot
✓ Should fail to change the ballot status after the ballot ends (48ms)
General function test
✓ Should check the permission
✓ Should check the init function
Factory test cases
✓ Should get the exact details of the factory
(103ms)
Contract: WeightedVoteCheckpoint
STL - 0x5D3BeF47d7Be68C97b69Fa9B1DB1Ed3a5ADad5d2
--------------------- Polymath Network Smart Contracts: ---------------------
PolymathRegistry: 0xaC772223D1fb1e8881E29A4F55D815c8c4bBc43a
SecurityTokenRegistryProxy: 0xeD0e0bDbdB1A09f77B53F0c8345EAfA77951108f
SecurityTokenRegistry: 0x6347CecB93D8f1E6cFa30d62AAB5509DC276f53d
ModuleRegistry: 0x7EF88a3901494435700cCC4C7615903b43ec2Dbc
ModuleRegistryProxy: 0x24D718f7d8af7D7a4AbaA2B1Cb7AbbB36a23a00d
FeatureRegistry: 0x5cDc96cE31bdF08EF39D5f65A9Fd5E236CE2245F
STFactory: 0xa13BeaC90A97420310c3430c2A921786eA12D214
GeneralTransferManagerFactory: 0xf1a762a9a2e7f1Cb3D9e20c505d17Ef892E305e7
WeightedVoteCheckpointFactory: 0x146EEb2719451a7bcd57E755987224eFe6c9f7f6
-----------------------------------------------------------------------------
Test case for Weighted Vote Checkpoint module
Attaching the Weighted vote checkpoint module
✓ Should register the ticker before the generation of the security token
(81ms)
✓ Should generate the new security token with the same symbol as registered above
(260ms)
✓ Should initialize the auto attached modules
✓ Should attach the voting module with the ST
(155ms)
✓ Should fail to attach the voting module because allowance is unsufficent
(123ms)
✓ Should attach the voting module with the ST
(181ms)
Test for createBallot
✓ Should fail to create ballot -- bad owner
(41ms)
✓ Should fail to create ballot -- bad duration
(40ms)
✓ Should fail to create ballot -- bad no of proposals
(55ms)
✓ Should fail to create ballot -- zero value of quorum
(56ms)
✓ Should fail to create ballot -- value of quorum is more than the limit
(55ms)
✓ Mint some tokens and transfer to whitelisted investors
(331ms)
✓ Should fail to create ballot -- Invalid checkpoint Id
(44ms)
✓ Should fail to create ballot -- Invalid startTime
(78ms)
✓ Should fail to create ballot -- Invalid endTimes
(41ms)
✓ Should create the ballot successfully
(42ms)
Test case for castVote
✓ Should fail to caste vote -- bad ballot id
✓ Should fail to caste vote -- bad proposal id
(77ms)
✓ Should fail to caste vote -- weight is 0
(43ms)
✓ Should fail to add voter in ballot exemption list -- address is zero
✓ Should fail to add voter in ballot exemption list -- invalid ballot id
✓ Should add the voter in to the ballot exemption list
✓ Should fail to add voter in ballot exemption list -- doing the same change again
✓ Should fail to vote -- voter is present in the exemption list
✓ Should add the multiple voter in to the ballot exemption list -- failed
✓ Should add the multiple voter in to the ballot exemption list (41ms)
✓ Should successfully vote by account investor2
(55ms)
✓ Should fail to add voter in default exemption list -- address is zero
✓ Should add the voter in to the default exemption list
✓ Should fail to add voter in default exemption list -- doing the same change again
✓ Should fail to vote -- voter is present in the exemption list
✓ Should change the default exemption list by allowing investor 1 to vote (41ms)
✓ Should successfully vote by account investor1
(54ms)
✓ Should fail to vote again
(44ms)
✓ Should fail to change the ballot status-- bad owner
(42ms)
✓ Should fail to change the ballot status-- no change in the state
(43ms)
✓ Should change the status of the ballot with the help of changeBallotStatus
✓ Should fail to vote because ballot is disabled
(44ms)
✓ Should turn on the ballot
Result {
'0':
BN {
negative: 0,
words: [ 57868288, 16290576, 113, <1 empty item> ],
length: 3,
red: null },
'1':
BN {
negative: 0,
words: [ 51380224, 62546313, 1443289, <1 empty item> ],
length: 3,
red: null },
'2':
BN {
negative: 0,
words: [ 2, <1 empty item> ],
length: 1,
red: null },
'3':
BN {
negative: 0,
words: [ 12023816, 23, <1 empty item> ],
length: 2,
red: null },
'4':
BN {
negative: 0,
words: [ 12455816, 23, <1 empty item> ],
length: 2,
red: null },
'5':
BN {
negative: 0,
words: [ 3, <1 empty item> ],
length: 1,
red: null },
'6':
BN {
negative: 0,
words: [ 3, <1 empty item> ],
length: 1,
red: null },
'7': true }
✓ Should successfully vote
(53ms)
✓ Should fail to vote when the duration of vote is complete
(111ms)
✓ Should fail to change the status of the ballot -- already ended
✓ Should check who votes whom
(64ms)
✓ Should get the result of the ballot
Result {
'0':
[ BN { negative: 0, words: [Array], length: 3, red: null },
BN { negative: 0, words: [Array], length: 3, red: null },
BN { negative: 0, words: [Array], length: 1, red: null } ],
'1': [],
'2':
BN {
negative: 0,
words: [ 1, <1 empty item> ],
length: 1,
red: null },
'3': true,
'4':
BN {
negative: 0,
words: [ 3, <1 empty item> ],
length: 1,
red: null },
voteWeighting:
[ BN { negative: 0, words: [Array], length: 3, red: null },
BN { negative: 0, words: [Array], length: 3, red: null },
BN { negative: 0, words: [Array], length: 1, red: null } ],
tieWith: [],
winningProposal:
BN {
negative: 0,
words: [ 1, <1 empty item> ],
length: 1,
red: null },
isVotingSucceed: true,
totalVotes:
BN {
negative: 0,
words: [ 3, <1 empty item> ],
length: 1,
red: null } }
✓ Should get the result of the ballot
General function test
✓ Should check the permission
✓ Should check the init function
Factory test cases
✓ Should get the exact details of the factory
(100ms)
1556 passing (6m)
```