Array usage examples

This commit is contained in:
Manuel Araoz
2016-08-11 13:02:32 -03:00
parent d96d1dfa4d
commit 83acbbbb15
3 changed files with 24 additions and 7 deletions

View File

@ -5,10 +5,16 @@ import './PullPaymentCapable.sol';
contract BadArrayUse is PullPaymentCapable { contract BadArrayUse is PullPaymentCapable {
address[] employees; address[] employees;
function payroll() { function payBonus() {
for (var i = 0; i < employees.length; i++) { for (var i = 0; i < employees.length; i++) {
address employee = employees[i];
uint bonus = calculateBonus(employee);
asyncSend(employee, bonus);
}
}
function calculateBonus(address employee) returns (uint) {
// some expensive computation...
} }
} }
}

View File

@ -1,11 +1,21 @@
import './PullPaymentCapable.sol';
contract GoodArrayUse { contract GoodArrayUse is PullPaymentCapable {
address[] employees; address[] employees;
mapping(address => uint) bonuses;
function payroll() { function payBonus() {
for (uint i = 0; i < employees.length; i++) { for (uint i = 0; i < employees.length; i++) {
address employee = employees[i];
uint bonus = bonuses[employee];
asyncSend(employee, bonus);
}
}
function calculateBonus(address employee) returns (uint) {
uint bonus = 0;
// some expensive computation...
bonuses[employee] = bonus;
} }
} }
}

View File

@ -2,4 +2,5 @@ module.exports = function(deployer) {
deployer.deploy(BadFailEarly); deployer.deploy(BadFailEarly);
deployer.deploy(GoodFailEarly); deployer.deploy(GoodFailEarly);
deployer.deploy(PullPaymentBid); deployer.deploy(PullPaymentBid);
deployer.deploy(BadArrayUse);
}; };