adicionada chamada 'coin_historical_chart_data_by_token_address()'
This commit is contained in:
@ -833,7 +833,7 @@ def coin_ohlc_chart_by_id(
|
|||||||
|
|
||||||
|
|
||||||
def coin_data_by_token_address(
|
def coin_data_by_token_address(
|
||||||
id_criptomoeda: str = '',
|
id_platform: str = '',
|
||||||
contract_address: str = ''
|
contract_address: str = ''
|
||||||
) -> tuple:
|
) -> tuple:
|
||||||
'''https://docs.coingecko.com/v3.0.1/reference/coins-contract-address
|
'''https://docs.coingecko.com/v3.0.1/reference/coins-contract-address
|
||||||
@ -848,12 +848,12 @@ def coin_data_by_token_address(
|
|||||||
'contract_address': '',
|
'contract_address': '',
|
||||||
}
|
}
|
||||||
# validação de parametros
|
# validação de parametros
|
||||||
# id_criptomoeda (como 'id' é nome reservado, foi usado outro nome)
|
# id_platform (como 'id' é nome reservado, foi usado outro nome)
|
||||||
if not isinstance(id_criptomoeda, str):
|
if not isinstance(id_platform, str):
|
||||||
raise TypeError('\'id_criptomoeda\' tem de ser do tipo \'str\'')
|
raise TypeError('\'id_platform\' tem de ser do tipo \'str\'')
|
||||||
if id_criptomoeda == '':
|
if id_platform == '':
|
||||||
raise ValueError('\'id_criptomoeda\' tem de ser definido')
|
raise ValueError('\'id_platform\' tem de ser definido')
|
||||||
api_parameters['id'] = id_criptomoeda
|
api_parameters['id'] = id_platform
|
||||||
# contract_address
|
# contract_address
|
||||||
if not isinstance(contract_address, str):
|
if not isinstance(contract_address, str):
|
||||||
raise TypeError('\'contract_address\' tem de ser do tipo \'str\'')
|
raise TypeError('\'contract_address\' tem de ser do tipo \'str\'')
|
||||||
@ -874,16 +874,84 @@ def coin_data_by_token_address(
|
|||||||
# print(f'erro {codigo}: {dados}')
|
# print(f'erro {codigo}: {dados}')
|
||||||
|
|
||||||
|
|
||||||
def coin_historical_chart_data_by_token_address() -> tuple:
|
def coin_historical_chart_data_by_token_address(
|
||||||
pass
|
id_platform: str = '',
|
||||||
|
contract_address: str = '',
|
||||||
|
vs_currency: str = '',
|
||||||
|
days: str = '',
|
||||||
|
interval: str = '',
|
||||||
|
precision: str | int = 'full'
|
||||||
|
) -> tuple:
|
||||||
|
'''https://docs.coingecko.com/v3.0.1/reference/contract-address-market-chart
|
||||||
|
|
||||||
|
este endpoint permite consultar dados historicos graficos incluindo tempo UNIX,
|
||||||
|
preco, capitalização de mercado e volume 24hrs a partir da plataforma do activo e
|
||||||
|
endereco de contracto do token
|
||||||
|
'''
|
||||||
|
# dicionario parameters
|
||||||
|
api_parameters: dict = {
|
||||||
|
'id': '',
|
||||||
|
'contract_address': '',
|
||||||
|
'vs_currency': '',
|
||||||
|
'days': '',
|
||||||
|
'interval': '',
|
||||||
|
'precision': '',
|
||||||
|
}
|
||||||
|
# validacao de parametros
|
||||||
|
# id_platform (como 'id' é nome reservado, foi usado outro nome)
|
||||||
|
if not isinstance(id_platform, str):
|
||||||
|
raise TypeError('\'id_platform\' tem de ser do tipo \'str\'')
|
||||||
|
if id_platform == '':
|
||||||
|
raise ValueError('\'id_platform\' tem de ser definido')
|
||||||
|
api_parameters['id'] = id_platform
|
||||||
|
# contract_address
|
||||||
|
if not isinstance(contract_address, str):
|
||||||
|
raise TypeError('\'contract_address\' tem de ser do tipo \'str\'')
|
||||||
|
if contract_address == '':
|
||||||
|
raise ValueError('\'contract_address\' tem de ser definido')
|
||||||
|
api_parameters['contract_address'] = contract_address
|
||||||
|
# vs_currency
|
||||||
|
if not isinstance(vs_currency, str):
|
||||||
|
raise TypeError('\'vs_currency\' tem de ser do tipo \'str\'')
|
||||||
|
if vs_currency == '':
|
||||||
|
raise ValueError('\'vs_currency\' tem de ser definido')
|
||||||
|
api_parameters['vs_currency'] = vs_currency
|
||||||
|
# days
|
||||||
|
if not isinstance(days, str):
|
||||||
|
raise TypeError('\'days\' tem de ser do tipo \'str\'')
|
||||||
|
if days == '':
|
||||||
|
raise ValueError('\'days\' tem de ser definido')
|
||||||
|
api_parameters['days'] = days
|
||||||
|
# interval
|
||||||
|
if not isinstance(interval, str):
|
||||||
|
raise TypeError('\'interval\' tem de ser do tipo \'str\'')
|
||||||
|
api_parameters['interval'] = interval
|
||||||
|
# precision
|
||||||
|
if not isinstance(precision, (str, int)):
|
||||||
|
raise TypeError('\'precision\' tem de ser do tipo \'(str, int)\'')
|
||||||
|
if isinstance(precision, str):
|
||||||
|
if precision != 'full':
|
||||||
|
precision = 'full'
|
||||||
|
if precision == 'full':
|
||||||
|
precision = '18'
|
||||||
|
precision = int(precision)
|
||||||
|
if isinstance(precision, int):
|
||||||
|
if precision < 0:
|
||||||
|
precision = 0
|
||||||
|
if precision > 18:
|
||||||
|
precision = 18
|
||||||
|
precision = str(precision)
|
||||||
|
api_parameters['precision'] = precision
|
||||||
|
|
||||||
|
return API(f'coins/{api_parameters['id']}/contract/{api_parameters['contract_address']}/market_chart', api_parameters)
|
||||||
|
|
||||||
|
|
||||||
# debug (decomentar linhas seguintes para testar funcao)
|
# debug (decomentar linhas seguintes para testar funcao)
|
||||||
# url, codigo, dados = <nome_chamada_api()>
|
# url, codigo, dados = coin_historical_chart_data_by_token_address('ethereum','0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48','eur','1')
|
||||||
# print(f'url: {url}')
|
# print(f'url: {url}')
|
||||||
# if codigo == 200:
|
# if codigo == 200:
|
||||||
# for item in dados:
|
# for item in dados:
|
||||||
# print(item)
|
# print(f'{item}: {dados[item]}')
|
||||||
# else:
|
# else:
|
||||||
# print(f'erro {codigo}: {dados}')
|
# print(f'erro {codigo}: {dados}')
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user