Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added test for AssetManagerFunds #161

Merged
merged 4 commits into from
Oct 18, 2018
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
20 changes: 10 additions & 10 deletions accounts.json
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
[
"0x34b4c0cf65a762f3042070a03425ab4bffe0170c",
"0x44067107f06443e6d125352bbf95de0c133456f8",
"0x02c4039e7d59b00e20f0f1dade6265c5a27ea715",
"0x9d01aafb060b3b76dc8e546b0550b68e8d7c529b",
"0xb220118ca37c21717fd09d9fc01fbb98d9b1f930",
"0x2fd989874137f24325474df1a3aacae508e3e2ce",
"0x6925b5a5cc617e466437a39ffb9c82a56c89e0a9",
"0xe42cd23ef408bf91042f3bb643db512c36d7a42e",
"0xee3cc3822bfeb1567ded5c507eba3a9c680988e7",
"0x20a698e36ae9bce21d5a00f87a98876a0e21af4e"
"0x590f94438c6b8df412a09f25f5292aac01b4fa09",
"0x32ff587b8ca6300294d622098915b1afb8982829",
"0xdae8399289fd74bda66fa98bd1859c68134e2567",
"0x0ba2ee5b570ff955d927925cd1a6c31c1909e246",
"0xfd6133bf620f2dbdb8c45a922f740da3b357302e",
"0xe81747b29b6633578c02f487c965096bf6a73565",
"0x1670bc8b5229b651340a24ef6799c3a9f46e89c5",
"0xbc28f186d3114c1387f4b1839731773b656f5f93",
"0x75aef1f5dadbad74ec778a84d729ee30c2cd46b1",
"0x6f47a67f1374c49ce6392a668c049a63e340ff8b"
]
32 changes: 16 additions & 16 deletions addresses.json
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
{
"MyBit": "0x1251954ebb35a93414c4fdd6eb572f9292f79bcf",
"ERC20Burner": "0xc263fabff96e5b4a11704478816c874fda9c4177",
"Database": "0x3f4c458f7adc3ce2300cd9fa7ab2c218d04ea18d",
"ContractManager": "0x346505e54761981543be0cd304d3c123887c6e99",
"API": "0xa12d771ffb785ad139dbe082be83259b7a0da142",
"SingleOwned": "0x5bb4c507e7a64c7db50f3a398dc80f399e9c968a",
"Pausible": "0x23ecf8d2811058b790f97fe3c307c16b8e41649e",
"AccessHierarchy": "0x24d2a3416e8b073dfc557fcf0b72cd73c4ae12c1",
"PlatformFunds": "0x6bbb45d95ddbb7a015d10257f66d13936212e64d",
"Operators": "0xbc135c1965c54aca5777aa750bf7863f23e074b3",
"AssetManagerEscrow": "0x172a12d553dd2a57a4227005972340dafcfcf14d",
"CrowdsaleETH": "0xdcf1b48d5bacfd16be0d03f68e0c748e08c79fb1",
"CrowdsaleGeneratorETH": "0x0ff213559567c2787abd8fb42ff46777fe978307",
"CrowdsaleERC20": "0xd5b03029ad72aa013cbcd5a8dd31f6a5cca04f45",
"CrowdsaleGeneratorERC20": "0xa1a8c7e4c9b1cb580428f3326dec41fc1b53391f",
"AssetExchange": "0x75fcdea05c36b0bdcbf1cd341b6cb7b846a885a3"
"MyBit": "0xf45b23cc62e941291481ef5dafcf8a9cde30bf70",
"ERC20Burner": "0xfcaf6c14dc7c9cf79d4db58e6c94c942ae3ad1e1",
"Database": "0x938fae37294e9709121314777dd8ab487867336d",
"ContractManager": "0xfbc85e780ebc7b734796c8688c0bcb97af1fcfc6",
"API": "0xcfc57b6f5c0ff77665a1967bd076e2112dff29ae",
"SingleOwned": "0x509e5492e7566093b5e6a06f191427219499229b",
"Pausible": "0x431be519376d1208740889e169a7cbd008d1fb5a",
"AccessHierarchy": "0x784e5c7357b7c29742e82786adcf7867084f50b3",
"PlatformFunds": "0x35f62aab3aea258cb0f5032b142aa2e28241e44c",
"Operators": "0x341e584c03d74547183c81a48a0314aea7fa054c",
"AssetManagerEscrow": "0xe322c30cf0f108d8136dfbb787f12b7242f137c1",
"CrowdsaleETH": "0xcaaf3d9c402344575dc92b2abd6046fed1cc044d",
"CrowdsaleGeneratorETH": "0xff249a1623a06d475f84d443e67871199e21ab05",
"CrowdsaleERC20": "0xbbbfa52d199804e73838ba2dcae1fc8672defbd5",
"CrowdsaleGeneratorERC20": "0x42084420c41e2e51af12f53530b777ffc3181da3",
"AssetExchange": "0x28c3b5fec46958f8cef0a3bae757f77fbf071d6c"
}
4 changes: 2 additions & 2 deletions contracts/roles/AssetManagerFunds.sol
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ contract AssetManagerFunds {
function retrieveAssetManagerTokens(bytes32[] _assetID)
external
returns (bool) {
require(_assetID.length < 50);
require(_assetID.length <= 42);
uint[] memory payoutAmounts = new uint[](_assetID.length);
address[] memory tokenAddresses = new address[](_assetID.length);
uint8 numEntries;
Expand Down Expand Up @@ -89,7 +89,7 @@ contract AssetManagerFunds {
function retrieveAssetManagerETH(bytes32[] _assetID)
external
returns (bool) {
require(_assetID.length < 50);
require(_assetID.length <= 93);
uint weiOwed;
for(uint8 i = 0; i < _assetID.length; i++){
require(msg.sender == database.addressStorage(keccak256(abi.encodePacked("assetManager", _assetID[i]))));
Expand Down
62 changes: 59 additions & 3 deletions test/AssetManagerFunds.js
Original file line number Diff line number Diff line change
Expand Up @@ -117,6 +117,34 @@ contract('AssetManagerFunds', async() => {
await db.setAddress(assetManagerHash, assetManager);
await db.setAddress(operatorHash, operator);
});
/*
it("Add multiple assets", async() => {
var number = 92; //We can test multiple assets to find the limit, the limit is 93 (92 + 1 from 'Generate assetID')
for(var i=0; i<number; i++){
//Add token
let testToken = await DivToken.new(i, owner);
//Mint
await testToken.mint(assetManagerFunds.address, tokenPerAccount);
let balance = await testToken.balanceOf(assetManagerFunds.address);
assert.equal(balance, tokenPerAccount);
let uri = ''+i;
let id = await hash.getAssetID(uri, 10*ETH, operatorID, {from:assetManager});
//console.log('Asset ID ', i, ': ', id);
assetsETH.push(id);
let tokenHash = await hash.stringBytes("tokenAddress", id);
let assetManagerHash = await hash.stringBytes("assetManager", id);
let operatorHash = await hash.stringBytes("operator", id);
await db.setAddress(tokenHash, testToken.address);
await db.setAddress(assetManagerHash, assetManager);
await db.setAddress(operatorHash, operator);
await testToken.issueDividends({from:operator, value:0.1*ETH});
}
});
*/

it('Send money to token contract', async() => {
//await web3.eth.sendTransaction({from:operator, to:divToken.address, value:10*ETH});
Expand All @@ -140,7 +168,7 @@ contract('AssetManagerFunds', async() => {
let balanceBefore = await web3.eth.getBalance(assetManager);
let amountOwed = await divToken.getAmountOwed(assetManagerFunds.address);
assert.notEqual(amountOwed, 0);
let tx = await assetManagerFunds.retrieveAssetManagerETH(assetsETH, {from:assetManager});
let tx = await assetManagerFunds.retrieveAssetManagerETH(assetsETH, {from:assetManager, gas:6721975});
//console.log(tx);
let balanceAfter = await web3.eth.getBalance(assetManager);
assert.equal(bn(balanceAfter).isGreaterThan(balanceBefore), true);
Expand Down Expand Up @@ -191,7 +219,36 @@ contract('AssetManagerFunds', async() => {
assert.equal(await divTokenERC20.assetIncome(), 5*ETH);
assert.equal(await burnToken.balanceOf(divTokenERC20.address), 5*ETH);
});
/*
it("Add multiple assets", async() => {
var number = 41; //We can test multiple assets to find the limit, the limit is 42 (41 + 1 from 'Generate assetID')
for(var i=0; i<number; i++){
let uri = ''+i;
//Add token
let erc20Token = await BurnableToken.new(uri, 10000*ETH, {from: operator});
let testToken = await DivTokenERC20.new(uri, owner, erc20Token.address);
//Mint
await testToken.mint(assetManagerFunds.address, tokenPerAccount);
let balance = await testToken.balanceOf(assetManagerFunds.address);
assert.equal(balance, tokenPerAccount);
let id = await hash.getAssetID(uri, 10*ETH, operatorID, {from:assetManager});
//console.log('Asset ID ', i, ': ', id);
assetsERC.push(id);
let tokenHash = await hash.stringBytes("tokenAddress", id);
let assetManagerHash = await hash.stringBytes("assetManager", id);
let operatorHash = await hash.stringBytes("operator", id);
await db.setAddress(tokenHash, testToken.address);
await db.setAddress(assetManagerHash, assetManager);
await db.setAddress(operatorHash, operator);
await erc20Token.approve(testToken.address, 1*ETH, {from: operator});
await testToken.issueDividends(0.1*ETH, {from:operator});
}
});
*/
it("Withdraw dividends ERC20", async() => {
let balanceBefore = await burnToken.balanceOf(user1);
let amountOwed = await divTokenERC20.getAmountOwed(user1);
Expand All @@ -211,12 +268,11 @@ contract('AssetManagerFunds', async() => {
assert.equal(await divTokenERC20.balanceOf(assetManagerFunds.address), tokenPerAccount);
console.log("amount owed");
console.log(amountOwed);
let tx = await assetManagerFunds.retrieveAssetManagerTokens(assetsERC, {from:assetManager});
let tx = await assetManagerFunds.retrieveAssetManagerTokens(assetsERC, {from:assetManager, gas:6721975});
//console.log(tx);
let balanceAfter = await burnToken.balanceOf(assetManager);
console.log(balanceAfter);
console.log(balanceBefore);
assert.equal(balanceBefore.plus(amountOwed).eq(balanceAfter), true);
});

});