def localSnapshot(fixture, baseSnapshot): fixture.resetToSnapshot(baseSnapshot) controller = fixture.upload('../source/contracts/Controller.sol') assert fixture.contracts['Controller'].owner() == bytesToHexString(tester.a0) fixture.upload('solidity_test_helpers/ControllerUser.sol') fixture.uploadAugur() return fixture.createSnapshot()
def localSnapshot(fixture, augurInitializedWithMocksSnapshot): fixture.resetToSnapshot(augurInitializedWithMocksSnapshot) controller = fixture.contracts['Controller'] mockCash = fixture.contracts['MockCash'] mockAugur = fixture.contracts['MockAugur'] mockInitialReporter = fixture.contracts['MockInitialReporter'] mockDisputeCrowdsourcer = fixture.contracts['MockDisputeCrowdsourcer'] mockShareTokenFactory = fixture.contracts['MockShareTokenFactory'] mockInitialReporterFactory = fixture.contracts['MockInitialReporterFactory'] mockDisputeCrowdsourcerFactory = fixture.contracts['MockDisputeCrowdsourcerFactory'] mockShareToken = fixture.contracts['MockShareToken'] # pre populate share tokens for max of 8 possible outcomes for index in range(8): item = fixture.uploadAndAddToController('solidity_test_helpers/MockShareToken.sol', 'newMockShareToken' + str(index)); mockShareTokenFactory.pushCreateShareToken(item.address) controller.registerContract(stringToBytes('Cash'), mockCash.address, twentyZeros, thirtyTwoZeros) controller.registerContract(stringToBytes('ShareTokenFactory'), mockShareTokenFactory.address, twentyZeros, thirtyTwoZeros) controller.registerContract(stringToBytes('InitialReporterFactory'), mockInitialReporterFactory.address, twentyZeros, thirtyTwoZeros) controller.registerContract(stringToBytes('DisputeCrowdsourcerFactory'), mockDisputeCrowdsourcerFactory.address, twentyZeros, thirtyTwoZeros) mockShareTokenFactory.resetCreateShareToken() mockReputationToken = fixture.contracts['MockReputationToken'] mockUniverse = fixture.contracts['MockUniverse'] mockUniverse.setReputationToken(mockReputationToken.address) mockFeeWindow = fixture.contracts['MockFeeWindow'] mockFeeWindow.setReputationToken(mockReputationToken.address) mockFeeWindow.setUniverse(mockUniverse.address) mockNextFeeWindow = fixture.upload('solidity_test_helpers/MockFeeWindow.sol', 'mockNextFeeWindow') mockNextFeeWindow.setReputationToken(mockReputationToken.address) mockNextFeeWindow.setUniverse(mockUniverse.address) mockInitialReporterFactory.setInitialReporter(mockInitialReporter.address) mockDisputeCrowdsourcerFactory.setDisputeCrowdsourcer(mockDisputeCrowdsourcer.address) constants = fixture.contracts['Constants'] market = fixture.upload('../source/contracts/reporting/Market.sol', 'market') fixture.contracts["initializedMarket"] = market contractMap = fixture.upload('../source/contracts/libraries/collections/Map.sol', 'Map') endTime = fixture.contracts["Time"].getTimestamp() + constants.DESIGNATED_REPORTING_DURATION_SECONDS() market.setController(fixture.contracts["Controller"].address) mockUniverse.setForkingMarket(longToHexString(0)) mockUniverse.setOrCacheDesignatedReportNoShowBond(100) mockReputationToken.setBalanceOf(100) mockUniverse.setOrCacheTargetReporterGasCosts(15) mockUniverse.setOrCacheValidityBond(12) mockUniverse.setNextFeeWindow(mockNextFeeWindow.address) mockFeeWindow.setEndTime(fixture.contracts["Time"].getTimestamp() + constants.DESIGNATED_REPORTING_DURATION_SECONDS()) mockNextFeeWindow.setEndTime(mockFeeWindow.getEndTime() + constants.DESIGNATED_REPORTING_DURATION_SECONDS()) assert market.initialize(mockUniverse.address, endTime, 16, mockCash.address, tester.a1, tester.a2, 5, numTicks, value=100) return fixture.createSnapshot()
def localSnapshot(fixture, kitchenSinkSnapshot): fixture.resetToSnapshot(kitchenSinkSnapshot) augur = fixture.contracts["Augur"] kitchenSinkSnapshot['zeroX'] = fixture.upload('solidity_test_helpers/ZeroX/ZeroXPoC.sol', "zeroX", constructorArgs=[augur.address]) market = ABIContract(fixture.chain, kitchenSinkSnapshot['yesNoMarket'].translator, kitchenSinkSnapshot['yesNoMarket'].address) return fixture.createSnapshot()
def localSnapshot(fixture, augurInitializedWithMocksSnapshot): fixture.resetToSnapshot(augurInitializedWithMocksSnapshot) controller = fixture.contracts['Controller'] mockReputationTokenFactory = fixture.contracts[ 'MockReputationTokenFactory'] mockFeeWindowFactory = fixture.contracts['MockFeeWindowFactory'] mockMarketFactory = fixture.contracts['MockMarketFactory'] mockUniverseFactory = fixture.contracts['MockUniverseFactory'] controller.registerContract(stringToBytes('MarketFactory'), mockMarketFactory.address, twentyZeros, thirtyTwoZeros) controller.registerContract(stringToBytes('ReputationTokenFactory'), mockReputationTokenFactory.address, twentyZeros, thirtyTwoZeros) controller.registerContract(stringToBytes('FeeWindowFactory'), mockFeeWindowFactory.address, twentyZeros, thirtyTwoZeros) controller.registerContract(stringToBytes('UniverseFactory'), mockUniverseFactory.address, twentyZeros, thirtyTwoZeros) mockReputationToken = fixture.contracts['MockReputationToken'] mockUniverse = fixture.contracts['MockUniverse'] universe = fixture.upload('../source/contracts/reporting/Universe.sol', 'universe') fixture.contracts['populatedUniverse'] = universe mockReputationTokenFactory.setCreateReputationTokenValue( mockReputationToken.address) universe.setController(fixture.contracts['Controller'].address) assert universe.initialize(mockUniverse.address, stringToBytes("5")) return fixture.createSnapshot()
def localSnapshot(fixture, augurInitializedWithMocksSnapshot): fixture.resetToSnapshot(augurInitializedWithMocksSnapshot) controller = fixture.contracts['Controller'] mockCash = fixture.contracts['MockCash'] mockAugur = fixture.contracts['MockAugur'] mockFeeToken = fixture.contracts['MockFeeToken'] mockFeeTokenFactory = fixture.contracts['MockFeeTokenFactory'] mockFeeTokenFactory.setCreateFeeToken(mockFeeToken.address) mockReputationToken = fixture.contracts['MockReputationToken'] controller.registerContract(stringToBytes('Cash'), mockCash.address, twentyZeros, thirtyTwoZeros) controller.registerContract(stringToBytes('Augur'), mockAugur.address, twentyZeros, thirtyTwoZeros) controller.registerContract(stringToBytes('FeeTokenFactory'), mockFeeTokenFactory.address, twentyZeros, thirtyTwoZeros) feeWindow = fixture.upload('../source/contracts/reporting/FeeWindow.sol', 'feeWindow') fixture.contracts["initializedFeeWindow"] = feeWindow feeWindow.setController(fixture.contracts["Controller"].address) mockUniverse = fixture.contracts['MockUniverse'] mockUniverse.setReputationToken(mockReputationToken.address) mockUniverse.setDisputeRoundDurationInSeconds(5040) mockUniverse.setForkingMarket(5040) mockUniverse.setForkingMarket(longToHexString(0)) mockUniverse.setIsForking(False) fixture.contracts["Time"].setTimestamp(feeWindowId) feeWindow.initialize(mockUniverse.address, feeWindowId) return fixture.createSnapshot()
def localSnapshot(fixture, augurInitializedWithMocksSnapshot): fixture.resetToSnapshot(augurInitializedWithMocksSnapshot) augur = fixture.contracts['Augur'] # TODO registering these mock contracts fails because the real contracts are already registered # but *not* registering the real contracts causes all other tests to fail mockReputationTokenFactory = fixture.contracts[ 'MockReputationTokenFactory'] mockDisputeWindowFactory = fixture.contracts['MockDisputeWindowFactory'] mockMarketFactory = fixture.contracts['MockMarketFactory'] mockUniverseFactory = fixture.contracts['MockUniverseFactory'] augur.registerContract(stringToBytes('MarketFactory'), mockMarketFactory.address) augur.registerContract(stringToBytes('ReputationTokenFactory'), mockReputationTokenFactory.address) augur.registerContract(stringToBytes('DisputeWindowFactory'), mockDisputeWindowFactory.address) augur.registerContract(stringToBytes('UniverseFactory'), mockUniverseFactory.address) mockReputationToken = fixture.contracts['MockReputationToken'] mockUniverse = fixture.contracts['MockUniverse'] mockReputationTokenFactory.set_mock_createReputationToken_0_address_address_address( mockReputationToken.address) universe = fixture.upload('../source/contracts/reporting/Universe.sol', 'universe', constructorArgs=[ fixture.contracts['Augur'].address, mockUniverse.address, stringToBytes("5") ]) fixture.contracts['populatedUniverse'] = universe return fixture.createSnapshot()
def localSnapshot(fixture, augurInitializedWithMocksSnapshot): fixture.resetToSnapshot(augurInitializedWithMocksSnapshot) controller = fixture.contracts['Controller'] mockCash = fixture.contracts['MockCash'] mockAugur = fixture.contracts['MockAugur'] mockFeeToken = fixture.contracts['MockFeeToken'] mockFeeTokenFactory = fixture.contracts['MockFeeTokenFactory'] mockFeeTokenFactory.setCreateFeeToken(mockFeeToken.address) mockReputationToken = fixture.contracts['MockReputationToken'] controller.registerContract(stringToBytes('Cash'), mockCash.address, twentyZeros, thirtyTwoZeros) controller.registerContract(stringToBytes('Augur'), mockAugur.address, twentyZeros, thirtyTwoZeros) controller.registerContract(stringToBytes('FeeTokenFactory'), mockFeeTokenFactory.address, twentyZeros, thirtyTwoZeros) feeWindow = fixture.upload('../source/contracts/reporting/FeeWindow.sol', 'feeWindow') fixture.contracts["initializedFeeWindow"] = feeWindow feeWindow.setController(fixture.contracts["Controller"].address) mockUniverse = fixture.contracts['MockUniverse'] mockUniverse.setReputationToken(mockReputationToken.address) mockUniverse.setDisputeRoundDurationInSeconds(5040) mockUniverse.setForkingMarket(5040) mockUniverse.setForkingMarket(longToHexString(0)) mockUniverse.setIsForking(False) fixture.contracts["Time"].setTimestamp(feeWindowId) feeWindow.initialize(mockUniverse.address, feeWindowId) return fixture.createSnapshot()
def localSnapshot(fixture, augurInitializedWithMocksSnapshot): fixture.resetToSnapshot(augurInitializedWithMocksSnapshot) controller = fixture.contracts['Controller'] mockReputationTokenFactory = fixture.contracts[ 'MockReputationTokenFactory'] mockDisputeWindowFactory = fixture.contracts['MockDisputeWindowFactory'] mockMarketFactory = fixture.contracts['MockMarketFactory'] mockUniverseFactory = fixture.contracts['MockUniverseFactory'] controller.registerContract(stringToBytes('MarketFactory'), mockMarketFactory.address) controller.registerContract(stringToBytes('ReputationTokenFactory'), mockReputationTokenFactory.address) controller.registerContract(stringToBytes('DisputeWindowFactory'), mockDisputeWindowFactory.address) controller.registerContract(stringToBytes('UniverseFactory'), mockUniverseFactory.address) mockReputationToken = fixture.contracts['MockReputationToken'] mockUniverse = fixture.contracts['MockUniverse'] mockReputationTokenFactory.setCreateReputationTokenValue( mockReputationToken.address) universe = fixture.upload('../source/contracts/reporting/Universe.sol', 'universe', constructorArgs=[ fixture.contracts['Controller'].address, mockUniverse.address, stringToBytes("5") ]) fixture.contracts['populatedUniverse'] = universe return fixture.createSnapshot()
def localSnapshot(fixture, augurInitializedWithMocksSnapshot): fixture.resetToSnapshot(augurInitializedWithMocksSnapshot) controller = fixture.contracts['Controller'] mockMarketFactory = fixture.contracts['MockMarketFactory'] mockUniverseFactory = fixture.contracts['MockUniverseFactory'] controller.registerContract(stringToBytes('MarketFactory'), mockMarketFactory.address, twentyZeros, thirtyTwoZeros) controller.registerContract(stringToBytes('UniverseFactory'), mockUniverseFactory.address, twentyZeros, thirtyTwoZeros) mockUniverse = fixture.contracts['MockUniverse'] universe = fixture.upload('../source/contracts/Universe.sol', 'universe') fixture.contracts['populatedUniverse'] = universe universe.setController(fixture.contracts['Controller'].address) return fixture.createSnapshot()
def localSnapshot(fixture, augurInitializedWithMocksSnapshot): fixture.resetToSnapshot(augurInitializedWithMocksSnapshot) augur = fixture.contracts['Augur'] mockCash = fixture.contracts['MockCash'] mockAugur = fixture.contracts['MockAugur'] mockReputationToken = fixture.contracts['MockReputationToken'] augur.registerContract(stringToBytes('Cash'), mockCash.address) augur.registerContract(stringToBytes('Augur'), mockAugur.address) disputeWindow = fixture.upload('../source/contracts/reporting/DisputeWindow.sol', 'disputeWindow') fixture.contracts["initializedDisputeWindow"] = disputeWindow mockUniverse = fixture.contracts['MockUniverse'] mockUniverse.setReputationToken(mockReputationToken.address) mockUniverse.setDisputeRoundDurationInSeconds(5040) mockUniverse.setForkingMarket(5040) mockUniverse.setForkingMarket(longToHexString(0)) mockUniverse.setIsForking(False) fixture.contracts["Time"].setTimestamp(disputeWindowId) disputeWindow.initialize(mockUniverse.address, disputeWindowId) return fixture.createSnapshot()
def localSnapshot(fixture, augurInitializedWithMocksSnapshot): fixture.resetToSnapshot(augurInitializedWithMocksSnapshot) controller = fixture.contracts['Controller'] mockReputationTokenFactory = fixture.contracts['MockReputationTokenFactory'] mockFeeWindowFactory = fixture.contracts['MockFeeWindowFactory'] mockMarketFactory = fixture.contracts['MockMarketFactory'] mockUniverseFactory = fixture.contracts['MockUniverseFactory'] controller.registerContract(stringToBytes('MarketFactory'), mockMarketFactory.address, twentyZeros, thirtyTwoZeros) controller.registerContract(stringToBytes('ReputationTokenFactory'), mockReputationTokenFactory.address, twentyZeros, thirtyTwoZeros) controller.registerContract(stringToBytes('FeeWindowFactory'), mockFeeWindowFactory.address, twentyZeros, thirtyTwoZeros) controller.registerContract(stringToBytes('UniverseFactory'), mockUniverseFactory.address, twentyZeros, thirtyTwoZeros) mockReputationToken = fixture.contracts['MockReputationToken'] mockUniverse = fixture.contracts['MockUniverse'] universe = fixture.upload('../source/contracts/reporting/Universe.sol', 'universe') fixture.contracts['populatedUniverse'] = universe mockReputationTokenFactory.setCreateReputationTokenValue(mockReputationToken.address) universe.setController(fixture.contracts['Controller'].address) assert universe.initialize(mockUniverse.address, stringToBytes("5")) return fixture.createSnapshot()
def localSnapshot(fixture, augurInitializedWithMocksSnapshot): fixture.resetToSnapshot(augurInitializedWithMocksSnapshot) controller = fixture.contracts['Controller'] mockTestNetDenominationToken = fixture.contracts[ 'MockTestNetDenominationToken'] mockAugurLite = fixture.contracts['MockAugurLite'] mockShareTokenFactory = fixture.contracts['MockShareTokenFactory'] mockShareToken = fixture.contracts['MockShareToken'] # pre populate share tokens for max of 8 possible outcomes for index in range(8): item = fixture.uploadAndAddToController( 'solidity_test_helpers/MockShareToken.sol', 'newMockShareToken' + str(index)) mockShareTokenFactory.pushCreateShareToken(item.address) controller.registerContract(stringToBytes('MockTestNetDenominationToken'), mockTestNetDenominationToken.address, twentyZeros, thirtyTwoZeros) controller.registerContract(stringToBytes('ShareTokenFactory'), mockShareTokenFactory.address, twentyZeros, thirtyTwoZeros) mockShareTokenFactory.resetCreateShareToken() mockUniverse = fixture.contracts['MockUniverse'] mockUniverse.setDenominationToken(mockTestNetDenominationToken.address) market = fixture.upload('../source/contracts/Market.sol', 'market') fixture.contracts["initializedMarket"] = market endTime = fixture.contracts["Time"].getTimestamp() + 259200 market.setController(fixture.contracts["Controller"].address) assert market.initialize(mockUniverse.address, endTime, 16, mockTestNetDenominationToken.address, tester.a1, tester.a2, 5, numTicks) return fixture.createSnapshot()
def localSnapshot(fixture, augurInitializedWithMocksSnapshot): fixture.resetToSnapshot(augurInitializedWithMocksSnapshot) controller = fixture.contracts['Controller'] mockCash = fixture.contracts['MockCash'] mockAugur = fixture.contracts['MockAugur'] mockInitialReporter = fixture.contracts['MockInitialReporter'] mockDisputeCrowdsourcer = fixture.contracts['MockDisputeCrowdsourcer'] mockShareTokenFactory = fixture.contracts['MockShareTokenFactory'] mockInitialReporterFactory = fixture.contracts[ 'MockInitialReporterFactory'] mockDisputeCrowdsourcerFactory = fixture.contracts[ 'MockDisputeCrowdsourcerFactory'] mockShareToken = fixture.contracts['MockShareToken'] # pre populate share tokens for max of 8 possible outcomes for index in range(8): item = fixture.uploadAndAddToController( 'solidity_test_helpers/MockShareToken.sol', 'newMockShareToken' + str(index)) mockShareTokenFactory.pushCreateShareToken(item.address) controller.registerContract(stringToBytes('Cash'), mockCash.address, twentyZeros, thirtyTwoZeros) controller.registerContract(stringToBytes('ShareTokenFactory'), mockShareTokenFactory.address, twentyZeros, thirtyTwoZeros) controller.registerContract(stringToBytes('InitialReporterFactory'), mockInitialReporterFactory.address, twentyZeros, thirtyTwoZeros) controller.registerContract(stringToBytes('DisputeCrowdsourcerFactory'), mockDisputeCrowdsourcerFactory.address, twentyZeros, thirtyTwoZeros) mockShareTokenFactory.resetCreateShareToken() mockReputationToken = fixture.contracts['MockReputationToken'] mockUniverse = fixture.contracts['MockUniverse'] mockUniverse.setReputationToken(mockReputationToken.address) mockFeeWindow = fixture.contracts['MockFeeWindow'] mockFeeWindow.setReputationToken(mockReputationToken.address) mockFeeWindow.setUniverse(mockUniverse.address) mockNextFeeWindow = fixture.upload( 'solidity_test_helpers/MockFeeWindow.sol', 'mockNextFeeWindow') mockNextFeeWindow.setReputationToken(mockReputationToken.address) mockNextFeeWindow.setUniverse(mockUniverse.address) mockInitialReporterFactory.setInitialReporter(mockInitialReporter.address) mockDisputeCrowdsourcerFactory.setDisputeCrowdsourcer( mockDisputeCrowdsourcer.address) constants = fixture.contracts['Constants'] market = fixture.upload('../source/contracts/reporting/Market.sol', 'market') fixture.contracts["initializedMarket"] = market contractMap = fixture.upload( '../source/contracts/libraries/collections/Map.sol', 'Map') endTime = fixture.contracts["Time"].getTimestamp( ) + constants.DESIGNATED_REPORTING_DURATION_SECONDS() market.setController(fixture.contracts["Controller"].address) mockUniverse.setForkingMarket(longToHexString(0)) mockUniverse.setOrCacheDesignatedReportNoShowBond(100) mockReputationToken.setBalanceOf(100) mockUniverse.setOrCacheTargetReporterGasCosts(15) mockUniverse.setOrCacheValidityBond(12) mockUniverse.setNextFeeWindow(mockNextFeeWindow.address) mockFeeWindow.setEndTime(fixture.contracts["Time"].getTimestamp() + constants.DESIGNATED_REPORTING_DURATION_SECONDS()) mockNextFeeWindow.setEndTime( mockFeeWindow.getEndTime() + constants.DESIGNATED_REPORTING_DURATION_SECONDS()) assert market.initialize(mockUniverse.address, endTime, 16, mockCash.address, tester.a1, tester.a2, 5, numTicks, value=100) return fixture.createSnapshot()
def localSnapshot(fixture, baseSnapshot): fixture.resetToSnapshot(baseSnapshot) fixture.upload('solidity_test_helpers/ContractExistsHelper.sol') return fixture.createSnapshot()
def test_contract_exists(fixture): contractExistsHelper = fixture.upload('solidity_test_helpers/ContractExistsHelper.sol') assert contractExistsHelper.doesContractExist(contractExistsHelper.address) assert not contractExistsHelper.doesContractExist(nullAddress)
def localSnapshot(fixture, baseSnapshot): fixture.resetToSnapshot(baseSnapshot) fixture.upload('solidity_test_helpers/ArrayHelper.sol') return fixture.createSnapshot()
def localSnapshot(fixture, kitchenSinkSnapshot): fixture.resetToSnapshot(kitchenSinkSnapshot) augur = fixture.contracts["Augur"] kitchenSinkSnapshot['zeroX'] = fixture.upload('solidity_test_helpers/ZeroX/ZeroXPoC.sol', "zeroX", constructorArgs=[augur.address]) return fixture.createSnapshot()
def localSnapshot(fixture, controllerSnapshot): fixture.resetToSnapshot(controllerSnapshot) fixture.upload('solidity_test_helpers/ControllerUser.sol') decentralizedController = fixture.upload('../source/contracts/Controller.sol', 'decentralizedController') decentralizedController.switchModeSoOnlyEmergencyStopsAndEscapeHatchesCanBeUsed(sender = tester.k0) return fixture.createSnapshot()