Skip to content

Commit

Permalink
Merge pull request #161 from PeterMPhillips/master
Browse files Browse the repository at this point in the history
Added test for AssetManagerFunds
  • Loading branch information
0xdewy committed Oct 18, 2018
2 parents 94901dd + 91aeb15 commit 58caa63
Show file tree
Hide file tree
Showing 4 changed files with 87 additions and 31 deletions.
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);
});

});

0 comments on commit 58caa63

Please sign in to comment.