Pass factory address at contract creation phase

pull/35/head
Makoto Inoue 8 years ago
parent a02a8a6e41
commit 721d8fbbf7
  1. 9
      contracts/bounties/SimpleTokenBounty.sol
  2. 28
      test/Bounty.js

@ -16,16 +16,21 @@ contract Target {
function checkInvariant() returns(bool);
}
contract Bounty is PullPayment {
contract SimpleTokenBounty is PullPayment {
Target target;
bool public claimed;
address public factoryAddress;
mapping(address => address) public researchers;
function() {
if (claimed) throw;
}
function createTarget(address factoryAddress) returns(Target) {
function SimpleTokenBounty(address _factoryAddress){
factoryAddress = _factoryAddress;
}
function createTarget() returns(Target) {
target = Target(Factory(factoryAddress).deployContract());
researchers[target] = msg.sender;
return target;

@ -1,11 +1,27 @@
contract('Bounty', function(accounts) {
it("can call checkInvariant for InsecureTargetMock", function(done){
var bounty = Bounty.deployed();
it("can create bounty contract with factory address", function(done){
var target = SecureTargetMock.deployed();
bounty.createTarget(target.address).
then(function() {
return bounty.checkInvariant.call()
SimpleTokenBounty.new(target.address).
then(function(bounty){
return bounty.factoryAddress.call()
}).
then(function(address){
assert.equal(address, target.address)
}).
then(done);
})
it.only("can call checkInvariant for SecureTargetMock", function(done){
var bounty;
var target = SecureTargetMock.deployed();
SimpleTokenBounty.new(target.address).
then(function(_bounty) {
bounty = _bounty;
return bounty.createTarget.sendTransaction({gas:200000});
}).
// then(function() {
// return bounty.checkInvariant.call()
// }).
then(function(result) {
assert.isTrue(result);
}).
@ -13,7 +29,7 @@ contract('Bounty', function(accounts) {
})
it("can call checkInvariant for InsecureTargetMock", function(done){
var bounty = Bounty.deployed();
var bounty = SimpleTokenBounty.deployed();
var target = InsecureTargetMock.deployed();
bounty.createTarget(target.address).
then(function() {

Loading…
Cancel
Save