diff --git a/contracts/core/lib/auction-price-libraries/IAuctionLibrary.sol b/contracts/core/lib/auction-price-libraries/IAuctionPriceCurve.sol similarity index 97% rename from contracts/core/lib/auction-price-libraries/IAuctionLibrary.sol rename to contracts/core/lib/auction-price-libraries/IAuctionPriceCurve.sol index e5dab671f..2bdfd57bb 100644 --- a/contracts/core/lib/auction-price-libraries/IAuctionLibrary.sol +++ b/contracts/core/lib/auction-price-libraries/IAuctionPriceCurve.sol @@ -23,7 +23,7 @@ pragma solidity 0.4.24; * The IAuctionLibrary interface provides a structured way to interact with any AuctionLibrary */ -interface IAuctionLibrary { +interface IAuctionPriceCurve { /* * Calculate the current priceRatio for an auction given defined price and time parameters diff --git a/contracts/core/lib/auction-price-libraries/LinearAuctionLibrary.sol b/contracts/core/lib/auction-price-libraries/LinearAuctionPriceCurve.sol similarity index 91% rename from contracts/core/lib/auction-price-libraries/LinearAuctionLibrary.sol rename to contracts/core/lib/auction-price-libraries/LinearAuctionPriceCurve.sol index 287078ea0..d22fb7d6a 100644 --- a/contracts/core/lib/auction-price-libraries/LinearAuctionLibrary.sol +++ b/contracts/core/lib/auction-price-libraries/LinearAuctionPriceCurve.sol @@ -19,15 +19,15 @@ pragma solidity 0.4.24; import { SafeMath } from "zeppelin-solidity/contracts/math/SafeMath.sol"; /** - * @title LinearAuctionLibrary + * @title LinearAuctionPriceCurve * @author Set Protocol * - * Library used in rebalancing auctions to calculate price based off of a linear curve + * Contract used in rebalancing auctions to calculate price based off of a linear curve * */ -contract LinearAuctionLibrary { +contract LinearAuctionPriceCurve { using SafeMath for uint256; /* diff --git a/contracts/mocks/core/lib/ConstantPriceAuctionLibrary.sol b/contracts/mocks/core/lib/ConstantAuctionPriceCurve.sol similarity index 90% rename from contracts/mocks/core/lib/ConstantPriceAuctionLibrary.sol rename to contracts/mocks/core/lib/ConstantAuctionPriceCurve.sol index aa067c0fb..7c85365cc 100644 --- a/contracts/mocks/core/lib/ConstantPriceAuctionLibrary.sol +++ b/contracts/mocks/core/lib/ConstantAuctionPriceCurve.sol @@ -18,14 +18,14 @@ pragma solidity 0.4.24; /** - * @title LinearAuctionLibrary + * @title ConstantAuctionPriceCurve * @author Set Protocol * - * Library used in rebalancing auctions to calculate price based off of a linear curve + * Contract used in rebalancing auctions to calculate price based off of a linear curve * */ -contract ConstantPriceAuctionLibrary { +contract ConstantAuctionPriceCurve { uint256 public constantPrice; diff --git a/test/core/lib/auction-price-libraries/linearAuctionLibrary.spec.ts b/test/core/lib/auction-price-libraries/linearAuctionPriceCurve.spec.ts similarity index 89% rename from test/core/lib/auction-price-libraries/linearAuctionLibrary.spec.ts rename to test/core/lib/auction-price-libraries/linearAuctionPriceCurve.spec.ts index 6659c0c84..f937b4cb4 100644 --- a/test/core/lib/auction-price-libraries/linearAuctionLibrary.spec.ts +++ b/test/core/lib/auction-price-libraries/linearAuctionPriceCurve.spec.ts @@ -5,7 +5,7 @@ import * as setProtocolUtils from 'set-protocol-utils'; import { Address } from 'set-protocol-utils'; import { BigNumber } from 'bignumber.js'; -import { LinearAuctionLibraryContract } from '@utils/contracts'; +import { LinearAuctionPriceCurveContract } from '@utils/contracts'; import { Blockchain } from '@utils/blockchain'; import { ERC20Wrapper } from '@utils/erc20Wrapper'; import { CoreWrapper } from '@utils/coreWrapper'; @@ -26,7 +26,7 @@ contract('LinearAuctionLibrary', accounts => { ownerAccount, ] = accounts; - let auctionLib: LinearAuctionLibraryContract; + let auctionCurve: LinearAuctionPriceCurveContract; const coreWrapper = new CoreWrapper(ownerAccount, ownerAccount); const erc20Wrapper = new ERC20Wrapper(ownerAccount); @@ -40,14 +40,14 @@ contract('LinearAuctionLibrary', accounts => { beforeEach(async () => { blockchain.saveSnapshotAsync(); - auctionLib = await coreWrapper.deployLinearAuctionLibraryAsync(); + auctionCurve = await coreWrapper.deployLinearAuctionPriceCurveAsync(); }); afterEach(async () => { blockchain.revertAsync(); }); - describe('#getCurrentPrice', async () => { + describe.only('#getCurrentPrice', async () => { let subjectAuctionStartTime: BigNumber; let subjectAuctionStartPrice: BigNumber; let subjectCurveCoefficient: BigNumber; @@ -61,7 +61,7 @@ contract('LinearAuctionLibrary', accounts => { }); async function subject(): Promise { - return auctionLib.getCurrentPrice.callAsync( + return auctionCurve.getCurrentPrice.callAsync( subjectAuctionStartTime, subjectAuctionStartPrice, subjectCurveCoefficient, diff --git a/utils/RebalancingTokenWrapper.ts b/utils/RebalancingTokenWrapper.ts index 8a083b68b..901ab1c1f 100644 --- a/utils/RebalancingTokenWrapper.ts +++ b/utils/RebalancingTokenWrapper.ts @@ -16,7 +16,8 @@ import { ONE_DAY_IN_SECONDS, DEFAULT_UNIT_SHARES, DEFAULT_REBALANCING_NATURAL_UNIT, - UNLIMITED_ALLOWANCE_IN_BASE_UNITS + UNLIMITED_ALLOWANCE_IN_BASE_UNITS, + AUCTION_TIME_INCREMENT } from './constants'; import { CoreWrapper } from './coreWrapper'; @@ -265,14 +266,12 @@ export class RebalancingTokenWrapper { return {unitShares, issueAmount}; } - public getExpectedLinearAuctionPrice( + public getExpectedLinearAuctionPrice( elapsedTime: BigNumber, curveCoefficient: BigNumber, auctionStartPrice: BigNumber ): BigNumber { - const contractTimeIncrement = new BigNumber(30); - - const elaspedTimeFromStart = elapsedTime.div(contractTimeIncrement).round(0, 3); + const elaspedTimeFromStart = elapsedTime.div(AUCTION_TIME_INCREMENT).round(0, 3); const expectedPrice = curveCoefficient.mul(elaspedTimeFromStart).add(auctionStartPrice); return expectedPrice; } diff --git a/utils/constants.ts b/utils/constants.ts index 7ae0b872e..bffd44612 100644 --- a/utils/constants.ts +++ b/utils/constants.ts @@ -13,6 +13,7 @@ export const STANDARD_NATURAL_UNIT = ether(1); export const STANDARD_QUANTITY_ISSUED: BigNumber = ether(10); export const UNLIMITED_ALLOWANCE_IN_BASE_UNITS = new BigNumber(2).pow(256).minus(1); export const ZERO: BigNumber = new BigNumber(0); +export const AUCTION_TIME_INCREMENT = new BigNumber(30); export const PRIVATE_KEYS = [ '767df558efc63b6ba9a9257e68509c38f5c48d5938a41ab191a9a073ebff7c4f', diff --git a/utils/contracts.ts b/utils/contracts.ts index e535d0402..e5b26eb10 100644 --- a/utils/contracts.ts +++ b/utils/contracts.ts @@ -10,7 +10,7 @@ import { DetailedERC20Contract } from '../types/generated/detailed_erc20'; import { ERC20WrapperMockContract } from '../types/generated/erc20_wrapper_mock'; import { InvalidReturnTokenMockContract } from '../types/generated/invalid_return_token_mock'; import { KyberNetworkWrapperContract } from '../types/generated/kyber_network_wrapper'; -import { LinearAuctionLibraryContract } from '../types/generated/linear_auction_library'; +import { LinearAuctionPriceCurveContract } from '../types/generated/linear_auction_price_curve'; import { NoDecimalTokenMockContract } from '../types/generated/no_decimal_token_mock'; import { NoXferReturnTokenMockContract } from '../types/generated/no_xfer_return_token_mock'; import { OrderLibraryMockContract } from '../types/generated/order_library_mock'; @@ -38,7 +38,7 @@ export { ERC20WrapperMockContract, InvalidReturnTokenMockContract, KyberNetworkWrapperContract, - LinearAuctionLibraryContract, + LinearAuctionPriceCurveContract, NoDecimalTokenMockContract, NoXferReturnTokenMockContract, OrderLibraryMockContract, diff --git a/utils/coreWrapper.ts b/utils/coreWrapper.ts index ef17a4939..ffe852ce9 100644 --- a/utils/coreWrapper.ts +++ b/utils/coreWrapper.ts @@ -6,7 +6,7 @@ import { AuthorizableContract, CoreContract, CoreMockContract, - LinearAuctionLibraryContract, + LinearAuctionPriceCurveContract, OrderLibraryMockContract, SetTokenContract, RebalancingSetTokenContract, @@ -23,7 +23,7 @@ const Authorizable = artifacts.require('Authorizable'); const Core = artifacts.require('Core'); const CoreMock = artifacts.require('CoreMock'); const ERC20Wrapper = artifacts.require('ERC20Wrapper'); -const LinearAuctionLibrary = artifacts.require('LinearAuctionLibrary'); +const LinearAuctionPriceCurve = artifacts.require('LinearAuctionPriceCurve'); const OrderLibrary = artifacts.require('OrderLibrary'); const OrderLibraryMock = artifacts.require('OrderLibraryMock'); const RebalancingSetToken = artifacts.require('RebalancingSetToken'); @@ -151,15 +151,15 @@ export class CoreWrapper { ); } - public async deployLinearAuctionLibraryAsync( + public async deployLinearAuctionPriceCurveAsync( from: Address = this._tokenOwnerAddress - ): Promise { - const truffleLinearAuctionLibrary = await LinearAuctionLibrary.new( + ): Promise { + const truffleLinearAuctionPriceCurve = await LinearAuctionPriceCurve.new( { from }, ); - return new LinearAuctionLibraryContract( - web3.eth.contract(truffleLinearAuctionLibrary.abi).at(truffleLinearAuctionLibrary.address), + return new LinearAuctionPriceCurveContract( + web3.eth.contract(truffleLinearAuctionPriceCurve.abi).at(truffleLinearAuctionPriceCurve.address), { from, gas: DEFAULT_GAS }, ); }