Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/etwnn/scanwatch
Local tracker for address on Ethereum, BSC and Polygon chains
https://github.com/etwnn/scanwatch
bsc bscscan eth ethereum ethscan polygon polygonscan
Last synced: 20 days ago
JSON representation
Local tracker for address on Ethereum, BSC and Polygon chains
- Host: GitHub
- URL: https://github.com/etwnn/scanwatch
- Owner: EtWnn
- License: mit
- Created: 2021-03-30T16:18:02.000Z (over 3 years ago)
- Default Branch: master
- Last Pushed: 2022-01-05T07:52:00.000Z (almost 3 years ago)
- Last Synced: 2024-10-13T04:38:28.407Z (about 1 month ago)
- Topics: bsc, bscscan, eth, ethereum, ethscan, polygon, polygonscan
- Language: Python
- Homepage:
- Size: 65.4 KB
- Stars: 36
- Watchers: 3
- Forks: 10
- Open Issues: 0
-
Metadata Files:
- Readme: README.rst
- License: LICENSE
Awesome Lists containing this project
README
==============================
Welcome to ScanWatch 0.2.0
==============================Note
----This library is developed and maintained by EtWnn, feel free to drop your suggestions or remarks in
the `discussion tab `_.
You are also welcome to contribute by submitting PRs.**Source Code:**
https://github.com/EtWnn/ScanWatch
**Documentation:**
https://scanwatch.readthedocs.io| This library is a local tracker of transactions for the Ethereum chain, the Binance Smart chain and the Polygon chain.
| It is a simple single-point interface with the `etherscan `__, `bscscan `__
and `polygonscan `__ APIs.
| This library will save locally the transactions to gain time and avoid over-calling the APIs.Announcement
------------|siren| |siren| |siren|
If you previously used this library with a version inferior to 0.1.3,
please head `here `_ to correct a potential bug in the database.|siren| |siren| |siren|
Quick Tour
----------1. API Keys
~~~~~~~~~~~You will need to generate API tokens to use this library:
1. Ethereum chain: go on `etherscan `__
2. Binance Smart chain: go on `bscscan `__
3. Polygon chain: go on `polygonscan `__(If you want to use several chains, you will need an API token for each).
2. Installation
~~~~~~~~~~~~~~~``ScanWatch`` is available on `PYPI `_, install with ``pip``:
.. code:: bash
pip install ScanWatch
You can also install the latest developments (not stable):
.. code:: bash
pip install git+https://github.com/EtWnn/ScanWatch.git@develop
3. Manager
~~~~~~~~~~| The manager is the object that you will use to update and get the transactions.
| It is instantiated with an API token and an address.Example for Ethereum:
.. code:: python
from ScanWatch.ScanManager import ScanManager
from ScanWatch.utils.enums import NETWORKapi_token = ""
address = ""manager = ScanManager(address, NETWORK.ETHER, api_token)
Example for BSC:
.. code:: python
from ScanWatch.ScanManager import ScanManager
from ScanWatch.utils.enums import NETWORKapi_token = ""
address = ""manager = ScanManager(address, NETWORK.BSC, api_token)
Example for Polygon:
.. code:: python
from ScanWatch.ScanManager import ScanManager
from ScanWatch.utils.enums import NETWORKapi_token = ""
address = ""manager = ScanManager(address, NETWORK.POLYGON, api_token)
4. Transactions Update
~~~~~~~~~~~~~~~~~~~~~~Once the manager is setup, you can update the locally saved transactions:
.. code:: python
manager.update_all_transactions()
# all transactions updated for address 0xaAC...748E8: 100%|████████████| 4/4 [00:02<00:00, 1.86it/s]This needs to be done only when new transactions have been made since the last time you called the update method.
5. Transactions
~~~~~~~~~~~~~~~To fetch the transactions that have been previously saved, just use the methods below.
(see the `documentation `_ for more details)... code:: python
from ScanWatch.utils.enums import TRANSACTION
manager.get_transactions(TRANSACTION.NORMAL) # normal transactions
manager.get_transactions(TRANSACTION.ERC20) # erc20 transactions
manager.get_transactions(TRANSACTION.ERC721) # erc721 transactions
manager.get_transactions(TRANSACTION.INTERNAL) # internal transactions
6. Holdings
~~~~~~~~~~~The manager can also give you the current tokens hold by an address:
For erc20 tokens:
.. code:: python
manager.get_erc20_holdings()
.. code:: bash
{
'USDC': Decimal('50'),
'AllianceBlock Token': Decimal('12458.494516884'),
'Blockchain Certified Data Token': Decimal('75174'),
'Compound': Decimal('784.24998156'),
'ZRX': Decimal('3.1')
}For erc721 tokens:
.. code:: python
manager.get_erc721_holdings()
.. code:: bash
[
{
'contractAddress': '0x8azd48c9ze46azx1e984fraz4da9zz8dssad49ct',
'tokenID': '78941',
'count': 1,
'tokenName': 'SUPER NFT GAME',
'tokenSymbol': 'Hero'
},
{
'contractAddress': '0x6edd39bdba2fazs3db5fxd86908789cbd905f04d',
'tokenID': '33001',
'count': 1,
'tokenName': 'MY FAV NFT ARTIST HANDMADE THIS',
'tokenSymbol': 'dubious thing'
}
]Main / test nets
----------------If you want to switch from main to test nets, you can specify the net name at the manager creation:
.. code:: python
manager = ScanManager(address, , api_token, )
Supported nets are:
- For Ethereum: "main", "goerli", "kovan", "rinkeby", "ropsten"
- For BSC: "main", "test"
- For Polygon: "main", "test"Donation
--------| If this library has helped you in any way, feel free to help me |blush|
| With your donation, I will be able to keep working on this project and add new features. Thank you!- **BTC**: 14ou4fMYoMVYbWEKnhADPJUNVytWQWx9HG
- **ETH**, **BSC**, **Polygon**: 0xA20be1f02B1C9D4FF1442a0F0e7c089fcDd59407
- **LTC**: LfHgc969RFUjnmyLn41SRDvmT146jUg9tE
- **EGLD**: erd1qk98xm2hgztvmq6s4jwtk06g6laattewp6vh20z393drzy5zzfrq0gaefh.. |siren| replace:: 🚨
.. |blush| replace:: 😊