On this page

latest contributor to this doc

Last Edit:

@smk762

Task: QTUM Activation

API-v2task::enable_qtum::init

Use this method for task managed activation of QTUM coins and tokens. Refer to the task managed activation overview for activation of other coin types.

ParameterTypeDescription
tickerstringThe ticker of the coin you want to enable.
activation_paramsobjectAn object containing the actvation parameters below.
.priv_key_policyobjectOptional. A standard PrivKeyPolicy object. Defaults to {"type": "ContextPrivKey"}.
.min_addresses_numberintegerHow many additional addreesses to generate at a minimum.
.scan_policystringWhether or not to scan for new addresses. Select from do_not_scan, scan_if_new_wallet or scan. Note that scan will result in multple requests to the Komodo DeFi Framework.
.gap_limitintegerThe max number of empty addresses in a row. If transactions were sent to an address outside the gap_limit, they will not be identified when scanning.
.modeobjectAn object containing RPC type and data parameters as below.
..rpcstringUTXO RPC mode. Options: { "rpc":"Native" } if running a native blockchain node, or "rpc":"Electrum" to use electrum RPCs. If using electrum, a list of electrum servers is required under rpc_data.servers
..rpc_dataobjectAn object containing electrum server information.
...serverslistA list of electrum server URLs (https://github.com/KomodoPlatform/coins/tree/master/electrums)
....urlobjectThe url and port of a coins electrum server
....ws_urlobjectOptional. Used to define electrum server url/port for websocket connections.
....protocolobjectDefines electrum server protocol as TCP or SSL. Defaults to TCP
....disable_cert_verificationbooleanOptional. For SSL electrum connections, this will allow expired certificates.

ParameterTypeDescription
task_idintegerAn identifying number which is used to query task status.

task::enable_qtum::init

POST
task::enable_qtum::init
{
  "userpass": "RPC_UserP@SSW0RD",
  "mmrpc": "2.0",
  "method": "task::enable_qtum::init",
  "params": {
    "ticker": "QTUM",
    "activation_params": {
      "mode": {
        "rpc": "Electrum",
        "rpc_data": {
          "servers": [
            {
              "url": "electrum2.cipig.net:10050"
            },
            {
              "url": "electrum3.cipig.net:20050",
              "ws_url": "electrum3.cipig.net:30050",
              "protocol": "SSL"
            }
          ]
        }
      },
      "scan_policy": "scan_if_new_wallet",
      "priv_key_policy": {
        "type": "Trezor"
      },
      "min_addresses_number": 3,
      "gap_limit": 20
    }
  }
}
API-v2task::enable_qtum::status

After running the task::enable_qtum::init method, we can query the status of activation to check its progress. The response will return the following:

  • Result of the task (success or error)
  • Progress status (what state the task is in)
  • Required user action (what user should do before the task can continue)

ParameterTypeDescription
task_idintegerThe identifying number returned when initiating the initialisation process.
forget_if_finishedbooleanIf false, will return final response for completed tasks. Optional, defaults to true.

task::enable_qtum::status

POST
task::enable_qtum::status
{
  "userpass": "RPC_UserP@SSW0RD",
  "mmrpc": "2.0",
  "method": "task::enable_qtum::status",
  "params": {
    "task_id": 0,
    "forget_if_finished": false
  }
}

The response formats for this method are the same as the task managed activation responses.

API-v2task::enable_qtum::user_action

If the task::enable_qtum::status returns UserActionRequired, we need to use the task::enable_qtum::user_action method to enter our PIN

ParameterTypeDescription
task_idintegerThe identifying number returned when initiating the initialisation process.
user_actionobjectObject containing the params below
user_action.action_typestringWill be TrezorPin for this method
user_action.pinstring (number)When the Trezor device is displaying a grid of numbers for PIN entry, this param will contain your Trezor pin, as mapped through your keyboard numpad. See the image below for more information.
Trezor Pin

ParameterTypeDescription
resultstringThe outcome of the request.

task::enable_qtum::user_action

POST
task::enable_qtum::user_action
{
  "userpass": "RPC_UserP@SSW0RD",
  "mmrpc": "2.0",
  "method": "task::enable_qtum::user_action",
  "params": {
    "task_id": 0,
    "user_action": {
      "action_type": "TrezorPin",
      "pin": "862743"
    }
  }
}

CoinCreationError: Returned when a coin is not supported.

{
  "mmrpc": "2.0",
  "result": {
    "status": "Error",
    "details": {
      "error": "Error on platform coin QTUM creation: Coin doesn't support Trezor hardware wallet. Please consider adding the 'trezor_coin' field to the coins config",
      "error_path": "lib.init_qtum_activation.utxo_coin_builder",
      "error_trace": "lib:103] init_qtum_activation:71] utxo_coin_builder:234]",
      "error_type": "CoinCreationError",
      "error_data": {
        "ticker": "QTUM",
        "error": "Coin doesn't support Trezor hardware wallet. Please consider adding the 'trezor_coin' field to the coins config"
      }
    }
  },
  "id": null
}
API-v2task::enable_qtum::cancel

If you want to cancel the enabling process before it has completed, you can use this method.

StructureTypeDescription
task_idintegerThe identifying number returned when initiating the enabling process.

StructureTypeDescription
resultstringIndicates task cancellation was succesful.
errorstringAn error message to explain what went wrong.
error_pathstringAn indicator of the class or function which reurned the error.
error_tracestringAn indicator of where in the source code the error was thrown.
error_typestringAn enumerated value for the returned error.
error_datastringThe input task ID which resulted in the error.

task::enable_qtum::cancel

POST
task::enable_qtum::cancel
{
  "userpass": "RPC_UserP@SSW0RD",
  "method": "task::enable_qtum::cancel",
  "mmrpc": "2.0",
  "params": {
    "task_id": 3
  }
}