Exemple #1
0
def test_data_token_event_registered(alice_wallet, dtfactory_address, alice_ocean):
    """Tests that a token registration event is created and can be retrieved."""
    dtfactory = DTFactory(dtfactory_address)

    dt_address = dtfactory.createToken(
        "foo_blob", "DT1", "DT1", to_base_18(1000.0), from_wallet=alice_wallet
    )
    dt = DataToken(dtfactory.get_token_address(dt_address))
    block = alice_ocean.web3.eth.blockNumber

    # with explicit address
    registered_event = dtfactory.get_token_registered_event(
        block - 1, block + 1, token_address=dt.address
    )

    assert registered_event.args.tokenAddress == dt.address
Exemple #2
0
def test_data_token_event_registered(
    web3, alice_wallet, dtfactory_address, alice_ocean
):
    """Tests that a token registration event is created and can be retrieved."""
    dtfactory = DTFactory(web3, dtfactory_address)

    dt_address = dtfactory.createToken(
        "foo_blob", "DT1", "DT1", to_wei(1000), from_wallet=alice_wallet
    )
    dt = DataToken(web3, dtfactory.get_token_address(dt_address))
    block = alice_ocean.web3.eth.block_number

    # with explicit address
    block_confirmations = alice_ocean.config.block_confirmations.value
    registered_event = dtfactory.get_token_registered_event(
        block - (block_confirmations + 1), block, token_address=dt.address
    )

    assert registered_event.args.tokenAddress == dt.address
Exemple #3
0
    def _get_all_liquidity_records(self,
                                   action,
                                   web3,
                                   pool_address,
                                   block_number=None,
                                   to_block=None,
                                   token_address=None,
                                   raw_result=True):
        action_to_fn = {
            'join': 'get_join_logs',
            'exit': 'get_exit_logs',
            'swap': 'get_swap_logs'
        }
        current_block = to_block if to_block is not None else web3.eth.blockNumber
        pool = BPool(pool_address)
        dt_address = token_address or self.get_token_address(
            pool_address, pool)
        factory = DTFactory(get_dtfactory_address())
        if block_number is None:
            block_number = factory.get_token_registered_event(
                0, current_block, token_address=dt_address).blockNumber
        logs = getattr(pool, action_to_fn[action])(web3, block_number,
                                                   current_block)
        if raw_result:
            return logs

        _all = []
        for l in logs:
            if action == 'join':
                record = (l.args.caller, l.args.tokenIn, l.args.tokenAmountIn,
                          0, 0, l.blockNumber, l.transactionHash, 'join')
            elif action == 'exit':
                record = (l.args.caller, l.args.tokenOut,
                          l.args.tokenAmountOut, 0, 0, l.blockNumber,
                          l.transactionHash, 'exit')
            else:
                assert action == 'swap', f'Unknown pool action {action}'
                record = (l.args.caller, l.args.tokenIn, l.args.tokenAmountIn,
                          l.args.tokenOut, l.args.tokenAmountOut,
                          l.blockNumber, l.transactionHash, 'swap')

            _all.append(record)
        return _all
 def search_exchange_by_data_token(self,
                                   data_token: str) -> List[AttributeDict]:
     dtfactory_address = get_dtfactory_address(self._config.address_file,
                                               web3=self._web3)
     dtfactory = DTFactory(self._web3, dtfactory_address)
     token_registered_log = dtfactory.get_token_registered_event(
         0, self._web3.eth.block_number, data_token)
     assert (token_registered_log
             ), f"No token with '{data_token}' address was created before."
     from_block = token_registered_log.blockNumber
     fre = self._exchange_contract()
     filter_args = {"dataToken": data_token}
     logs = fre.get_event_logs(
         event_name="ExchangeCreated",
         from_block=from_block,
         to_block=self._web3.eth.block_number,
         filters=filter_args,
     )
     return logs
Exemple #5
0
    def _get_all_liquidity_records(
        self,
        action,
        web3,
        pool_address,
        block_number=None,
        to_block=None,
        token_address=None,
        raw_result=True,
    ):
        action_to_fn = {
            "join": "get_join_logs",
            "exit": "get_exit_logs",
            "swap": "get_swap_logs",
        }
        current_block = to_block if to_block is not None else web3.eth.blockNumber
        pool = BPool(pool_address)
        dt_address = token_address or self.get_token_address(
            pool_address, pool)
        factory = DTFactory(get_dtfactory_address())
        if block_number is None:
            block_number = factory.get_token_registered_event(
                0, current_block, token_address=dt_address).blockNumber
        logs = getattr(pool, action_to_fn[action])(web3, block_number,
                                                   current_block)
        if raw_result:
            return logs

        _all = []
        for lg in logs:
            if action == "join":
                record = (
                    lg.args.caller,
                    lg.args.tokenIn,
                    lg.args.tokenAmountIn,
                    0,
                    0,
                    lg.blockNumber,
                    lg.transactionHash,
                    "join",
                )
            elif action == "exit":
                record = (
                    lg.args.caller,
                    lg.args.tokenOut,
                    lg.args.tokenAmountOut,
                    0,
                    0,
                    lg.blockNumber,
                    lg.transactionHash,
                    "exit",
                )
            else:
                assert action == "swap", f"Unknown pool action {action}"
                record = (
                    lg.args.caller,
                    lg.args.tokenIn,
                    lg.args.tokenAmountIn,
                    lg.args.tokenOut,
                    lg.args.tokenAmountOut,
                    lg.blockNumber,
                    lg.transactionHash,
                    "swap",
                )

            _all.append(record)
        return _all
Exemple #6
0
    def _get_all_liquidity_records(
        self,
        action,
        pool_address,
        block_number=None,
        to_block=None,
        token_address=None,
        raw_result=True,
    ):
        current_block = to_block if to_block is not None else self.web3.eth.block_number
        pool = BPool(self.web3, pool_address)
        dt_address = token_address or self.get_token_address(pool_address, pool)
        factory = DTFactory(self.web3, self.dtfactory_address)
        if block_number is None:
            block_number = factory.get_token_registered_event(
                0, current_block, token_address=dt_address
            ).blockNumber

        log_args = (block_number, current_block)
        if action == "join":
            logs = pool.get_join_logs(*log_args)
        elif action == "exit":
            logs = pool.get_exit_logs(*log_args)
        elif action == "swap":
            logs = pool.get_swap_logs(*log_args)
        else:
            raise ValueError(
                f"Invalid action: {action}. Expected 'join', 'exit', or 'swap'."
            )

        if raw_result:
            return logs

        _all = []
        for lg in logs:
            if action == "join":
                record = (
                    lg.args.caller,
                    lg.args.tokenIn,
                    lg.args.tokenAmountIn,
                    0,
                    0,
                    lg.blockNumber,
                    lg.transactionHash,
                    "join",
                )
            elif action == "exit":
                record = (
                    lg.args.caller,
                    lg.args.tokenOut,
                    lg.args.tokenAmountOut,
                    0,
                    0,
                    lg.blockNumber,
                    lg.transactionHash,
                    "exit",
                )
            else:
                assert action == "swap", f"Unknown pool action {action}"
                record = (
                    lg.args.caller,
                    lg.args.tokenIn,
                    lg.args.tokenAmountIn,
                    lg.args.tokenOut,
                    lg.args.tokenAmountOut,
                    lg.blockNumber,
                    lg.transactionHash,
                    "swap",
                )

            _all.append(record)
        return _all