Esempio n. 1
0
def test_factory(w3, exchange_template, HAY_token, factory, pad_bytes32,
                 exchange_abi, assert_fail):
    a0, a1 = w3.eth.accounts[:2]
    # Can't call initializeFactory on factory twice
    with raises(TransactionFailed):
        factory.initializeFactory(HAY_token.address)
    # Factory initial state
    assert factory.exchangeTemplate() == exchange_template.address
    assert factory.getExchange(HAY_token.address) == None
    # Create Exchange for MRS Token
    factory.createExchange(HAY_token.address, transact={})
    HAY_exchange_address = factory.getExchange(HAY_token.address)
    assert HAY_exchange_address != None
    HAY_exchange = ConciseContract(
        w3.eth.contract(address=HAY_exchange_address, abi=exchange_abi))
    assert factory.getToken(HAY_exchange.address) == HAY_token.address
    assert factory.tokenCount() == 1
    assert factory.getTokenWithId(1) == HAY_token.address
    # Exchange already exists
    with raises(TransactionFailed):
        factory.createExchange(HAY_token.address)
    # Can't call setup on exchange
    assert_fail(lambda: HAY_exchange.setup(factory.address))
    # Exchange initial state
    assert HAY_exchange.name() == pad_bytes32('Marswap V1')
    assert HAY_exchange.symbol() == pad_bytes32('MRS-V1')
    assert HAY_exchange.decimals() == 18
    assert HAY_exchange.totalSupply() == 0
    assert HAY_exchange.tokenAddress() == HAY_token.address
    assert HAY_exchange.factoryAddress() == factory.address
    assert w3.eth.getBalance(HAY_exchange.address) == 0
    assert HAY_token.balanceOf(HAY_exchange.address) == 0
Esempio n. 2
0
def test_factory(w3, exchange_template, HAY_token, exchange_factory, pad_bytes32, exchange_abi):
    a0, a1 = w3.eth.accounts[:2]
    # Factory initial state
    assert exchange_factory.exchangeTemplate() == exchange_template.address
    assert exchange_factory.getExchange(HAY_token.address) == None
    # Create Exchange for UNI Token
    exchange_factory.createExchange(HAY_token.address, transact={})
    HAY_exchange_address = exchange_factory.getExchange(HAY_token.address)
    assert HAY_exchange_address != None
    HAY_exchange = ConciseContract(w3.eth.contract(address=HAY_exchange_address, abi=exchange_abi))
    assert exchange_factory.getToken(HAY_exchange.address) == HAY_token.address
    assert exchange_factory.tokenCount() == 1
    assert exchange_factory.getTokenWithId(1) == HAY_token.address
    # # Can't call initializeFactory on factory twice
    # assert_tx_failed(lambda: exchange_factory.initializeFactory(HAY_token.address))
    # # Exchange already exists
    # assert_tx_failed(lambda: exchange_factory.createExchange(HAY_token.address))
    # # Can't call setup on exchange
    # assert_tx_failed(lambda: HAY_exchange.setup(exchange_factory.address))
    # # Exchange initial state
    assert HAY_exchange.name() == pad_bytes32('Uniswap V1')
    assert HAY_exchange.symbol() == pad_bytes32('UNI-V1')
    assert HAY_exchange.decimals() == 18
    assert HAY_exchange.totalSupply() == 0
    assert HAY_exchange.tokenAddress() == HAY_token.address
    assert HAY_exchange.factoryAddress() == exchange_factory.address
    assert w3.eth.getBalance(HAY_exchange.address) == 0
    assert HAY_token.balanceOf(HAY_exchange.address) == 0
Esempio n. 3
0
def test_factory_for_eth(w3, eth_flash_template, factory, pad_bytes32,
                         eth_flash_abi, assert_fail):
    assert factory.getEthFlash(INTEREST_FACTOR) != None
    assert_fail(lambda: factory.getEthFlash(MAX_INTEREST_FACTOR + 1))
    assert_fail(lambda: eth_flash.setup(INTEREST_FACTOR))
    eth_flash_address = factory.getEthFlash(INTEREST_FACTOR)
    assert eth_flash_address != None
    eth_flash = ConciseContract(
        w3.eth.contract(address=eth_flash_address, abi=eth_flash_abi))

    assert w3.eth.getBalance(eth_flash.address) == 0
    assert eth_flash.factoryAddress() == factory.address
    assert eth_flash.name() == pad_bytes32('Uniflash for ETH V1')
    assert eth_flash.symbol() == pad_bytes32('UFO-V1')
    assert eth_flash.totalSupply() == 0
    assert eth_flash.interestFactor() == INTEREST_FACTOR
Esempio n. 4
0
def test_factory_for_erc20(w3, erc20_flash_template, HAY_token, factory,
                           pad_bytes32, erc20_flash_abi, assert_fail):
    assert factory.getErc20Flash(HAY_token.address, INTEREST_FACTOR) == None
    factory.createErc20Flash(HAY_token.address, transact={})
    assert_fail(
        lambda: factory.createErc20Flash(HAY_token.address, transact={}))
    assert_fail(lambda: factory.getErc20Flash(MAX_INTEREST_FACTOR + 1))
    assert_fail(lambda: eth_flash.setup(INTEREST_FACTOR))
    erc20_flash_address = factory.getErc20Flash(HAY_token.address,
                                                INTEREST_FACTOR)
    assert erc20_flash_address != None
    erc20_flash = ConciseContract(
        w3.eth.contract(address=erc20_flash_address, abi=erc20_flash_abi))

    assert w3.eth.getBalance(erc20_flash.address) == 0
    assert erc20_flash.factoryAddress() == factory.address
    assert erc20_flash.token() == HAY_token.address
    assert erc20_flash.name() == pad_bytes32('Uniflash for ETH V1')
    assert erc20_flash.symbol() == pad_bytes32('UFO-V1')
    assert erc20_flash.totalSupply() == 0
    assert erc20_flash.interestFactor() == INTEREST_FACTOR