Exemplo n.º 1
0
def get_token_info(queryWord):
    length_of_query_word = len(queryWord)

    if length_of_query_word == 42 or length_of_query_word == 40:
        queryWord = queryWord if length_of_query_word == 42 else "0x" + queryWord
        query_res = Token.query_token(address=queryWord)
    else:
        queryWord = queryWord.upper()
        query_res = Token.query_token(symbol=queryWord)

    if query_res:
        return [query_res.toJson()]
    return []
def test_the_change_token_revoking_method_of_user_repository(app):
    """
  GIVEN the TokenRepository instance
  WHEN the save() method is call
  THEN check session method calls and the token revoke value
  """

    from app.model import TokenRepository, Token
    token_repository = TokenRepository()
    token_repository.session = UnifiedAlchemyMagicMock()

    token = Token()
    token.id = 1
    token.jti = "27d1b1a3-45b4-4a5f-83ed-b823f5ea1dbe"
    token.token_type = "access"
    token.user_identity = "test"
    token.revoked = False
    token.expires = datetime.now()

    token_repository.session.add(token)
    token_repository.session.commit()

    token_repository.change_token_revoking(1, "test", True)
    (token_repository.session.query.return_value.filter_by.
     assert_called_once_with(id=1, user_identity="test"))
    assert token.revoked == True
def test_the_is_token_revoked_method_of_user_repository(app, mocker):
    """
  GIVEN the TokenRepository instance
  WHEN the is_token_revoked() method is call
  THEN check session method calls
  """

    from app.model import TokenRepository, Token
    token_repository = TokenRepository()
    token_repository.session = UnifiedAlchemyMagicMock()

    token = Token()
    token.id = 1
    token.jti = "27d1b1a3-45b4-4a5f-83ed-b823f5ea1dbe"
    token.token_type = "access"
    token.user_identity = "test"
    token.revoked = True
    token.expires = datetime.now()

    token_repository.session.add(token)
    token_repository.session.commit()

    decoded_token = mocker.MagicMock()
    decoded_token['jti'] = token.jti

    result = token_repository.is_token_revoked(decoded_token)
    assert result
    (token_repository.session.query.return_value.filter_by.
     assert_called_once_with(jti=decoded_token['jti']))
Exemplo n.º 4
0
    def __init__(self):

        self.mail = SendMail(app)
        self.token = Token(app)
        self.sqlite = SQLite(app)
        #self.mysql   = MySQL    (  app)
        self.dbJson = DBJson(app)
        self.cookies = Cookies
Exemplo n.º 5
0
def get_token_holding(address):
    holding_list = [
        holding.contract
        for holding in TokenHolding.query_token_holding(address)
    ]
    holding_list = get_balance_2(address, holding_list)
    res = deque([])
    for holding in holding_list:
        query_res = Token.query_token(address=holding.get("assetId"))
        if query_res:
            tmp_dict = query_res.toJson()
            tmp_dict["balance"] = holding.get("balance")

            if tmp_dict.get("tokenIcon"):
                res.appendleft(tmp_dict)
            else:
                res.append(tmp_dict)

    balances = _get_global_asset(address)
    for balance in balances:
        if balance.get("asset") == setting.NEO_ASSETID:
            neo_balance = balance.get("value")

        if balance.get("asset") == setting.GAS_ASSETID:
            gas_balance = str(Decimal(balance.get("value")) * (10**8))
    try:
        neo_balance = neo_balance
    except:
        neo_balance = "0"
    try:
        gas_balance = gas_balance
    except:
        gas_balance = "0"

    res.appendleft(
        dict(
            balance=gas_balance,
            tokenAddress=
            "0x602c79718b16e442de58778e148d0b1084e3b2dffd5de6b7b16cee7969282de7",
            tokenDecimal="8",
            tokenIcon=None,
            tokenName="GAS",
            tokenSynbol="GAS",
            tokenType="GAS"))
    res.appendleft(
        dict(
            balance=neo_balance,
            tokenAddress=
            "0xc56f33fc6ecfcd0c225c4ab356fee59390af8560be0e930faebe74a6daff7c9b",
            tokenDecimal="0",
            tokenIcon=None,
            tokenName="NEO",
            tokenSynbol="NEO",
            tokenType="NEO"))
    return list(res)
Exemplo n.º 6
0
def get_transaction_by_address(address, asset, page=1):
    query_tx = []
    if asset == setting.NEO_ASSETID or asset == setting.GAS_ASSETID:
        try:
            query_tx_ids = ContractTxMapping.query.filter(
                ContractTxMapping.address == address,
                ContractTxMapping.asset == asset).order_by(
                    ContractTxMapping.block_height.desc()).paginate(
                        page=page, per_page=8).items

        except:
            query_tx_ids = []

        decimal = 0

        for tx in query_tx_ids:
            exist_instance = ContractTxDetail.query.filter(
                ContractTxDetail.tx_id == tx.tx_id).first()
            if exist_instance:
                query_tx.append(exist_instance)

    else:
        try:
            query_tx = InvokeTx.query.filter(
                or_(InvokeTx.address_from == address,
                    InvokeTx.address_to == address),
                InvokeTx.contract == asset).order_by(
                    InvokeTx.block_timestamp.desc()).paginate(page=page,
                                                              per_page=8).items
        except Exception as e:
            runserver_logger.error(e)
            query_tx = []
        if query_tx:
            exist_instance = Token.query_token(address=asset)
            if exist_instance:
                decimal = int(exist_instance.decimal)

            else:
                decimal = 0
    txs = [
        handle_invoke_tx_decimal(item.to_json(), decimal) for item in query_tx
    ]
    txs = [
        utxo_to_account(tx, address, asset)
        if "inputs" in tx.keys() and "outputs" in tx.keys() else tx
        for tx in txs
    ]
    return txs
Exemplo n.º 7
0
def get_transaction_by_address(address, asset, page=1):
    if asset == setting.NEO_ASSETID or asset == setting.GAS_ASSETID:
        try:
            query_tx = ContractTx.query.filter(
                or_(ContractTx.address_from == address,
                    ContractTx.address_to == address),
                ContractTx.asset == asset,
            ).order_by(ContractTx.block_timestamp.desc()).paginate(
                page=page, per_page=8).items

        except:
            query_tx = []

        decimal = 0

    else:
        try:
            query_tx = InvokeTx.query.filter(
                or_(InvokeTx.address_from == address,
                    InvokeTx.address_to == address),
                InvokeTx.contract == asset).order_by(
                    InvokeTx.block_timestamp.desc()).paginate(page=page,
                                                              per_page=8).items
        except Exception as e:
            runserver_logger.error(e)
            query_tx = []
        if query_tx:
            exist_instance = Token.query_token(address=asset)
            if exist_instance:
                decimal = int(exist_instance.decimal)

            else:
                decimal = 0
    txs = [
        handle_invoke_tx_decimal(item.to_json(), decimal) for item in query_tx
    ]

    return txs
def test_the_get_user_tokens_method_of_user_repository(app):
    """
  GIVEN the TokenRepository instance
  WHEN the get_user_tokens() method is call
  THEN check the token returned
  """

    from app.model import TokenRepository, Token
    token_repository = TokenRepository()
    token_repository.session = UnifiedAlchemyMagicMock()

    jti = "27d1b1a3-45b4-4a5f-83ed-b823f5ea1dbe"
    token_type = "access"
    user_identity = "test"
    revoked = True
    expires = datetime.now()

    token = Token(jti, token_type, user_identity, revoked, expires)
    token_repository.session.add(token)
    token_repository.session.commit()

    serialized_data = {
        'id': str(token.id),
        'jti': jti,
        'token_type': token_type,
        'user_identity': user_identity,
        'revoked': revoked,
        'expires': expires
    }

    result = token_repository.get_user_tokens('test')[0]
    assert result.jti == jti
    assert result.token_type == token_type
    assert result.user_identity == user_identity
    assert result.revoked == revoked
    assert result.expires == expires
    assert result.serialize() == serialized_data
    assert str(result) == '<Token %r>' % (jti)
Exemplo n.º 9
0
	def __init__(self):

		self.mail   = SendMail (  app)
		self.token  = Token    (  app)
		self.sqlite = SQLite   (  app)
def test_the_revoke_all_tokens_method_of_user_repository(app):
    """
  GIVEN the TokenRepository instance
  WHEN the revoke_all_tokens() method is call
  THEN check session method calls
  """

    from app.model import TokenRepository, Token
    token_repository = TokenRepository()
    token_repository.session = UnifiedAlchemyMagicMock()

    acc_token = Token()
    acc_token.id = 1
    acc_token.jti = "27d1b1a3-45b4-4a5f-83ed-b823f5ea1dbe"
    acc_token.token_type = "access"
    acc_token.user_identity = "test"
    acc_token.revoked = False
    acc_token.expires = datetime.now()
    token_repository.session.add(acc_token)

    ref_token = Token()
    ref_token.id = 2
    ref_token.jti = "27d1b1a3-45b4-4a5f-83ed-b823f5ea1dbd"
    ref_token.token_type = "refresh"
    ref_token.user_identity = "test"
    ref_token.revoked = False
    ref_token.expires = datetime.now()
    token_repository.session.add(ref_token)

    token_repository.session.commit()

    token_repository.revoke_all_tokens("test")
    (token_repository.session.query.return_value.filter_by.
     assert_called_once_with(user_identity="test"))
    (token_repository.session.query.return_value.filter_by.return_value.update.
     assert_called_once_with({Token.revoked: True}))