From 2479555980609c30991b7e449079df9ccff74d94 Mon Sep 17 00:00:00 2001 From: rengengchen Date: Wed, 6 Nov 2024 21:43:56 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=9E=E7=8E=B0=E9=83=A8=E5=88=86tronscan?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/tronscan.py | 147 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 147 insertions(+) diff --git a/api/tronscan.py b/api/tronscan.py index e69de29..f6f89a6 100644 --- a/api/tronscan.py +++ b/api/tronscan.py @@ -0,0 +1,147 @@ +import requests + +trc20token_info = { + "usdt": {"tokenId": "TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t", + "tokenAbbr": "USDT", + "tokenName": "Tether USD", + "tokenLogo": "https://static.tronscan.org/production/logo/usdtlogo.png", + "issuerAddr": "THPvaUhoh2Qn2y9THCZML3H815hhFhn5YC", + "vip": True} +} + + +class Tronscan: + def __init__(self, api_key): + self.api_key = api_key + + def accountv2(self, address): + """ + + :param address: + :return: + """ + response = requests.get(f"https://apilist.tronscanapi.com/api/accountv2?address={address}", + headers={'TRON-PRO-API-KEY': self.api_key}) + return response.json() + + def approve_change(self, contract_address, from_address, to_address, start=0, limit=20, show=3): + """ + Returns account authorization change records. + :param contract_address: Contract address + :param from_address: Originator address + :param to_address: Recipient address + :param start: Start number. Default: 0 + :param limit: Number of items per page. Default: 20 + :param show: Token type. 1: TRC20 2: TRC721 3: ALL(default) 4: TRC1155 + :return: + """ + params = { + "contract_address": contract_address, + "from_address": from_address, + "to_address": to_address, + "start": start, + "limit": limit, + "show": show, + "type": "approve", + } + headers = {'TRON-PRO-API-KEY': self.api_key} + response = requests.get("https://apilist.tronscanapi.com/api/account/approve/change", + headers=headers, params=params) + return response.json() + + def transfer_trx(self, address, start_timestamp=None, end_timestamp=None, start=0, limit=20, direction=1, + db_version=0, + reverse=True, fee=False): + """ + Returns the list of TRX transfers for a specific address. + Note : The value sum of start and limit must be less than or equal to 10000. + :param address: Query address + :param start_timestamp: Start timestamp + :param end_timestamp: End timestamp + :param start: Start number. Default: 0 + :param limit: Number of items per page. Default: 20 + :param direction: Default: 1. 1 represents inbound transfers, 2 represents outbound transfers, and 0 represents both. + :param db_version: Default: 0, which indicates to filter transfers with invalid “to” or “from” addresses out. + :param reverse: Sort the data in a descending order. Default: true + :param fee: Whether to return data of TRX burning for resource consumption. Default: false + :return: + """ + params = { + "address": address, + "start_timestamp": start_timestamp, + "end_timestamp": end_timestamp, + "start": start, + "limit": limit, + "direction": direction, + "db_version": db_version, + "reverse": reverse, + "fee": fee, + } + headers = {'TRON-PRO-API-KEY': self.api_key} + response = requests.get("https://apilist.tronscanapi.com/api/transfer/trx", + headers=headers, params=params) + return response.json() + + def transfer_token10(self, address, trc10Id, start_timestamp=None, end_timestamp=None, start=0, limit=20, + direction=1, db_version=0, reverse=True): + """ + Returns the transfer list of a TRC10 token for a specific account. + Note : The value sum of start and limit must be less than or equal to 10000. + :param address: Query address + :param trc10Id: TRC10 token ID + :param start_timestamp: Start timestamp + :param end_timestamp: End timestamp + :param start: Start number. Default: 0 + :param limit: Number of items per page. Default: 20 + :param direction: Default: 1. 1 represents inbound transfers, 2 represents outbound transfers, and 0 represents both. + :param db_version: Default: 0, which indicates to filter transfers with invalid “to” or “from” addresses out. + :param reverse: Sort the data in a descending order. Default: true + :return: + """ + params = { + "address": address, + "trc10Id": trc10Id, + "start_timestamp": start_timestamp, + "end_timestamp": end_timestamp, + "start": start, + "limit": limit, + "direction": direction, + "db_version": db_version, + "reverse": reverse, + } + headers = {'TRON-PRO-API-KEY': self.api_key} + response = requests.get("https://apilist.tronscanapi.com/api/transfer/token10", + headers=headers, params=params) + return response.json() + + def transfer_trc20(self, address, trc20Id, start_timestamp=None, end_timestamp=None, start=0, limit=20, + direction=1, db_version=0, reverse=True): + """ + Returns the transfer list of a TRC20 token for a specific account. + Note : The value sum of start and limit must be less than or equal to 10000. + :param address: Query address + :param trc20Id: TRC20 token ID + :param start_timestamp: Start timestamp + :param end_timestamp: End timestamp + :param start: Start number. Default: 0 + :param limit: Number of items per page. Default: 20 + :param direction: Default: 1. 1 represents inbound transfers, 2 represents outbound transfers, and 0 represents both. + :param db_version: Default: 0, which indicates to filter transfers with invalid “to” or “from” addresses out. + :param reverse: Sort the data in a descending order. Default: true + :return: + """ + params = { + "address": address, + "trc20Id": trc20Id, + "start_timestamp": start_timestamp, + "end_timestamp": end_timestamp, + "start": start, + "limit": limit, + "direction": direction, + "db_version": db_version, + "reverse": reverse, + } + headers = {'TRON-PRO-API-KEY': self.api_key} + response = requests.get("https://apilist.tronscanapi.com/api/transfer/trc20", + headers=headers, params=params) + return response.json()