You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
trezor-firmware/tools
matejcik a903b996c8
support: fix bug in support.py show
6 years ago
..
README.md tools: rename coin_gen.py to cointool.py 6 years ago
coin_info.py coin_info: tweak API for less repetition 6 years ago
coindef.py defs: fix coindef.py 6 years ago
coins_details.py coin_info: tweak API for less repetition 6 years ago
cointool.py coin_info: tweak API for less repetition 6 years ago
requirements.txt coin_info: shuffle knowledge about duplicates, validation 6 years ago
support.py support: fix bug in support.py show 6 years ago

README.md

Tools directory

coin_info.py

Central module that extracts information from jsons in defs/ directory. Its most important function is get_all().

cointool.py

Code and data generator. Has the following functions:

  • check: runs validations. Currently, that is:

    • schema validity in defs/coins/*.json
    • availability of bitcore/blockbook backends
    • icon format
  • coins_json: generates coins.json for use in python-trezor, connect and wallet. By default outputs to current directory.

  • coindefs: generates coindefs.json, intended future format for sending coin definitions to Trezor.

  • render: for every filename.ext.mako passed (or for all found in directory), renders the Mako template with coin definitions and stores as corresponding filename.ext. This is used to generate code in trezor-mcu and trezor-core.

coins_details.py

Regenerates defs/coins_details.json, which is a catalog of coins for https://trezor.io/coins.

All information is generated from coin definitions in defs/, support info is taken either from support.json, or assumed (see coin_info.support_info()).

If needed, any value can be overriden in coins_details.override.json.

support.py

Support info management. Ensures support.json is in the proper format. Has the following subcommands:

  • check: checks validity of support data. Ensures that data is valid, there are no orphaned keys in support.json, no known coins have missing support info, etc.

  • show <keyword>: searches coin database, matching key (coin:BTC), name ("Bitcoin") or shortcut / ticker symbol ("BTC"). Displays all coins that match and their support info, if found.

  • set <key> [symbol=value]...: updates support info for coin key (coin:BTC, can be found with support.py show). Basic symbols are: trezor1 trezor2 connect webwallet. Anything else is considered a link name: "Electrum=https://electrum.org"
    Allowed values are yes, no, soon, planned, URLs and firmware version numbers. Empty value (trezor1=) clears the respective symbol.

requirements.txt

List of Python requiremens for all tools in pip format. Set up your environment with pip3 install -r requirements.txt, or pipenv install -r requirements.txt.

Python 3.6 or higher is required.