1
0
mirror of https://github.com/trezor/trezor-firmware.git synced 2024-12-16 11:28:14 +00:00
trezor-firmware/tools
matejcik 25a706f042 tools: coin_gen can render into a given filename
before, it could only render from `foo.bar.mako` to `foo.bar`
2018-08-07 13:00:30 +02:00
..
coin_gen.py tools: coin_gen can render into a given filename 2018-08-07 13:00:30 +02:00
coin_info.py tools: don't be noisy when support info is missing 2018-07-30 16:38:39 +02:00
coindef.py tools: update coindef.py to reflect the field rename 2018-07-16 14:48:47 +02:00
coins_details.py tools: improve logging in coins_details.py 2018-07-30 15:05:19 +02:00
README.md tools: require python 3.6 2018-07-30 18:10:00 +02:00
requirements.txt tools: clean up imports in coin_gen 2018-07-30 14:45:01 +02:00
support.py tools: coin_defs renamed to coin_info and interface 2018-07-30 14:25:53 +02:00

Tools directory

coin_info.py

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

coin_gen.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
    • support data, i.e., that support.json matches the rest of data
  • 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:

  • rewrite: regenerates support.json in a canonical format, i.e., only mandatory fields in fixed order.

  • check: checks validity of support data. This is the same check that runs as part of coin_gen.py check, except missing support data is always an error.

  • 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.