mirror of
https://github.com/status-im/airbyte-custom-connector.git
synced 2025-02-18 20:06:57 +00:00
fixing invalid token problems
Token where the smartcontract was destroyed have invalid balance breaking dbt tranformation. Signed-off-by: Alexis Pentori <alexis@status.im>
This commit is contained in:
parent
967db04e30
commit
8444b3e731
@ -35,13 +35,13 @@
|
|||||||
"balance": {
|
"balance": {
|
||||||
"type": [
|
"type": [
|
||||||
"null",
|
"null",
|
||||||
"numeric"
|
"number"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"decimal": {
|
"decimal": {
|
||||||
"type": [
|
"type": [
|
||||||
"null",
|
"null",
|
||||||
"integer"
|
"number"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -55,7 +55,10 @@ class Token(HttpStream):
|
|||||||
logging.info("Fetching Tokens balance information")
|
logging.info("Fetching Tokens balance information")
|
||||||
tokens_data=response.json()['tokens']
|
tokens_data=response.json()['tokens']
|
||||||
for t in tokens_data:
|
for t in tokens_data:
|
||||||
yield extract_token(t)
|
try:
|
||||||
|
yield extract_token(t)
|
||||||
|
except Exception as e:
|
||||||
|
logger.error('Dropping token not valid %s' % t )
|
||||||
# Source
|
# Source
|
||||||
class SourceWalletFetcher(AbstractSource):
|
class SourceWalletFetcher(AbstractSource):
|
||||||
def check_connection(self, logger, config) -> Tuple[bool, any]:
|
def check_connection(self, logger, config) -> Tuple[bool, any]:
|
||||||
|
@ -3,22 +3,22 @@ import json
|
|||||||
|
|
||||||
|
|
||||||
def extract_token(token_data):
|
def extract_token(token_data):
|
||||||
name= 'No Name' if 'name' not in token_data['tokenInfo'] else token_data['tokenInfo']['name']
|
|
||||||
description= 'No description available' if 'description' not in token_data['tokenInfo'] else token_data['tokenInfo']['description']
|
description= 'No description available' if 'description' not in token_data['tokenInfo'] else token_data['tokenInfo']['description']
|
||||||
symbol= 'No Symbol' if 'symbol' not in token_data['tokenInfo'] else token_data['tokenInfo']['symbol']
|
symbol= 'No Symbol' if 'symbol' not in token_data['tokenInfo'] else token_data['tokenInfo']['symbol']
|
||||||
try:
|
try:
|
||||||
|
if token_data['tokenInfo']['decimals'] == '22270923681254677845691103109158760375340177724800803888364822332811285364736':
|
||||||
|
# The data is not valid, droping it.
|
||||||
|
raise Exception('Not a valid token')
|
||||||
token = {
|
token = {
|
||||||
"name": name,
|
"name": token_data['tokenInfo']['name'],
|
||||||
"symbol": symbol,
|
"symbol": symbol,
|
||||||
"description": description,
|
"description": description,
|
||||||
"address":token_data['tokenInfo']['address'],
|
"address":token_data['tokenInfo']['address'],
|
||||||
"chain": "Ethereum",
|
"chain": "Ethereum",
|
||||||
"balance": token_data['rawBalance'],
|
"balance": token_data['balance'],
|
||||||
"decimal": token_data['tokenInfo']['decimals']
|
"decimal": token_data['tokenInfo']['decimals']
|
||||||
}
|
}
|
||||||
return token
|
return token
|
||||||
except KeyError:
|
except KeyError:
|
||||||
logging.error("Error when trying to extract data from token %s" % tokens_data)
|
raise Exception('Not a valid token')
|
||||||
return None
|
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user