Array usage examples
This commit is contained in:
@ -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...
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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);
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user