Commit f2ec8790 by Makoto Inoue

WIP Target contract creation via factory pattern

parent 48badda9
...@@ -8,6 +8,10 @@ import '../PullPayment.sol'; ...@@ -8,6 +8,10 @@ import '../PullPayment.sol';
* have sufficient ether for everyone to withdraw. * have sufficient ether for everyone to withdraw.
*/ */
contract Factory {
function deployContract() returns (address);
}
contract Target { contract Target {
function checkInvariant() returns(bool); function checkInvariant() returns(bool);
} }
...@@ -21,8 +25,8 @@ contract Bounty is PullPayment { ...@@ -21,8 +25,8 @@ contract Bounty is PullPayment {
if (claimed) throw; if (claimed) throw;
} }
function createTarget(address targetAddress) returns(Target) { function createTarget(address factoryAddress) returns(Target) {
target = Target(targetAddress); target = Target(Factory(factoryAddress).deployContract());
researchers[target] = msg.sender; researchers[target] = msg.sender;
return target; return target;
} }
......
...@@ -5,3 +5,9 @@ contract InsecureTargetMock { ...@@ -5,3 +5,9 @@ contract InsecureTargetMock {
return false; return false;
} }
} }
contract Deployer {
function deployContract() returns (address) {
return new InsecureTargetMock();
}
}
...@@ -5,3 +5,9 @@ contract SecureTargetMock { ...@@ -5,3 +5,9 @@ contract SecureTargetMock {
return true; return true;
} }
} }
contract Deployer {
function deployContract() returns (address) {
return new SecureTargetMock();
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment