{ "info": { "author": "ICON Foundation", "author_email": "foo@icon.foundation", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "Intended Audience :: System Administrators", "License :: OSI Approved :: Apache Software License", "Natural Language :: English", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7" ], "description": "# ICON SCORE Development Suite (T-Bears) Tutorial\n\nThis tutorial is intended to give an introduction to using T-Bears. This guide will walk you through the basics of setting up your development environment and the usage of T-Bears CLI commands.\n\nT-Bears is a suite of development tools for SCORE. T-Bears provides a project template for SCORE to help you start right away. You can code and test your smart contract locally in an emulated environment, and when ready, deploy SCORE onto the ICON network from command-line interface.\n\n## Components\n![Components](https://github.com/icon-project/t-bears/raw/master/images/components.png)\n\n### ICON RPC Server\nA module that handles ICON JSON-RPC API request and sends response back to the client.\n\n### ICON Service\nA module that manages the lifecycle of SCORE and its execution. SCORE's state transition is stored in a database.\n\n### T-Bears CLI\nT-Bears Command Line Interface. Supports following functions:\n * Manage T-Bears service\n * Deploy SCORE\n * Send transaction\n * Send query request\n\nFor the details, see below '[Command-line Interfaces (CLIs)](#command-line-interfaces-clis)' chapter.\n\n### T-Bears Block Manager\nLoopchain emulator for T-Bears Service. It does not have full 'consensus' and 'peer management' functions. This module handles transaction and emulates block generation.\n\n### Message queue\nMessage queue is used for inter-component communication.\n\n\n## Quick start\nYou can run T-Bears on your machine by using Docker.\n\nThe below command will download T-Bears Docker image and run T-Bears Docker container.\n\n```bash\ndocker run -it -p 9000:9000 iconloop/tbears:mainnet\n```\nPlease check the following links for more information. [T-Bears Docker](https://github.com/icon-project/t-bears/tree/master/Docker)\n\n## Building from source\n First, clone this project. Then go to the project directory, create a virtualenv environment, and run build script. You can then install T-Bears with the .whl file.\n```bash\n$ virtualenv -p python3 venv # Create a virtual environment.\n$ source venv/bin/activate # Enter the virtual environment.\n(venv)$ ./build.sh # run build script\n(venv)$ ls dist/ # check result wheel file\ntbears-x.y.z-py3-none-any.whl\n```\n\n## Installation\n\nThis chapter will explain how to install T-Bears on your system.\n\n### Requirements\n\nICON SCORE development and execution requires following environments :\n\n* OS: MacOS or Linux\n * Windows is not supported.\n\n* Python\n * Make a virtualenv for Python 3.6.5+ (3.7 is also supported)\n * Check your Python version\n ```bash\n $ python3 -V\n ```\n * IDE: Pycharm is recommended.\n\n**Softwares**\n\n* RabbitMQ: 3.7 and above. [homepage](https://www.rabbitmq.com/)\n\n**Libraries**\n\n| name | description | github |\n| ----------- | ------------------------------------------------------------ | ------------------------------------------------------------ |\n| LevelDB | ICON SCORE uses levelDB to store its states. | [LevelDB GitHub](https://github.com/google/leveldb) |\n| libsecp256k1 | ICON SCORE uses secp256k1 to sign and validate a digital signature. | [secp256k1 GitHub](https://github.com/bitcoin-core/secp256k1) |\n\n### Setup on MacOS\n\n```bash\n# install develop tools\n$ brew install leveldb\n$ brew install autoconf automake libtool pkg-config\n\n# install RabbitMQ and start service\n$ brew install rabbitmq\n$ brew services start rabbitmq\n\n# Create a working directory\n$ mkdir work\n$ cd work\n\n# setup the python virtualenv development environment\n$ pip3 install virtualenv\n$ virtualenv -p python3 .\n$ source bin/activate\n\n# Install the ICON SCORE dev tools\n(work) $ pip install tbears\n```\n\n### Setup on Linux\n\n```bash\n# Install levelDB\n$ sudo apt-get install libleveldb1 libleveldb-dev\n# Install libSecp256k\n$ sudo apt-get install libsecp256k1-dev\n\n# install RabbitMQ and start service\n$ sudo apt-get install rabbitmq-server\n\n# Create a working directory\n$ mkdir work\n$ cd work\n\n# Setup the python virtualenv development environment\n$ virtualenv -p python3 .\n$ source bin/activate\n\n# Install the ICON SCORE dev tools\n(work) $ pip install tbears\n```\n\n## How to use T-Bears\n\n### Command-line Interfaces (CLIs)\n\n#### Overview\n\nT-Bears provides over 20 commands. Here is the available commands list.\n\n**Usage**\n\n```bash\nusage: tbears [-h] [-v] command ...\n\ntbears v1.2.1 arguments\n\noptional arguments:\n -h, --help show this help message and exit\n -v, --verbose Verbose mode\n\nAvailable commands:\n If you want to see help message of commands, use \"tbears command -h\"\n\n command\n start Start tbears service\n stop Stop tbears service\n deploy Deploy the SCORE\n clear Clear all SCOREs deployed on tbears service\n test Run the unittest in the SCORE\n init Initialize tbears project\n samples This command has been deprecated since v1.1.0\n genconf Generate tbears config files. (tbears_server_config.json,\n tbears_cli_config.json and keystore_test1)\n console Get into tbears interactive mode by embedding IPython\n txresult Get transaction result by transaction hash\n transfer Transfer ICX coin.\n keystore Create a keystore file in the specified path\n keyinfo Show a keystore file information the specified path\n balance Get balance of given address in loop unit\n totalsupply Query total supply of ICX in loop unit\n scoreapi Get score's api using given score address\n txbyhash Get transaction by transaction hash\n lastblock Get last block's info\n blockbyhash Get block info using given block hash\n blockbyheight\n Get block info using given block height\n sendtx Request icx_sendTransaction with the specified json file and\n keystore file. If keystore file is not given, tbears sends\n request as it is in the json file.\n call Request icx_call with the specified json file.\n```\n\n**Options**\n\n| shorthand, Name | default | Description |\n| :-------------- | :------ | :------------------------------ |\n| -h, --help | | Show this help message and exit |\n| -v, --verbose | | Verbose mode. Print debugging messages about its progress. |\n\n\n\n### T-Bears server commands\n\nCommands that manage the T-Bears server. There are three commands `tbears start`, `tbears stop` and `tbears clear`.\n\n#### tbears start\n\n**Description**\n\nStart\u00a0T-Bears\u00a0service.\u00a0Whenever T-Bears service starts, it loads the configuration from `tbears_server_config.json`\u00a0file.\u00a0If\u00a0you want to use other configuration file, you can specify the file location with the `-c` option.\n\n**Usage**\n\n```bash\nusage: tbears start [-h] [-a HOSTADDRESS] [-p PORT] [-c CONFIG]\n\nStart tbears service\n\noptional arguments:\n -h, --help show this help message and exit\n -a HOSTADDRESS, --address HOSTADDRESS\n Address to host on (default: 127.0.0.1)\n -p PORT, --port PORT Port to listen on (default: 9000)\n -c CONFIG, --config CONFIG\n tbears configuration file path (default: ./tbears_server_config.json)\n```\n\n**Options**\n\n| shorthand, Name | default | Description |\n| :-------------- | :-------------------------- | :--------------------------------------------------- |\n| -h, --help | | show this help message and exit |\n| -a, --address | 127.0.0.1 | IP address that the T-Bears service will host on. |\n| -p, --port | 9000 | Port number that the T-Bears service will listen on. |\n| -c, --config | ./tbears_server_config.json | T-Bears configuration file path |\n\n#### tbears stop\n\n**Description**\n\nStop all running SCOREs and T-Bears service.\n\n**Usage**\n\n```bash\nusage: tbears stop [-h]\n\nStop all running SCOREs and tbears service\n\noptional arguments:\n -h, --help show this help message and exit\n```\n\n**Options**\n\n| shorthand, Name | default | Description |\n| :-------------- | :------ | :------------------------------ |\n| -h, --help | | show this help message and exit |\n\n#### tbears clear\n\n**Description**\n\nClear all SCOREs deployed on local T-Bears service.\n\n**Usage**\n\n```bash\nusage: tbears clear [-h]\n\nClear all SCOREs deployed on local tbears service\n\noptional arguments:\n -h, --help show this help message and exit\n```\n\n**Options**\n\n| shorthand, Name | default | Description |\n| :-------------- | :------ | :------------------------------ |\n| -h, --help | | show this help message and exit |\n\n\n\n### T-Bears utility commands\n\nCommands that generate configuration file and keystore file.\n\n#### tbears keystore\n\n**Description**\n\nCreate a keystore file in the given path. Generate a private and public key pair using secp256k1 library.\n\n**Usage**\n\n```bash\nusage: tbears keystore [-h] [-p PASSWORD] path\n\nCreate keystore file in the specified path. Generate privatekey, publickey\npair using secp256k1 library.\n\npositional arguments:\n path Path of keystore file.\n\noptional arguments:\n -h, --help show this help message and exit\n -p PASSWORD, --password PASSWORD\n Keystore file's password\n```\n\n**Options**\n\n| shorthand, Name | default | Description |\n| :-------------- | :------ | :--------------------------------------- |\n| path | | a keystore file path that is to be generated |\n| -h, --help | | show this help message and exit |\n| -p, --password | | Keystore file's password |\n\n**Examples**\n\n```bash\n(work) $ tbears keystore keystore_file\nInput your keystore password:\nRetype your keystore password:\nMade keystore file successfully\n```\n\n#### tbears keyinfo\n**Description**\n\nShow a keystore information(address, privateKey, publicKey) in the specified path. \n\n**Usage**\n```bash\nusage: tbears keyinfo [-h] [-p PASSWORD] [--private-key] path\n\nShow a keystore information(address, privateKey, publicKey) in the specified\npath. If you want to get privateKey, input --private-key option\n\npositional arguments:\n path Path of keystore file.\n\noptional arguments:\n -h, --help show this help message and exit\n -p PASSWORD, --password PASSWORD\n Keystore file's password\n --private-key option that whether show privateKey\n```\n\n**Options**\n\n| shorthand, Name | default | Description |\n| :-------------- | :------ | :--------------------------------------- |\n| path | | a keystore file path that is to be shown |\n| -h, --help | | show this help message and exit |\n| -p, --password | | Keystore file's password | \n| --private-key | | option that whether show privateKey |\n\n**Examples**\n\n```bash\n(work) $ tbears keyinfo keystore\nInput your keystore password:\n{\n \"address\": \"hxef73db5d0ad02eb1fadb37d0041be96bfa56d4e6\",\n \"publicKey\": \"0x040d60ccc4fd29307304a8e84715e6e1a2e643bcff14fbf90d9099dfc84585a6f6f0b6944594efebe433a12a005ba56d215d6e51697a3360b5d741f8db89955c66\"\n}\n\n(work) $ tbears keyinfo --private-key keystore\nInput your keystore password:\n{\n \"address\": \"hxef73db5d0ad02eb1fadb37d0041be96bfa56d4e6\",\n \"publicKey\": \"0x040d60ccc4fd29307304a8e84715e6e1a2e643bcff14fbf90d9099dfc84585a6f6f0b6944594efebe433a12a005ba56d215d6e51697a3360b5d741f8db89955c66\",\n \"privateKey\": \"54483cf6c525f831da699d73d273e48aa88c963ed5ac485b207c7bf4a57ddce1\"\n}\n```\n\n#### tbears genconf\n\n**Description**\n\nGenerate T-Bears config files. (\"tbears_cli_config.json\", \"tbears_server_config.json\", \"keystore_test1\")\n\n```bash\nusage: tbears genconf [-h]\n\nGenerate T-Bears config files. (tbears_server_config.json, tbears_cli_config.json, keystore_test1)\n\noptional arguments:\n -h, --help show this help message and exit\n```\n\n**Options**\n\n| shorthand, Name | default | Description |\n| :-------------- | :------ | :------------------------------ |\n| -h, --help | | show this help message and exit |\n\n**Examples**\n\n```bash\n(work) $ tbears genconf\nMade tbears_cli_config.json, tbears_server_config.json, keystore_test1 successfully\n```\n\n\n### T-Bears SCORE commands\n\nThese commands are related to SCORE development and execution. `tbears init` generates SCORE projects. `tbears deploy`, `tbears sendtx` and `tbears call` commands are used to deploy the SCORE, send a transaction, and call a function.\n\n#### tbears init\n\n**Description**\n\nInitialize SCORE development environment. Generate .py, package.json and test code in directory. The name of the SCORE class is \\. Default configuration files, \"tbears_server_config.json\" used when starting T-Bears and \"tbears_cli_config.json\" used when deploying SCORE, are also generated.\n\n**Usage**\n\n```bash\nusage: tbears init [-h] project scoreClass\n\nInitialize SCORE development environment. Generate .py, package.json\nand test code in directory. The name of the score class is\n.\n\npositional arguments:\n project Project name\n scoreClass SCORE class name\n\noptional arguments:\n -h, --help show this help message and exit\n```\n\n**Options**\n\n| shorthand, Name | default | Description |\n| :-------------- | :------ | :------------------------------ |\n| project | | Project name |\n| scoreClass | | SCORE class name |\n| -h, --help | | show this help message and exit |\n\n**Examples**\n\n```bash\n(work) $ tbears init hello HelloWorld\nInitialized hello successfully\n(work) $ ls hello\n__init__.py hello.py package.json tests\n```\n\n**File description**\n\n| **Item** | **Description** |\n| :------------------------- | :----------------------------------------------------------- |\n| tbears_server_config.json | T-Bears default configuration file will be created on the working directory. |\n| tbears_cli_config.json | Configuration file for CLI commands will be created on the working directory. |\n| keystore_test1 | Keystore file for test account will be created on the working directory. |\n| \\ | SCORE project name. Project directory is created with the same name. |\n| \\/\\_\\_init\\_\\_.py | \\_\\_init\\_\\_.py file to make the project directory recognized as a python package. |\n| \\/package.json | Contains the information needed when SCORE is loaded.
\"main_module\" and \"main_class\" should be specified. |\n| \\/.py | SCORE main file, where `scoreClass` is defined. |\n| \\/tests | Directory for SCORE test code. |\n| \\/tests/\\_\\_init\\_\\_.py | \\_\\_init\\_\\_.py file to make the test directory recognized as a python package. |\n| \\/tests/test\\_.py | SCORE test main file. |\n\n#### tbears deploy\n\n**Description**\n\nDeploy the SCORE. You can deploy it on local T-Bears service or on ICON network.\n\n\"tbears_cli_config.json\" file contains the deployment configuration properties. (See below 'Configuration Files' chapter). If\u00a0you want to use other configuration file, you can specify the file location with the '-c' option.\n\n**Usage**\n\n```bash\nusage: tbears deploy [-h] [-u URI] [-t {tbears,zip}] [-m {install,update}]\n [-f FROM] [-o TO] [-k KEYSTORE] [-n NID] [-p PASSWORD]\n [-s STEPLIMIT] [-c CONFIG]\n project\n\nDeploy the SCORE\n\npositional arguments:\n project Project directory path or zip file path\n\noptional arguments:\n -h, --help show this help message and exit\n -u URI, --node-uri URI\n URI of node (default: http://127.0.0.1:9000/api/v3)\n -t {tbears,zip}, --type {tbears,zip}\n This option is deprecated since version 1.0.5. Deploy\n command supports zip type only\n -m {install,update}, --mode {install,update}\n Deploy mode (default: install)\n -f FROM, --from FROM From address. i.e. SCORE owner address\n -o TO, --to TO To address. i.e. SCORE address\n -k KEYSTORE, --key-store KEYSTORE\n Keystore file path. Used to generate \"from\" address\n and transaction signature\n -n NID, --nid NID Network ID\n -p PASSWORD, --password PASSWORD\n keystore file's password\n -s STEPLIMIT, --step-limit STEPLIMIT\n Step limit\n -c CONFIG, --config CONFIG\n deploy config path (default: ./tbears_cli_config.json)\n```\n\n**Options**\n\n| shorthand, Name | default | Description |\n| :---------------------------------------------- | :--------------------------- | :----------------------------------------------------------- |\n| project | | Project directory or zip file which contains the SCORE package. If you want to deploy with a zip file, zip the project directory |\n| -h, --help | | show this help message and exit |\n| -u, --node-uri | http://127.0.0.1:9000/api/v3 | URI of node |\n| -t {tbears,zip}, --type {tbears,zip} | | This option is deprecated since version 1.0.5. Deploy command supports zip type only |\n| -m {install,update},
--mode {install,update} | install | Deploy mode (\"install\" or \"update\"). |\n| -f, --from | | From address. i.e. SCORE owner address. It is ignored if keystore is set |\n| -o, --to | | To address. i.e. SCORE address
This parameter is required when updating SCORE. |\n| -k, --key-store | | Keystore file path for SCORE owner |\n| -n, --nid | | Network ID of node.
Each network has unique ID. If the Network ID does not match, node will reject the SCORE. Network ID will be announced when a network opens to public.
0x3 is reserved for T-Bears service. However, T-Bears service does not verify the Network ID. |\n| -p, --password | | Password of keystore file |\n| -s, --step-limit | an estimated Step | Step limit of the transaction |\n| -c, --config | ./tbears_cli_config.json | Configuration file path |\n\n**Examples**\n\n```bash\n# you can deploy a SCORE to the local T-Bears server without verifying signature\n(work) $ tbears deploy hello\n\n# when you deploy a SCORE to ICON, you need to specify the keystore file\n# config.json should contain valid parameters like node-uri, nid, etc.\n(work) $ tbears deploy hello -k keystore -c config.json\nInput your keystore password:\nSend deploy request successfully.\nIf you want to check SCORE deployed successfully, execute txresult command\ntransaction hash: 0x9c294b9608d9575f735ec2e2bf52dc891d7cca6a2fa7e97aee4818325c8a9d41\n\n# when you update the SCORE 'hello', you need to specify the SCORE address with the '-o' option\n(work) $ tbears deploy hello -m update -o cx6bd390bd855f086e3e9d525b46bfe24511431532 -k keystore -c config.json\nInput your keystore password:\nSend deploy request successfully.\nIf you want to check SCORE deployed successfully, execute txresult command\ntransaction hash: 0xad292b9608d9575f735ec2ebbf52dc891d7cca6a2fa7e97aee4818325c80934d\n```\n\nT-Bears can supply some required fields on behalf of the sender when those are not specified in the configuration file.\nT-Bears will generate a valid JSON request using the following rules.\n\n| Field name | Description |\n| :---------- | :---------- |\n| `stepLimit` | The estimated Step usage ([debug_estimateStep] API is used) will be set for the transaction |\n| `timestamp` | The current time will be set |\n\n\n\n#### tbears test\n\n**Description**\n\nRun the unittest in the project.\n\n**Usage**\n\n```bash\nusage: tbears test [-h] project\n\nRun the unittest in the project\n\npositional arguments:\n project Project directory path\n\noptional arguments:\n -h, --help show this help message and exit\n```\n\n**Options**\n\n| shorthand, Name | default | Description |\n| :-------------- | :--------------------------- | :----------------------------------------------------------- |\n| project | | Project directory which contains the SCORE package and test code.|\n| -h, --help | | show this help message and exit |\n\n**Examples**\n\n```bash\n(work) $ tbears test hello\n..\n----------------------------------------------------------------------\nRan 2 tests in 0.172s\n\nOK\n```\n\n#### tbears sendtx\n\n**Description**\n\nRequest `icx_sendTransaction` with the specified json file.\n\n```bash\nusage: tbears sendtx [-h] [-u URI] [-k KEYSTORE] [-c CONFIG] [-p PASSWORD]\n [-s STEPLIMIT]\n json_file\n\nRequest `icx_sendTransaction` with the specified json file and keystore file. If\nkeystore file is not given, tbears sends request as it is in the json file.\n\npositional arguments:\n json_file File path containing icx_sendTransaction content\n\noptional arguments:\n -h, --help show this help message and exit\n -u URI, --node-uri URI\n URI of node (default: http://127.0.0.1:9000/api/v3)\n -k KEYSTORE, --key-store KEYSTORE\n Keystore file path. Used to generate \"from\"address and\n transaction signature\n -c CONFIG, --config CONFIG\n Configuration file path. This file defines the default\n value for the \"uri\" (default:\n ./tbears_cli_config.json)\n -p PASSWORD, --password PASSWORD\n Keystore file's password\n -s STEPLIMIT, --step-limit STEPLIMIT\n Step limit\n```\n\n**Options**\n\n| shorthand, Name | default | Description |\n| :-------------- | :--------------------------- | :----------------------------------------------------------- |\n| json_file | | Path to the json file containing the request object for icx_transaction. |\n| -h, --help | | show this help message and exit |\n| -u, --node-uri | http://127.0.0.1:9000/api/v3 | URI of node |\n| -k, --key-store | | Keystore file path. Used to generate transaction signature. |\n| -p, --password | | Password of keystore file |\n| -s, --step-limit| an estimated Step | Step limit of the transaction |\n| -c, --config | ./tbears_cli_config.json | Configuration file path. This file defines the default values for the properties \"keyStore\", \"uri\" and \"from\". |\n\n**Examples**\n\n```bash\n(work) $ cat send.json\n{\n \"jsonrpc\": \"2.0\",\n \"method\": \"icx_sendTransaction\",\n \"params\": {\n \"version\": \"0x3\",\n \"from\": \"hxef73db5d0ad02eb1fadb37d0041be96bfa56d4e6\",\n \"to\": \"cx4d5a79f329adcf00a3daa99539f0eeea2d43d239\",\n \"nid\": \"0x3\",\n \"dataType\": \"call\",\n \"data\": {\n \"method\": \"setValue\",\n \"params\": {\n \"value\": \"0x123\"\n }\n }\n }\n}\n\n(work) $ tbears sendtx send.json -k keystore\nInput your keystore password:\nSend transaction request successfully.\ntransaction hash: 0xc8a3e3f77f21f8f1177d829cbc4c0ded6fd064cc8e42ef309dacff5c0a952289\n```\n\nT-Bears can supply some required fields on behalf of the sender when those are not specified in the `json_file`.\nIn the example above, `stepLimit` and `timestamp` fields are not specified, but T-Bears can make a valid JSON request using the following rules.\n\n| Field name | Description |\n| :---------- | :---------- |\n| `stepLimit` | The estimated Step usage ([debug_estimateStep] API is used) will be set for the transaction |\n| `timestamp` | The current time will be set |\n\n\n\n#### tbears call\n\n**Description**\n\nRequest `icx_call` with the specified json file.\n\n```bash\nusage: tbears call [-h] [-u URI] [-c CONFIG] json_file\n\nRequest icx_call with the specified json file.\n\npositional arguments:\n json_file File path containing icx_call content\n\noptional arguments:\n -h, --help show this help message and exit\n -u URI, --node-uri URI\n URI of node (default: http://127.0.0.1:9000/api/v3)\n -c CONFIG, --config CONFIG\n Configuration file path. This file defines the default\n value for the \"uri\" (default: ./tbears_cli_config.json)\n```\n\n**Options**\n\n| shorthand, Name | default | Description |\n| :-------------- | :--------------------------- | :----------------------------------------------------------- |\n| json_file | | Path to the json file containing the request object for icx_call |\n| -h, --help | | Show this help message and exit |\n| -u, --node-uri | http://127.0.0.1:9000/api/v3 | URI of node |\n| -c, --config | ./tbears_cli_config.json | Configuration file path. This file defines the default values for the properties \"keyStore\", \"uri\" and \"from\". |\n\n**Examples**\n\n```bash\n(work) $ cat call.json\n{\n \"jsonrpc\": \"2.0\",\n \"method\": \"icx_call\",\n \"params\": {\n \"to\": \"cx53d5080a7d8a805bb10eb9bc64637809dc910832\",\n \"dataType\": \"call\",\n \"data\": {\n \"method\": \"hello\"\n }\n },\n \"id\": 1\n}\n(work) $ tbears call call.json\nresponse : {\n \"jsonrpc\": \"2.0\",\n \"result\": \"Hello\",\n \"id\": 1\n}\n```\n\n#### tbears scoreapi\n\n**Description**\n\nGet list of APIs that the given SCORE provides. Please refer to `icx_getScoreApi` of [ICON JSON-RPC API v3](https://github.com/icon-project/icon-rpc-server/blob/master/docs/icon-json-rpc-v3.md#icx_getscoreapi) for details.\n\n**Usage**\n\n```bash\nusage: tbears scoreapi [-h] [-u URI] [-c CONFIG] address\n\nGet SCORE's API using given SCORE address\n\npositional arguments:\n address SCORE address to query SCORE API\n\noptional arguments:\n -h, --help show this help message and exit\n -u URI, --node-uri URI\n URI of node (default: http://127.0.0.1:9000/api/v3)\n -c CONFIG, --config CONFIG\n Configuration file path. This file defines the default\n value for the \"uri\" (default: ./tbears_cli_config.json)\n```\n\n**Options**\n\n| shorthand, Name | default | Description |\n| :-------------- | :--------------------------- | :----------------------------------------------------------- |\n| address | | SCORE address to query APIs |\n| -h, --help | | show this help message and exit |\n| -u, --node-uri | http://127.0.0.1:9000/api/v3 | URI of node. |\n| -c, --config | ./tbears_cli_config.json | Configuration file path. This file defines the default value for the \"uri\". |\n\n**Examples**\n\n```bash\n(work) $ tbears scoreapi cx0123456789abcdef0123456789abcdefabcdef12\nSCORE API: [\n {\n \"type\": \"function\",\n \"name\": \"hello\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"type\": \"str\"\n }\n ],\n \"readonly\": \"0x1\"\n },\n {\n \"type\": \"function\",\n \"name\": \"setValue\",\n \"inputs\": [\n {\n \"name\": \"value\",\n \"type\": \"int\"\n }\n ],\n \"outputs\": []\n }\n]\n```\n\n\n### T-Bears other commands\n\nCommands that are related to ICX coin, transaction, and block.\n\n#### tbears transfer\n\n**Description**\n\nTransfer designated amount of ICX coins.\n\n**Usage**\n\n```bash\nusage: tbears transfer [-h] [-f FROM] [-k KEYSTORE] [-n NID] [-u URI]\n [-p PASSWORD] [-s STEPLIMIT] [-c CONFIG]\n to value\n\nTransfer ICX coin.\n\npositional arguments:\n to Recipient\n value Amount of ICX coin in loop to transfer (1 icx = 1e18\n loop)\n\noptional arguments:\n -h, --help show this help message and exit\n -f FROM, --from FROM From address.\n -k KEYSTORE, --key-store KEYSTORE\n Keystore file path. Used to generate \"from\" address\n and transaction signature\n -n NID, --nid NID Network ID (default: 0x3)\n -u URI, --node-uri URI\n URI of node (default: http://127.0.0.1:9000/api/v3)\n -p PASSWORD, --password PASSWORD\n Keystore file's password\n -s STEPLIMIT, --step-limit STEPLIMIT\n Step limit\n -c CONFIG, --config CONFIG\n Configuration file path. This file defines the default\n values for the properties \"keyStore\", \"uri\", \"from\"\n and \"stepLimit\". (default: ./tbears_cli_config.json)\n```\n\n**Options**\n\n| shorthand, Name | default | Description |\n| :-------------- | :--------------------------- | :----------------------------------------------------------- |\n| to | | Recipient address. |\n| value | | Amount of ICX coin in loop to transfer to \"to\" address. (1 icx = 1e18 loop) |\n| -h, --help | | show this help message and exit |\n| -f, --from | | From address. It is ignored if keystore is set |\n| -k, --key-store | | Keystore file path. Used to generate \"from\" address and transaction signature. |\n| -u, --node-uri | http://127.0.0.1:9000/api/v3 | URI of node |\n| -n, --nid | 0x3 | Network ID |\n| -p, --password | | Password of keystore file |\n| -s, --step-limit| an estimated Step | Step limit of the transaction |\n| -c, --config | ./tbears_cli_config.json | Configuration file path. This file defines the default values for the properties \"keyStore\", \"uri\" and \"from\". |\n\n**Examples**\n\n```bash\n(work) $ tbears transfer -k test_keystore hxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab 1e18\nSend transfer request successfully.\ntransaction hash: 0xc1b92b9a08d8575f735ec2ebbf52dc831d7c2a6a2fa7e97aee4818325cad919e\n```\n\n#### tbears balance\n\n**Description**\n\nGet balance of given address.\n\n**Usage**\n\n```bash\nusage: tbears balance [-h] [-u URI] [-c CONFIG] address\n\nGet balance of given address in loop unit\n\npositional arguments:\n address Address to query the ICX balance\n\noptional arguments:\n -h, --help show this help message and exit\n -u URI, --node-uri URI\n URI of node (default: http://127.0.0.1:9000/api/v3)\n -c CONFIG, --config CONFIG\n Configuration file path. This file defines the default\n value for the \"uri\" (default: ./tbears_cli_config.json)\n\n```\n\n**Options**\n\n| shorthand, Name | default | Description |\n| :-------------- | :--------------------------- | :----------------------------------------------------------- |\n| address | | Address to query the ICX balance |\n| -h, --help | | show this help message and exit |\n| -u, --node-uri | http://127.0.0.1:9000/api/v3 | URI of node |\n| -c, --config | ./tbears_cli_config.json | Configuration file path. This file defines the default value for the \"uri\". |\n\n**Examples**\n\n```bash\n(work) $ tbears balance hx0123456789abcdef0123456789abcdefabcdef12\nbalance in hex: 0x2961fff8ca4a62327800000\nbalance in decimal: 800460000000000000000000000\n```\n\n#### tbears totalsupply\n\n**Description**\n\nQuery total supply of ICX.\n\n**Usage**\n\n```bash\nusage: tbears totalsupply [-h] [-u URI] [-c CONFIG]\n\nQuery total supply of ICX in loop unit\n\noptional arguments:\n -h, --help show this help message and exit\n -u URI, --node-uri URI\n URI of node (default: http://127.0.0.1:9000/api/v3)\n -c CONFIG, --config CONFIG\n Configuration file path. This file defines the default\n value for the \"uri\" (default: ./tbears_cli_config.json)\n```\n\n**Options**\n\n| shorthand, Name | default | Description |\n| :-------------- | :--------------------------- | :----------------------------------------------------------- |\n| -h, --help | | show this help message and exit |\n| -u, --node-uri | http://127.0.0.1:9000/api/v3 | URI of node |\n| -c, --config | ./tbears_cli_config.json | Configuration file path. This file defines the default value for the \"uri\". |\n\n**Examples**\n\n```bash\n(work) $ tbears totalsupply\nTotal supply of ICX in hex: 0x2961fff8ca4a62327800000\nTotal supply of ICX in decimal: 800460000000000000000000000\n```\n\n#### tbears txresult\n\n**Description**\n\nGet transaction result by transaction hash.\n\n**Usage**\n\n```bash\nusage: tbears txresult [-h] [-u URI] [-c CONFIG] hash\n\nGet transaction result by transaction hash\n\npositional arguments:\n hash Transaction hash of the transaction to be queried.\n\noptional arguments:\n -h, --help show this help message and exit\n -u URI, --node-uri URI\n URI of node (default: http://127.0.0.1:9000/api/v3)\n -c CONFIG, --config CONFIG\n Configuration file path. This file defines the default\n value for the \"uri\" (default: ./tbears_cli_config.json)\n```\n\n**Options**\n\n| shorthand, Name | default | Description |\n| :-------------- | :--------------------------- | :----------------------------------------------------------- |\n| hash | | Hash of the transaction to be queried |\n| -h, --help | | show this help message and exit |\n| -u, --node-uri | http://127.0.0.1:9000/api/v3 | URI of node |\n| -c, --config | ./tbears_cli_config.json | Configuration file path. This file defines the default value for the \"uri\". |\n\n**Examples**\n\n```bash\n(work) $ tbears txresult 0x227fb3e6fdc89de8d24e019b1ddc88538633c4202102297da204444d393249c2\nTransaction result: {\n \"jsonrpc\": \"2.0\",\n \"result\": {\n \"txHash\": \"0x227fb3e6fdc89de8d24e019b1ddc88538633c4202102297da204444d393249c2\",\n \"blockHeight\": \"0x2\",\n \"blockHash\": \"28e6e4710c56e053920b95df0058317a4ac641b16d17d64db7f958e8a5650391\",\n \"txIndex\": \"0x0\",\n \"to\": \"cx0000000000000000000000000000000000000000\",\n \"scoreAddress\": \"cx6bd390bd855f086e3e9d525b46bfe24511431532\",\n \"stepUsed\": \"0xe2a4\",\n \"stepPrice\": \"0x0\",\n \"cumulativeStepUsed\": \"0xe2a4\",\n \"eventLogs\": [],\n \"logsBloom\": \"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n \"status\": \"0x1\"\n },\n \"id\": 1\n}\n```\n\n#### tbears txbyhash\n\n**Description**\n\nGet transaction by transaction hash\n\n**Usage**\n\n```bash\nusage: tbears txbyhash [-h] [-u URI] [-c CONFIG] hash\n\nGet transaction by transaction hash\n\npositional arguments:\n hash Hash of the transaction to be queried\n\noptional arguments:\n -h, --help show this help message and exit\n -u URI, --node-uri URI\n URI of node (default: http://127.0.0.1:9000/api/v3)\n -c CONFIG, --config CONFIG\n Configuration file path. This file defines the default\n value for the \"uri\" (default: ./tbears_cli_config.json)\n```\n\n**Options**\n\n| shorthand, Name | default | Description |\n| :-------------- | :--------------------------- | :----------------------------------------------------------- |\n| hash | | Hash of the transaction to be queried |\n| -h, --help | | show this help message and exit |\n| -u, --node-uri | http://127.0.0.1:9000/api/v3 | URI of node |\n| -c, --config | ./tbears_cli_config.json | Configuration file path. This file defines the default value for the \"uri\". |\n\n**Examples**\n\n```bash\n(work) $ tbears txbyhash 0x95be9f0247bc3b7ed07fe07c53613c580642ef991c574c85db45dbac9e8366df\n\nTransaction: {\n \"jsonrpc\": \"2.0\",\n \"result\": {\n \"version\": \"0x3\",\n \"from\": \"hxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\n \"value\": \"0x0\",\n \"stepLimit\": \"0x3000000\",\n \"timestamp\": \"0x572e8fd95db26\",\n \"nid\": \"0x3\",\n \"nonce\": \"0x1\",\n \"to\": \"cx0000000000000000000000000000000000000000\",\n \"data\": {\n \"contentType\": \"application/zip\",\n \"content\": \"0x32b34cfa39993fa093e\",\n \"params\": {}\n },\n \"dataType\": \"deploy\",\n \"signature\": \"sig\",\n \"txIndex\": \"0x0\",\n \"blockHeight\": \"0x2\",\n \"blockHash\": \"0x28e6e4710c56e053920b95df0058317a4ac641b16d17d64db7f958e8a5650391\"\n },\n \"id\": 1\n}\n```\n\n\n\n#### tbears lastblock\n\n**Description**\n\nQuery last block info. When running on T-Bears service, \"merkle_tree_root_hash\" and \"signature\" will be empty.\n\n**Usage**\n\n```bash\nusage: tbears lastblock [-h] [-u URI] [-c CONFIG]\n\nGet last block info\n\noptional arguments:\n -h, --help show this help message and exit\n -u URI, --node-uri URI\n URI of node (default: http://127.0.0.1:9000/api/v3)\n -c CONFIG, --config CONFIG\n Configuration file path. This file defines the default\n value for the \"uri\" (default: ./tbears_cli_config.json)\n```\n\n**Options**\n\n| shorthand, Name | default | Description |\n| :-------------- | :--------------------------- | :----------------------------------------------------------- |\n| -h, --help | | show this help message and exit |\n| -u, --node-uri | http://127.0.0.1:9000/api/v3 | URI of node |\n| -c, --config | ./tbears_cli_config.json | Configuration file path. This file defines the default value for the \"uri\". |\n\n**Examples**\n\n```bash\n(work) $ tbears lastblock\n\nblock info : {\n \"jsonrpc\": \"2.0\",\n \"result\": {\n \"version\": \"tbears\",\n \"prev_block_hash\": \"815c0fd7a0dd4594bb19ee39030c1bd91c200878f1f456fe8dd7ff4e0a19b839\",\n \"merkle_tree_root_hash\": \"tbears_does_not_support_merkel_tree\",\n \"time_stamp\": 1533719896011654,\n \"confirmed_transaction_list\": [\n {\n \"version\": \"0x3\",\n \"from\": \"hxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\n \"value\": \"0x0\",\n \"stepLimit\": \"0x3000000\",\n \"timestamp\": \"0x572e8fd95db26\",\n \"nid\": \"0x3\",\n \"nonce\": \"0x1\",\n \"to\": \"cx0000000000000000000000000000000000000000\",\n \"data\": {\n \"contentType\": \"application/zip\",\n \"content\": \"0x32b34cfa39993fa093e\",\n \"params\": {}\n },\n \"dataType\": \"deploy\",\n \"signature\": \"sig\"\n }\n ],\n \"block_hash\": \"28e6e4710c56e053920b95df0058317a4ac641b16d17d64db7f958e8a5650391\",\n \"height\": 2,\n \"peer_id\": \"fb5f43dc-9aeb-11e8-a31b-acde48001122\",\n \"signature\": \"tbears_does_not_support_signature\"\n },\n \"id\": 1\n}\n\n```\n\n#### tbears blockbyheight\n\n**Description**\n\nGet block info using given block height.\n\n**Usage**\n\n```bash\nusage: tbears blockbyheight [-h] [-u URI] [-c CONFIG] height\n\nGet block info using given block height\n\npositional arguments:\n height height of the block to be queried\n\noptional arguments:\n -h, --help show this help message and exit\n -u URI, --node-uri URI\n URI of node (default: http://127.0.0.1:9000/api/v3)\n -c CONFIG, --config CONFIG\n Configuration file path. This file defines the default\n value for the \"uri\" (default: ./tbears_cli_config.json)\n```\n\n**Options**\n\n| shorthand, Name | default | Description |\n| :-------------- | :--------------------------- | :----------------------------------------------------------- |\n| height | | Height of the block to be queried |\n| -h, --help | | show this help message and exit |\n| -u, --node-uri | http://127.0.0.1:9000/api/v3 | URI of node |\n| -c, --config | ./tbears_cli_config.json | Configuration file path. This file defines the default value for the \"uri\". |\n\n**Examples**\n\n```bash\n(work) $ tbears blockbyheight 0x1\n\nblock info : {\n \"jsonrpc\": \"2.0\",\n \"result\": {\n \"version\": \"tbears\",\n \"prev_block_hash\": \"859083707985809a8b52982b9d8d86bfe48c0020a478b3a99d7eeb3c74c38e7c\",\n \"merkle_tree_root_hash\": \"tbears_does_not_support_merkel_tree\",\n \"time_stamp\": 1533719753948440,\n \"confirmed_transaction_list\": [\n {\n \"version\": \"0x3\",\n \"from\": \"hxef73db5d0ad02eb1fadb37d0041be96bfa56d4e6\",\n \"value\": \"0x8ac7230489e80000\",\n \"stepLimit\": \"0x2000\",\n \"timestamp\": \"0x572e8f51e4481\",\n \"nid\": \"0x3\",\n \"nonce\": \"0x1\",\n \"to\": \"hxbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab\",\n \"signature\": \"f2B3r27u7peL3I9uBnKA8yn82odqlMECU+UBkRiZTJIwWFo57AmlUjKhoK8OZBBRdaWWmLF+JTZNs70yF8+zIwA=\"\n }\n ],\n \"block_hash\": \"815c0fd7a0dd4594bb19ee39030c1bd91c200878f1f456fe8dd7ff4e0a19b839\",\n \"height\": 1,\n \"peer_id\": \"a6b22354-9aeb-11e8-a0ae-acde48001122\",\n \"signature\": \"tbears_does_not_support_signature\"\n },\n \"id\": 1\n}\n\n```\n\n#### tbears blockbyhash\n\n**Description**\n\nGet block info using given block hash.\n\n**Options**\n\n| shorthand, Name | default | Description |\n| :-------------- | :--------------------------- | :----------------------------------------------------------- |\n| hash | | Hash of the block to be queried |\n| -h, --help | | show this help message and exit |\n| -u, --node-uri | http://127.0.0.1:9000/api/v3 | URI of node |\n| -c, --config | ./tbears_cli_config.json | Configuration file path. This file defines the default value for the \"uri\". |\n\n**Usage**\n\n```bash\nusage: tbears blockbyhash [-h] [-u URI] [-c CONFIG] hash\n\nGet block info using given block hash\n\npositional arguments:\n hash hash of the block to be queried\n\noptional arguments:\n -h, --help show this help message and exit\n -u URI, --node-uri URI\n URI of node (default: http://127.0.0.1:9000/api/v3)\n -c CONFIG, --config CONFIG\n Configuration file path. This file defines the default\n value for the \"uri\" (default: ./tbears_cli_config.json)\n```\n\n**Examples**\n\n```bash\n(work) $ tbears blockbyhash 0xce00facd0ac3832e1e6e623d8f4b9344782da881e55abb48d1494fde9e465f78\n\nblock info : {\n \"jsonrpc\": \"2.0\",\n \"result\": {\n \"version\": \"tbears\",\n \"prev_block_hash\": \"859083707985809a8b52982b9d8d86bfe48c0020a478b3a99d7eeb3c74c38e7c\",\n \"merkle_tree_root_hash\": \"tbears_does_not_support_merkel_tree\",\n \"time_stamp\": 1533719753948440,\n \"confirmed_transaction_list\": [\n {\n \"version\": \"0x3\",\n \"from\": \"hxef73db5d0ad02eb1fadb37d0041be96bfa56d4e6\",\n \"value\": \"0x8ac7230489e80000\",\n \"stepLimit\": \"0x2000\",\n \"timestamp\": \"0x572e8f51e4481\",\n \"nid\": \"0x3\",\n \"nonce\": \"0x1\",\n \"to\": \"hxbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab\",\n \"signature\": \"f2B3r27u7peL3I9uBnKA8yn82odqlMECU+UBkRiZTJIwWFo57AmlUjKhoK8OZBBRdaWWmLF+JTZNs70yF8+zIwA=\"\n }\n ],\n \"block_hash\": \"815c0fd7a0dd4594bb19ee39030c1bd91c200878f1f456fe8dd7ff4e0a19b839\",\n \"height\": 1,\n \"peer_id\": \"a6b22354-9aeb-11e8-a0ae-acde48001122\",\n \"signature\": \"tbears_does_not_support_signature\"\n },\n \"id\": 1\n}\n\n```\n\n\n\n### tbears console\n\n**Description**\n\nEnter T-Bears interactive mode using IPython. ([Ipython.org](https://ipython.org/))\n\n**Usage**\n\n```bash\nusage: tbears console [-h]\n\n\nGet into tbears interactive mode by embedding IPython\n\noptional arguments:\n -h, --help show this help message and exit\n```\n\n**Examples**\n\nIn the interactive mode, you can execute command in short form (without `tbears`) by predefined IPython's magic command.\nTAB will complete T-Bears's command or variable names. Use TAB.\n\n```bash\n(work) $ tbears console\ntbears) start\nStarted tbears service successfully\n...\n\ntbears) balance hxef73db5d0ad02eb1fadb37d0041be96bfa56d4e6\n\nbalance : 0x0\n```\nIn IPython, you can access previous output using \"_\" expression.\n\n```bash\ntbears) pwd\n'/Users/username/working/'\n\ntbears) _\n'/Users/username/working/'\n```\n\nYou can access nth-output using _n-th expression.\nThe `Out` object is a dictionary mapping input numbers to their outputs.\n\n```bash\ntbears) '1'\n'1'\n\ntbears) 'second'\n'second'\n\ntbears) 3\n3\n\ntbears) _2\n'second'\n\ntbears) Out\n{1: '1', 2: 'second', 3: 3, 4: 'second'}\n```\n\nYou can pass the value of a variable as an argument by prefixing the variable name with \"$\".\n\n```bash\ntbears) address = f\"hx{'0'*40}\"\n\ntbears) balance $address\n\nbalance : 0x2961fff8ca4a62327800000\n```\n\nYou should use \"{}\" expression when you pass a member of list or dictionary.\n\n```bash\ntbears) deploy sample_token\n\nSend deploy request successfully.\ntransaction hash: 0x541d8c9d3e12d92ad50897f81178301f21650b0b48dd5cc722b28b5c56cbc29a\n\n\ntbears) txresult {_['result']}\n\n{'jsonrpc': '2.0',\n 'result': {'txHash': '0xd1ee48aa5d26c1deb275da644e4ffe607c9e556474403c51040dfa59b0dd563c',\n 'blockHeight': '0x3',\n...\n\n```\n\nIn the interactive mode, `deployresults` command is available to list up the SCOREs that have been deployed while T-Bears interactive mode is running.\n```bash\ntbears) deployresults\n1.path : hello/, txhash : 0x583a89ec656d71d1641945a39792e016eefd6221ad536f9c312957f0c4336774, deployed in : http://127.0.0.1:9000/api/v3\n2.path : token/, txhash : 0x8c2fe3c877d46b7a1ba7feb117d0b12c8b88f33517ad2315ec45e8b7223c22f8, deployed in : http://127.0.0.1:9000/api/v3\n3.path : abctoken/, txhash : 0xee6e311d2652fd5ed5981f4906bca5d4d6933400721fcbf3528249d7bf460e42, deployed in : http://127.0.0.1:9000/api/v3\n\n```\n\nT-Bears assigns T-Bears command execution result to '_r' variable.\n\n```bash\n\ntbears) deploy sample_token\nSend deploy request successfully.\ntransaction hash: 0x5257b44fe0f36c492e255dbfcdb2ca1134dc9a942b875241d01db3d36ac2bdc8\n\ntbears) result = _r\n\ntbears) result\n{'jsonrpc': '2.0',\n 'result': '0x5257b44fe0f36c492e255dbfcdb2ca1134dc9a942b875241d01db3d36ac2bdc8',\n 'id': 1}\n\ntbears) txresult {result['result']}\nTransaction result: {\n \"jsonrpc\": \"2.0\",\n \"result\": {\n \"txHash\": \"0x5257b44fe0f36c492e255dbfcdb2ca1134dc9a942b875241d01db3d36ac2bdc8\",\n \"blockHeight\": \"0x1\",\n \"blockHash\": \"9c06e5c1bbd8ed1efc1ec7d1be59b64dd102bde43fc13c3f22e25e5aaa1eda51\",\n \"txIndex\": \"0x0\",\n \"to\": \"cx0000000000000000000000000000000000000000\",\n \"scoreAddress\": \"cxb8f2c9ba48856df2e889d1ee30ff6d2e002651cf\",\n...\n\ntbears) scoreapi {_r['result']['scoreAddress']}\nSCORE API: [\n {\n \"type\": \"fallback\",\n \"name\": \"fallback\",\n \"inputs\": []\n },\n...\n\n```\n\n### Configuration Files\n\n#### tbears_server_config.json\n\nWhen\u00a0starting\u00a0T-Bears (`tbears\u00a0start`), `tbears_server_config.json` is used to configure the parameters and initial settings.\n\n```json\n{\n \"hostAddress\": \"127.0.0.1\",\n \"port\": 9000,\n \"scoreRootPath\": \"./.score\",\n \"stateDbRootPath\": \"./.statedb\",\n \"log\": {\n \"logger\": \"tbears\",\n \"level\": \"info\",\n \"filePath\": \"./tbears.log\",\n \"colorLog\": true,\n \"outputType\": \"file\",\n \"rotate\": {\n \"type\": \"bytes\",\n \"maxBytes\": 10485760,\n \"backupCount\": 10\n }\n },\n \"service\": {\n \"fee\": false,\n \"audit\": false,\n \"deployerWhiteList\": false\n },\n \"genesis\": {\n \"nid\": \"0x3\",\n \"accounts\": [\n {\n \"name\": \"genesis\",\n \"address\": \"hx0000000000000000000000000000000000000000\",\n \"balance\": \"0x2961fff8ca4a62327800000\"\n },\n {\n \"name\": \"fee_treasury\",\n \"address\": \"hx1000000000000000000000000000000000000000\",\n \"balance\": \"0x0\"\n },\n {\n \"name\": \"test1\",\n \"address\": \"hxe7af5fcfd8dfc67530a01a0e403882687528dfcb\",\n \"balance\": \"0x2961fff8ca4a62327800000\"\n }\n ]\n },\n \"blockConfirmInterval\": 10,\n \"blockConfirmEmpty\": true\n}\n```\n\n| Field | Data type | Description |\n| :-------------- | :-------- | :----------------------------------------------------------- |\n| hostAddress | string | IP address that T-Bears service will listen on. |\n| port | int | Port number that T-Bears service will listen on. |\n| scoreRootPath | string | Root directory where SCORE will be installed. |\n| stateDbRootPath | string | Root directory where state DB file will be created. |\n| log | dict | T-Bears log setting |\n| log.logger | string | Main logger in process |\n| log.level | string | log level.
\"debug\", \"info\", \"warning\", \"error\" |\n| log.filePath | string | Log file path. |\n| log.colorLog | boolean | Log display option (color or black) |\n| log.outputType | string | \u201cconsole\u201d: log outputs to the console that T-Bears is running.
\u201cfile\u201d: log outputs to the file path.
\u201cconsole|file\u201d: log outputs to both console and file. |\n| log.rotate | dict | Log rotate setting |\n| log.rotate.type | string | \"peroid\": rotate by period.
\"bytes\": rotate by maxBytes.
\"period|bytes\": log rotate to both period and bytes. |\n| log.rotate.period | string | use logging.TimedRotatingFileHandler 'when'
ex) daily, weekly, hourly or minutely |\n| log.rotate.interval | string | use logging.TimedRotatingFileHandler 'interval'
ex) (period: hourly, interval: 24) == (period: daily, interval: 1)|\n| log.rotate.maxBytes | integer | use logging.RotatingFileHandler 'maxBytes'
ex) 10mb == 10 * 1024 * 1024 |\n| log.rotate.backupCount | integer | limit log file count |\n| service | didct | T-Bears service setting |\n| service.fee | boolean | true | false. Charge a fee per transaction when enabled |\n| service.audit | boolean | true | false. Audit deploy transactions when enabled |\n| service.deployerWhiteList | boolean | true | false. Limit SCORE deploy permission when enabled |\n| genesis | dict | Genesis information of T-Bears node. |\n| genesis.nid | string | Network ID. |\n| genesis.accounts | list | List of accounts that holds initial coins.
(index 0) genesis: account that holds initial coins.
(index 1) fee_treasury: account that collects transaction fees.
(index 2~): test accounts that you can add. |\n| channel | string | channel name interact with iconrpcserver and iconservice |\n| amqpKey | string | amqp key name interact with iconrpcserver and iconservice |\n| amqpTarget | string | amqp target name interact with iconrpcserver and iconservice |\n| blockConfirmInterval | integer | Confirm block every N seconds |\n| blockConfirmEmpty | boolean | true | false. Confirm empty block when enabled |\n\n#### tbears_cli_config.json\n\nFor every T-Bears CLI commands except `start`, `stop`, `clear`, `init` and `keystore`, this file is used to configure the default parameters and initial settings.\n\nIn this configuration file, you can define default options values for some CLI commands. For example, SCORE's `on_install()` or\u00a0`on_update()` method is called on deployment. You can set the deploy `mode` and the parameters (`scoreParams`) of `on_install()` or `on_update()` as shown below.\n\n```json\n{\n \"uri\": \"http://127.0.0.1:9000/api/v3\",\n \"nid\": \"0x3\",\n \"keyStore\": null,\n \"from\": \"hxe7af5fcfd8dfc67530a01a0e403882687528dfcb\",\n \"to\": \"cx0000000000000000000000000000000000000000\",\n \"deploy\": {\n \"mode\": \"install\",\n \"scoreParams\": {}\n },\n \"txresult\": {},\n \"transfer\": {}\n}\n```\n\n| Field | Data type | Description |\n| ------------------ | :--------- | :----------------------------------------------------------- |\n| uri | string | URI to send the request. |\n| nid | string | Network ID. 0x3 is reserved for T-Bears. |\n| keyStore | string | Keystore file path. |\n| from | string | From address. It is ignored if 'keyStore' is set. |\n| to | string | To address. |\n| stepLimit | string | (optional) stepLimit value. |\n| deploy | dict | Options for deploy command. |\n| deploy.mode | string | Deploy mode.
install: new SCORE deployment.
update: update the SCORE that was previously deployed. |\n| deploy.scoreParams | dict | Parameters to be passed to on_install() or on_update() |\n| deploy.from | string | Address of the SCORE deployer
Optional. This value will override \"from\" value. If not given, \"from\" value will be used. |\n| deploy.to | string | Used when update SCORE (The address of the SCORE being updated).
In the case of \"install\" mode, the address should be 'cx0000~'.
Optional. This value will override \"to\" value. If not given, \"to\" value will be used. |\n| txresult | dict | Options for txresult command.
You can define command options in a dict. |\n| transfer | dict | Options for transfer command.
You can define command options in a dict. |\n\nFollowing CLI commands and options can be defined in the configuration file.\n\n| Command | Options |\n| :------- | :--------------------------------------------------------- |\n| deploy | uri, nid, keyStore, from, to, mode, scoreParams, stepLimit |\n| transfer | uri, nid, keyStore, from, stepLimit |\n| sendtx | uri, nid, keyStore, from, stepLimit |\n| txresult
balance
totalsupply
scoreapi
txbyhash
lastblock
blockbyhash
blockbyheight
call
| uri |\n\n\n#### keystore_test1\n\nKeystore file for the test account. Password of this keystore file is `test1_Account`.\nYou can find the test account 'test1' in `tbears_server_config.json` and this test account has enough balance to test on local environment.\n\n**Do not transfer any ICX or tokens to 'test1' account.**\n\n```json\n{\n \"address\": \"hxe7af5fcfd8dfc67530a01a0e403882687528dfcb\",\n \"crypto\": {\n \"cipher\": \"aes-128-ctr\",\n \"cipherparams\": {\n \"iv\": \"dc0762c56ca56cd06038df5051c9e23e\"\n },\n \"ciphertext\": \"7cc40efac0b14eaf56f951c9c9620f9f34bac548175e85052aa9f753423dc984\",\n \"kdf\": \"scrypt\",\n \"kdfparams\": {\n \"dklen\": 32,\n \"n\": 16384,\n \"r\": 1,\n \"p\": 8,\n \"salt\": \"380c00457be5fd1c244f5745c322b21f\"\n },\n \"mac\": \"157dda6fb7092df62ff93411bed54e5a64dbf06c1aae3b375d356061a9c3dfd1\"\n },\n \"id\": \"e2ca66c6-b8de-4413-82cb-52c2a2200b8d\",\n \"version\": 3,\n \"coinType\": \"icx\"\n}\n```\n\n## References\n- [ICON JSON-RPC API v3](https://github.com/icon-project/icon-rpc-server/blob/master/docs/icon-json-rpc-v3.md)\n- [earlgrey](https://github.com/icon-project/earlgrey)\n- [ICON Commons](https://github.com/icon-project/icon-commons)\n- [ICON RPC Server](https://github.com/icon-project/icon-rpc-server)\n- [ICON Service](https://github.com/icon-project/icon-service)\n- [SCORE integration Test](https://github.com/icon-project/t-bears/blob/master/docs/score_integration_test.md)\n\n[debug_estimateStep]: https://github.com/icon-project/icon-rpc-server/blob/master/docs/icon-json-rpc-v3.md#debug_estimatestep\n\n\n## License\n\nThis project follows the Apache 2.0 License. Please refer to [LICENSE](https://www.apache.org/licenses/LICENSE-2.0) for details.\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/icon-project/t-bears", "keywords": "", "license": "Apache License 2.0", "maintainer": "", "maintainer_email": "", "name": "tbears", "package_url": "https://pypi.org/project/tbears/", "platform": "", "project_url": "https://pypi.org/project/tbears/", "project_urls": { "Homepage": "https://github.com/icon-project/t-bears" }, "release_url": "https://pypi.org/project/tbears/1.5.0/", "requires_dist": [ "iconrpcserver (>=1.3.1.1)", "iconservice (>=1.4.3)", "iconsdk (>=1.1.0)", "ipython (==6.4.0)" ], "requires_python": "", "summary": "Test suite for ICON SCORE development", "version": "1.5.0" }, "last_serial": 5770661, "releases": { "1.0.3": [ { "comment_text": "", "digests": { "md5": "f46a87d11da1f626c4d2c68b6566da6c", "sha256": "fe3758cb003c676865e0a732002a8342decb31bc8713b285eee3d506255b284c" }, "downloads": -1, "filename": "tbears-1.0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "f46a87d11da1f626c4d2c68b6566da6c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 64653, "upload_time": "2018-08-24T00:15:27", "url": "https://files.pythonhosted.org/packages/7a/c1/8a84d3c759888059e6566fb76c3946f41aa1711418579751c1cc962a7f1c/tbears-1.0.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "33890bd1873fb180e6ceedc80781588a", "sha256": "ad62e4a9e77072595448162fb2c89ca61f55a5f6fcb95206560bb21c963a707c" }, "downloads": -1, "filename": "tbears-1.0.3.tar.gz", "has_sig": false, "md5_digest": "33890bd1873fb180e6ceedc80781588a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 62891, "upload_time": "2018-08-24T00:15:28", "url": "https://files.pythonhosted.org/packages/0c/2e/af6d686a537b170a4aec400bffd396e2095b7c3e2f19af9b34389dfb8cd4/tbears-1.0.3.tar.gz" } ], "1.0.4": [ { "comment_text": "", "digests": { "md5": "fe7208ee8580477c52e7ded7a9da9e26", "sha256": "8a0afcd875144670d789e9a492f5ef90c31962e92ae8f612d021cc2ef15a2ba0" }, "downloads": -1, "filename": "tbears-1.0.4-py3-none-any.whl", "has_sig": false, "md5_digest": "fe7208ee8580477c52e7ded7a9da9e26", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 69892, "upload_time": "2018-08-28T06:52:53", "url": "https://files.pythonhosted.org/packages/88/b0/4f6a775e6a9ddee3f0e66fb34b8a0caf842cd5e078dccc87daeb5b13652a/tbears-1.0.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f4e554364e5c27f6128301383d8198a6", "sha256": "5f5a314313d3dc36bfafec33319f4d6c51703eefa869886368736c71e906e458" }, "downloads": -1, "filename": "tbears-1.0.4.tar.gz", "has_sig": false, "md5_digest": "f4e554364e5c27f6128301383d8198a6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 67535, "upload_time": "2018-08-28T06:53:16", "url": "https://files.pythonhosted.org/packages/d5/df/1507dca04aea59d0d0da103f20e5e53ab63cb788d91729e8671ce024435b/tbears-1.0.4.tar.gz" } ], "1.0.5": [ { "comment_text": "", "digests": { "md5": "ddaea96e9fd7c5799c96c4d19b3e83a7", "sha256": "8d51764d0d8bebc56f8786e59433c845333723ddd6d59c25b3557dc978a62ccc" }, "downloads": -1, "filename": "tbears-1.0.5-py3-none-any.whl", "has_sig": false, "md5_digest": "ddaea96e9fd7c5799c96c4d19b3e83a7", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 66275, "upload_time": "2018-09-06T07:54:09", "url": "https://files.pythonhosted.org/packages/22/c0/7837ffbded4642519ad4c012cb0d8261e5abdd53fc2f2ee7a595164c5d05/tbears-1.0.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e103ee9023aa8e4c94e3cb4c737250e2", "sha256": "d06641464c9b4dd23e2b976eb0625d64b06261e28a9b0af91507b47ef8f62bc6" }, "downloads": -1, "filename": "tbears-1.0.5.tar.gz", "has_sig": false, "md5_digest": "e103ee9023aa8e4c94e3cb4c737250e2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 65477, "upload_time": "2018-09-06T07:54:11", "url": "https://files.pythonhosted.org/packages/ee/27/a075986a1668e997458bb01fa3c3130472a71ce0e80c9c226aa4ee9c3c52/tbears-1.0.5.tar.gz" } ], "1.0.5.1": [ { "comment_text": "", "digests": { "md5": "7dd285bd37771e64793429e252ca1c45", "sha256": "6f5888ea2734e21d1c70103c6ee1aba10df90ac754382b11e8a31267072b6bd6" }, "downloads": -1, "filename": "tbears-1.0.5.1-py3-none-any.whl", "has_sig": false, "md5_digest": "7dd285bd37771e64793429e252ca1c45", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 66294, "upload_time": "2018-09-07T12:28:37", "url": "https://files.pythonhosted.org/packages/33/43/919e1baa089b026019dd731d4e8f2af603eea9e02e51a00e1d72bff0c7b5/tbears-1.0.5.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e7b33d799647932f6ace71bef63b6bb8", "sha256": "ca0c8814fe0d2f2ab4510cd36deaf4449700f35c72b42ecc41e9c53aeeba0fbf" }, "downloads": -1, "filename": "tbears-1.0.5.1.tar.gz", "has_sig": false, "md5_digest": "e7b33d799647932f6ace71bef63b6bb8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 65470, "upload_time": "2018-09-07T12:28:39", "url": "https://files.pythonhosted.org/packages/f2/46/51821d8af90c84896a940f9a764682c47789e491ff9d36548dd569b81372/tbears-1.0.5.1.tar.gz" } ], "1.0.6": [ { "comment_text": "", "digests": { "md5": "08fae645eacafccd9c6f482f2412a455", "sha256": "a52feb85851d180ceead0a9f2cdf641272fae56dff3a462b2945e26690ecd85c" }, "downloads": -1, "filename": "tbears-1.0.6-py3-none-any.whl", "has_sig": false, "md5_digest": "08fae645eacafccd9c6f482f2412a455", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 64389, "upload_time": "2018-10-12T06:34:00", "url": "https://files.pythonhosted.org/packages/16/68/1138b5dbd251b0528631455c1768b87494f568bc85be340558c22f95afe9/tbears-1.0.6-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fa9b5ea669b4f9977981513bfd46199a", "sha256": "df3a75ab9cf743e7cfca1699395f800e2369342f31f47210c75a3ddc74f67d6e" }, "downloads": -1, "filename": "tbears-1.0.6.tar.gz", "has_sig": false, "md5_digest": "fa9b5ea669b4f9977981513bfd46199a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 66036, "upload_time": "2018-10-12T06:34:02", "url": "https://files.pythonhosted.org/packages/e7/54/1fa10a99a2936876e693c60106be8494ead53e456e766c20710de0bd3701/tbears-1.0.6.tar.gz" } ], "1.0.6.1": [ { "comment_text": "", "digests": { "md5": "0de6bded6560ca2b96d28ebe62262df4", "sha256": "a9797ea7966decf7b0e4bf1ece122c07927776e40af59b407aa697de1ff97694" }, "downloads": -1, "filename": "tbears-1.0.6.1-py3-none-any.whl", "has_sig": false, "md5_digest": "0de6bded6560ca2b96d28ebe62262df4", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 68521, "upload_time": "2018-10-16T13:37:11", "url": "https://files.pythonhosted.org/packages/24/f7/ec69e43d3c7e5f90e0f6e041884b04039853960f2f1de896e59997e74138/tbears-1.0.6.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d7b759d5708716e67fe958a7a2cc6c7f", "sha256": "f2790b5b549cddc1c72ee4ed8b5d02a1ba7c6d440933c38bce1cdbab6f38b18d" }, "downloads": -1, "filename": "tbears-1.0.6.1.tar.gz", "has_sig": false, "md5_digest": "d7b759d5708716e67fe958a7a2cc6c7f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 67651, "upload_time": "2018-10-16T13:37:12", "url": "https://files.pythonhosted.org/packages/2e/20/718f14eff7787080e6d19c2184c515a324fe5d06e10816d8a4e13a9acea1/tbears-1.0.6.1.tar.gz" } ], "1.0.6.2": [ { "comment_text": "", "digests": { "md5": "e9a2894e1c0a4cb08cc52eca8489303f", "sha256": "f723deb100b2089ed0815fad50b55f0dfcaf0d5960eda5927f6e8a065cbf08ad" }, "downloads": -1, "filename": "tbears-1.0.6.2-py3-none-any.whl", "has_sig": false, "md5_digest": "e9a2894e1c0a4cb08cc52eca8489303f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 68589, "upload_time": "2018-10-19T07:59:28", "url": "https://files.pythonhosted.org/packages/8c/ee/3cc991c96f94f96e0760743de28bc3e4e11870867c15482035017aaaf148/tbears-1.0.6.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "30813b8127c6f790713663fcb8d664cd", "sha256": "043ad8a90da186365cbeea94de0f1e874e197bf3787570bc09b5f24371c5c7f4" }, "downloads": -1, "filename": "tbears-1.0.6.2.tar.gz", "has_sig": false, "md5_digest": "30813b8127c6f790713663fcb8d664cd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 67826, "upload_time": "2018-10-19T07:59:30", "url": "https://files.pythonhosted.org/packages/f7/87/f3fe79fbdc15b2fb7a5331a4a16b5faf068fde9c8f28cbe9744298ca8fc6/tbears-1.0.6.2.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "cdec48acea6c2ec31910b0a2919bd3f6", "sha256": "a0c227b2a0dd437d9a927bd3a243d924398e6ced422d8fcc8e77f64af93a75bd" }, "downloads": -1, "filename": "tbears-1.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "cdec48acea6c2ec31910b0a2919bd3f6", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 69819, "upload_time": "2018-11-29T00:30:33", "url": "https://files.pythonhosted.org/packages/04/19/11e11c3bdd7806837903238f892c4e8c7b50bf26081a2dfba4356786e16e/tbears-1.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d650c629e65d67286af522a49987955f", "sha256": "9ea1696193c9bbf21a217d4d1ba2d0703dd55576b3e6c11809cc2686ecbb6de2" }, "downloads": -1, "filename": "tbears-1.1.0.tar.gz", "has_sig": false, "md5_digest": "d650c629e65d67286af522a49987955f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 69471, "upload_time": "2018-11-29T00:30:34", "url": "https://files.pythonhosted.org/packages/c3/54/73cfbe87ae7ade21ad06666a61702f011240445407475bf134679f22fefc/tbears-1.1.0.tar.gz" } ], "1.1.0.1": [ { "comment_text": "", "digests": { "md5": "4c5614f118ffe8536d77fe332aa6ff1f", "sha256": "2dae2d062566ab74a7bd0fbe1a3f49263d0011a32339bd54b384568687bd7c57" }, "downloads": -1, "filename": "tbears-1.1.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "4c5614f118ffe8536d77fe332aa6ff1f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 66162, "upload_time": "2019-01-03T07:54:07", "url": "https://files.pythonhosted.org/packages/5e/b6/f184ffb6a71b04ed74af56d567012ebee02e1857bef6ac418d7ee16647e1/tbears-1.1.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c6307b645290116e88a0ae547e4f060a", "sha256": "8cab5286de8263bcab6bf137bea6df93f69096d901e38eb20ca9ef10d2c7e378" }, "downloads": -1, "filename": "tbears-1.1.0.1.tar.gz", "has_sig": false, "md5_digest": "c6307b645290116e88a0ae547e4f060a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 67214, "upload_time": "2019-01-03T07:54:09", "url": "https://files.pythonhosted.org/packages/07/97/703f6dbcb6e83adc39f822280e79dc349c80719ecf59f2d18bc4d3e0e112/tbears-1.1.0.1.tar.gz" } ], "1.2.0": [ { "comment_text": "", "digests": { "md5": "bf6d6e3b2af38816e7c1e72dba3a4ad0", "sha256": "773fec1cd0463ad57cde98bc9037c330f0d99e2b658179c96ea9736d0be9f620" }, "downloads": -1, "filename": "tbears-1.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "bf6d6e3b2af38816e7c1e72dba3a4ad0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 78245, "upload_time": "2019-05-22T09:03:48", "url": "https://files.pythonhosted.org/packages/ad/3b/0cabdb89823fe5df6247e5516660c14c40ef99e702ca7049b7771699081c/tbears-1.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "68986837b9f9597b2535c2c8a47e8bfa", "sha256": "fd5037b623ac82844ce1d06486ef5d2693d21c529308832be705c7a7ab6efca2" }, "downloads": -1, "filename": "tbears-1.2.0.tar.gz", "has_sig": false, "md5_digest": "68986837b9f9597b2535c2c8a47e8bfa", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 72842, "upload_time": "2019-05-22T09:03:52", "url": "https://files.pythonhosted.org/packages/e9/ec/0e8dcf159dc21182bb6f56bd1266fc9f531e5c0d64b677e7747f9bbdf5f2/tbears-1.2.0.tar.gz" } ], "1.2.1": [ { "comment_text": "", "digests": { "md5": "325f0c380c8e33c7deb4a9a4bdb162d5", "sha256": "ee93a536e5c7569b034c6243250f1fb5b78972f0968b122787e95d1e733d2bec" }, "downloads": -1, "filename": "tbears-1.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "325f0c380c8e33c7deb4a9a4bdb162d5", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 78831, "upload_time": "2019-06-12T08:08:35", "url": "https://files.pythonhosted.org/packages/95/a0/f41484b1e824acbd44f051a2ceb43fb30cc826325a19df4adf58ce7808eb/tbears-1.2.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c690cb2de7f93628d15bb8609b90c247", "sha256": "2c606df30df2e3d07afe62918d0edddaef1436287a8617d0ae71fcd890dddc07" }, "downloads": -1, "filename": "tbears-1.2.1.tar.gz", "has_sig": false, "md5_digest": "c690cb2de7f93628d15bb8609b90c247", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 73120, "upload_time": "2019-06-12T08:08:37", "url": "https://files.pythonhosted.org/packages/3f/83/3d56bb99ff10ff58acec59ea88583dfd69463198fc95db59b0305a871678/tbears-1.2.1.tar.gz" } ], "1.2.2": [ { "comment_text": "", "digests": { "md5": "55e122f2bd07ccf180e75d66fa8f34bd", "sha256": "56c4bd3c5dc0f34cab5c6aaeace1af73d751e678870bcae9a52496e167675564" }, "downloads": -1, "filename": "tbears-1.2.2-py3-none-any.whl", "has_sig": false, "md5_digest": "55e122f2bd07ccf180e75d66fa8f34bd", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 80181, "upload_time": "2019-06-21T14:33:34", "url": "https://files.pythonhosted.org/packages/12/24/13ab2113d7d127d3278f9e6bbdac3f0f46f9cadf0b1cb34a16d87f56b369/tbears-1.2.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c8db6d4e07fe89414f89e41c2bdf79b9", "sha256": "5c04581264efd538b012345b4514f03fbf1fb84974080feba992a2613515ee01" }, "downloads": -1, "filename": "tbears-1.2.2.tar.gz", "has_sig": false, "md5_digest": "c8db6d4e07fe89414f89e41c2bdf79b9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 73918, "upload_time": "2019-06-21T14:33:36", "url": "https://files.pythonhosted.org/packages/6b/c2/532855f6aa5c04d52775d1278380fbf3f38a9805121414b8b76461171ecb/tbears-1.2.2.tar.gz" } ], "1.3.0": [ { "comment_text": "", "digests": { "md5": "856eea4ef6905ae113b8603d3f53b506", "sha256": "9619a0bf3a37f5821bd6bb9515b7440d3e7fea7d176e15d4ab58f6e3eb132866" }, "downloads": -1, "filename": "tbears-1.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "856eea4ef6905ae113b8603d3f53b506", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 80179, "upload_time": "2019-07-16T03:27:11", "url": "https://files.pythonhosted.org/packages/55/42/af96634f62c446a9422fb6001dbba4d2e4b5ec0993779ddad3a36760a9a3/tbears-1.3.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7c590ff50a21a9fb86c9b5ae8856f9df", "sha256": "5fe60fda3f8f28177e0a02f1388ff8076647cae6b17a015f194736ca33f6f057" }, "downloads": -1, "filename": "tbears-1.3.0.tar.gz", "has_sig": false, "md5_digest": "7c590ff50a21a9fb86c9b5ae8856f9df", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 73915, "upload_time": "2019-07-16T03:27:13", "url": "https://files.pythonhosted.org/packages/d5/df/c5b49af14775d22451793313337e03a28c036c61144f5bf2e1524ecf42d5/tbears-1.3.0.tar.gz" } ], "1.4.0": [ { "comment_text": "", "digests": { "md5": "d751dca48a7fc3279d9132007b73d9ab", "sha256": "d96a8dd0e60bdd1e9d552315b158fe591fbc1eeefdaeececa2bf284dc3508c6f" }, "downloads": -1, "filename": "tbears-1.4.0-py3-none-any.whl", "has_sig": false, "md5_digest": "d751dca48a7fc3279d9132007b73d9ab", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 80984, "upload_time": "2019-08-19T06:29:37", "url": "https://files.pythonhosted.org/packages/7f/70/fd38ac678bcdd10f05ba4544ce6dbbf7e5ecaad2f7b9303e1e41da6c064f/tbears-1.4.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d08fdba710b3cf9fc10505571edbe634", "sha256": "49f452e62570242f954e396dcda022776ecfa030621d2ff5db63bb032c074356" }, "downloads": -1, "filename": "tbears-1.4.0.tar.gz", "has_sig": false, "md5_digest": "d08fdba710b3cf9fc10505571edbe634", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 76715, "upload_time": "2019-08-19T06:29:40", "url": "https://files.pythonhosted.org/packages/73/2e/43ffafe175d2e0080e12781724fc421f286e27485b459f3eaaf41595aee5/tbears-1.4.0.tar.gz" } ], "1.5.0": [ { "comment_text": "", "digests": { "md5": "7918463312e8c5ecc8ce37d2d71f4a4d", "sha256": "9b94d863ad442b52867cf80f42f7c3a19c114c33764787ad0d02bf6a8f695634" }, "downloads": -1, "filename": "tbears-1.5.0-py3-none-any.whl", "has_sig": false, "md5_digest": "7918463312e8c5ecc8ce37d2d71f4a4d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 93760, "upload_time": "2019-09-02T12:40:30", "url": "https://files.pythonhosted.org/packages/d9/fe/6e5dbf6b92c64cec3dd459eaaa0a07c275838efba3f98bd27afd5e015c22/tbears-1.5.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "800795b8ab7e6933b6c63b7fb32d274b", "sha256": "b6cbe5b6c5621a35416b7f84b64a45784ca3b0214737d29cb14c2922352a2365" }, "downloads": -1, "filename": "tbears-1.5.0.tar.gz", "has_sig": false, "md5_digest": "800795b8ab7e6933b6c63b7fb32d274b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 89366, "upload_time": "2019-09-02T12:40:32", "url": "https://files.pythonhosted.org/packages/9d/49/7fca1ce592b900e17f325f688d8c819bcc8c13b848372416092044e33e28/tbears-1.5.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "7918463312e8c5ecc8ce37d2d71f4a4d", "sha256": "9b94d863ad442b52867cf80f42f7c3a19c114c33764787ad0d02bf6a8f695634" }, "downloads": -1, "filename": "tbears-1.5.0-py3-none-any.whl", "has_sig": false, "md5_digest": "7918463312e8c5ecc8ce37d2d71f4a4d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 93760, "upload_time": "2019-09-02T12:40:30", "url": "https://files.pythonhosted.org/packages/d9/fe/6e5dbf6b92c64cec3dd459eaaa0a07c275838efba3f98bd27afd5e015c22/tbears-1.5.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "800795b8ab7e6933b6c63b7fb32d274b", "sha256": "b6cbe5b6c5621a35416b7f84b64a45784ca3b0214737d29cb14c2922352a2365" }, "downloads": -1, "filename": "tbears-1.5.0.tar.gz", "has_sig": false, "md5_digest": "800795b8ab7e6933b6c63b7fb32d274b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 89366, "upload_time": "2019-09-02T12:40:32", "url": "https://files.pythonhosted.org/packages/9d/49/7fca1ce592b900e17f325f688d8c819bcc8c13b848372416092044e33e28/tbears-1.5.0.tar.gz" } ] }