Array usage examples

pull/14/head
Manuel Araoz 9 years ago
parent d96d1dfa4d
commit 83acbbbb15
  1. 12
      contracts/BadArrayUse.sol
  2. 18
      contracts/GoodArrayUse.sol
  3. 1
      migrations/2_deploy_contracts.js

@ -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...
}
}

@ -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;
}
}

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

Loading…
Cancel
Save