WIP Target contract creation via factory pattern
This commit is contained in:
@ -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 {
|
|||||||
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 {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
contract Deployer {
|
||||||
|
function deployContract() returns (address) {
|
||||||
|
return new InsecureTargetMock();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@ -5,3 +5,9 @@ contract SecureTargetMock {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
contract Deployer {
|
||||||
|
function deployContract() returns (address) {
|
||||||
|
return new SecureTargetMock();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user