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 {
address[] employees;
function payroll() {
function payBonus() {
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;
mapping(address => uint) bonuses;
function payroll() {
function payBonus() {
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(GoodFailEarly);
deployer.deploy(PullPaymentBid);
deployer.deploy(BadArrayUse);
};