mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Fix tests regarding contract type conversion.
This commit is contained in:
committed by
Alex Beregszaszi
parent
c8232d9759
commit
b800bfb021
@@ -54,7 +54,7 @@ contract Event {
|
||||
public
|
||||
{
|
||||
// Transfer collateral tokens to events contract
|
||||
require(collateralToken.transferFrom(msg.sender, this, collateralTokenCount));
|
||||
require(collateralToken.transferFrom(msg.sender, address(this), collateralTokenCount));
|
||||
// Issue new outcome tokens to sender
|
||||
for (uint8 i = 0; i < outcomeTokens.length; i++)
|
||||
outcomeTokens[i].issue(msg.sender, collateralTokenCount);
|
||||
|
||||
@@ -102,12 +102,12 @@ contract Campaign {
|
||||
timedTransitions
|
||||
atStage(Stages.AuctionStarted)
|
||||
{
|
||||
uint raisedAmount = eventContract.collateralToken().balanceOf(this);
|
||||
uint raisedAmount = eventContract.collateralToken().balanceOf(address(this));
|
||||
uint maxAmount = funding.sub(raisedAmount);
|
||||
if (maxAmount < amount)
|
||||
amount = maxAmount;
|
||||
// Collect collateral tokens
|
||||
require(eventContract.collateralToken().transferFrom(msg.sender, this, amount));
|
||||
require(eventContract.collateralToken().transferFrom(msg.sender, address(this), amount));
|
||||
contributions[msg.sender] = contributions[msg.sender].add(amount);
|
||||
if (amount == maxAmount)
|
||||
stage = Stages.AuctionSuccessful;
|
||||
@@ -138,7 +138,7 @@ contract Campaign {
|
||||
returns (Market)
|
||||
{
|
||||
market = marketFactory.createMarket(eventContract, marketMaker, fee);
|
||||
require(eventContract.collateralToken().approve(market, funding));
|
||||
require(eventContract.collateralToken().approve(address(market), funding));
|
||||
market.fund(funding);
|
||||
stage = Stages.MarketCreated;
|
||||
emit MarketCreation(market);
|
||||
@@ -156,7 +156,7 @@ contract Campaign {
|
||||
market.close();
|
||||
market.withdrawFees();
|
||||
eventContract.redeemWinnings();
|
||||
finalBalance = eventContract.collateralToken().balanceOf(this);
|
||||
finalBalance = eventContract.collateralToken().balanceOf(address(this));
|
||||
stage = Stages.MarketClosed;
|
||||
emit MarketClosing();
|
||||
}
|
||||
|
||||
@@ -60,8 +60,8 @@ contract StandardMarket is Market {
|
||||
atStage(Stages.MarketCreated)
|
||||
{
|
||||
// Request collateral tokens and allow event contract to transfer them to buy all outcomes
|
||||
require( eventContract.collateralToken().transferFrom(msg.sender, this, _funding)
|
||||
&& eventContract.collateralToken().approve(eventContract, _funding));
|
||||
require( eventContract.collateralToken().transferFrom(msg.sender, address(this), _funding)
|
||||
&& eventContract.collateralToken().approve(address(eventContract), _funding));
|
||||
eventContract.buyAllOutcomes(_funding);
|
||||
funding = _funding;
|
||||
stage = Stages.MarketFunded;
|
||||
@@ -76,7 +76,7 @@ contract StandardMarket is Market {
|
||||
{
|
||||
uint8 outcomeCount = eventContract.getOutcomeCount();
|
||||
for (uint8 i = 0; i < outcomeCount; i++)
|
||||
require(eventContract.outcomeTokens(i).transfer(creator, eventContract.outcomeTokens(i).balanceOf(this)));
|
||||
require(eventContract.outcomeTokens(i).transfer(creator, eventContract.outcomeTokens(i).balanceOf(address(this))));
|
||||
stage = Stages.MarketClosed;
|
||||
emit MarketClosing();
|
||||
}
|
||||
@@ -88,7 +88,7 @@ contract StandardMarket is Market {
|
||||
isCreator
|
||||
returns (uint fees)
|
||||
{
|
||||
fees = eventContract.collateralToken().balanceOf(this);
|
||||
fees = eventContract.collateralToken().balanceOf(address(this));
|
||||
// Transfer fees
|
||||
require(eventContract.collateralToken().transfer(creator, fees));
|
||||
emit FeeWithdrawal(fees);
|
||||
@@ -112,8 +112,8 @@ contract StandardMarket is Market {
|
||||
// Check cost doesn't exceed max cost
|
||||
require(cost > 0 && cost <= maxCost);
|
||||
// Transfer tokens to markets contract and buy all outcomes
|
||||
require( eventContract.collateralToken().transferFrom(msg.sender, this, cost)
|
||||
&& eventContract.collateralToken().approve(eventContract, outcomeTokenCost));
|
||||
require( eventContract.collateralToken().transferFrom(msg.sender, address(this), cost)
|
||||
&& eventContract.collateralToken().approve(address(eventContract), outcomeTokenCost));
|
||||
// Buy all outcomes
|
||||
eventContract.buyAllOutcomes(outcomeTokenCost);
|
||||
// Transfer outcome tokens to buyer
|
||||
@@ -142,7 +142,7 @@ contract StandardMarket is Market {
|
||||
// Check profit is not too low
|
||||
require(profit > 0 && profit >= minProfit);
|
||||
// Transfer outcome tokens to markets contract to sell all outcomes
|
||||
require(eventContract.outcomeTokens(outcomeTokenIndex).transferFrom(msg.sender, this, outcomeTokenCount));
|
||||
require(eventContract.outcomeTokens(outcomeTokenIndex).transferFrom(msg.sender, address(this), outcomeTokenCount));
|
||||
// Sell all outcomes
|
||||
eventContract.sellAllOutcomes(outcomeTokenProfit);
|
||||
// Transfer profit to seller
|
||||
@@ -164,11 +164,11 @@ contract StandardMarket is Market {
|
||||
returns (uint cost)
|
||||
{
|
||||
// Buy all outcomes
|
||||
require( eventContract.collateralToken().transferFrom(msg.sender, this, outcomeTokenCount)
|
||||
&& eventContract.collateralToken().approve(eventContract, outcomeTokenCount));
|
||||
require( eventContract.collateralToken().transferFrom(msg.sender, address(this), outcomeTokenCount)
|
||||
&& eventContract.collateralToken().approve(address(eventContract), outcomeTokenCount));
|
||||
eventContract.buyAllOutcomes(outcomeTokenCount);
|
||||
// Short sell selected outcome
|
||||
eventContract.outcomeTokens(outcomeTokenIndex).approve(this, outcomeTokenCount);
|
||||
eventContract.outcomeTokens(outcomeTokenIndex).approve(address(this), outcomeTokenCount);
|
||||
uint profit = this.sell(outcomeTokenIndex, outcomeTokenCount, minProfit);
|
||||
cost = outcomeTokenCount - profit;
|
||||
// Transfer outcome tokens to buyer
|
||||
|
||||
@@ -95,14 +95,14 @@ contract FutarchyOracle is Oracle {
|
||||
isCreator
|
||||
{
|
||||
// Buy all outcomes
|
||||
require( categoricalEvent.collateralToken().transferFrom(creator, this, funding)
|
||||
&& categoricalEvent.collateralToken().approve(categoricalEvent, funding));
|
||||
require( categoricalEvent.collateralToken().transferFrom(creator, address(this), funding)
|
||||
&& categoricalEvent.collateralToken().approve(address(categoricalEvent), funding));
|
||||
categoricalEvent.buyAllOutcomes(funding);
|
||||
// Fund each market with outcome tokens from categorical event
|
||||
for (uint8 i = 0; i < markets.length; i++) {
|
||||
Market market = markets[i];
|
||||
// Approve funding for market
|
||||
require(market.eventContract().collateralToken().approve(market, funding));
|
||||
require(market.eventContract().collateralToken().approve(address(market), funding));
|
||||
market.fund(funding);
|
||||
}
|
||||
emit FutarchyFunding(funding);
|
||||
@@ -122,7 +122,7 @@ contract FutarchyOracle is Oracle {
|
||||
market.withdrawFees();
|
||||
// Redeem collateral token for winning outcome tokens and transfer collateral tokens to creator
|
||||
categoricalEvent.redeemWinnings();
|
||||
require(categoricalEvent.collateralToken().transfer(creator, categoricalEvent.collateralToken().balanceOf(this)));
|
||||
require(categoricalEvent.collateralToken().transfer(creator, categoricalEvent.collateralToken().balanceOf(address(this))));
|
||||
emit FutarchyClosing();
|
||||
}
|
||||
|
||||
|
||||
@@ -92,7 +92,7 @@ contract UltimateOracle is Oracle {
|
||||
// There was no challenge yet or the challenge period expired
|
||||
require( !isChallenged()
|
||||
&& !isChallengePeriodOver()
|
||||
&& collateralToken.transferFrom(msg.sender, this, challengeAmount));
|
||||
&& collateralToken.transferFrom(msg.sender, address(this), challengeAmount));
|
||||
outcomeAmounts[msg.sender][_outcome] = challengeAmount;
|
||||
totalOutcomeAmounts[_outcome] = challengeAmount;
|
||||
totalAmount = challengeAmount;
|
||||
@@ -113,7 +113,7 @@ contract UltimateOracle is Oracle {
|
||||
// Outcome is challenged and front runner period is not over yet and tokens can be transferred
|
||||
require( isChallenged()
|
||||
&& !isFrontRunnerPeriodOver()
|
||||
&& collateralToken.transferFrom(msg.sender, this, amount));
|
||||
&& collateralToken.transferFrom(msg.sender, address(this), amount));
|
||||
outcomeAmounts[msg.sender][_outcome] = outcomeAmounts[msg.sender][_outcome].add(amount);
|
||||
totalOutcomeAmounts[_outcome] = totalOutcomeAmounts[_outcome].add(amount);
|
||||
totalAmount = totalAmount.add(amount);
|
||||
|
||||
Reference in New Issue
Block a user