On this page

latest contributor to this doc

Last Edit:

@gcharang

Komodo DeFi Framework Method: task::init_trezor::status

API-v2task::init_trezor::status

After running the task::init_trezor::init method, you can query the status of device initialisation to check its progress.

Parameter* = requiredTypeDescription
task_id*
integer
The identifying number returned when initiating the initialisation process.
forget_if_finished
boolean
default: true
Optional. If false, will return final response for completed tasks.

Parameter* = requiredTypeDescription
details*
object
Depending on the state of process progress, this will contain different information as detailed in the items below.
details.device_id*
string (hex)
A unique identifier of the device, set during manufacturing.
details.device_name*
string
The name of the device as defined by user in Trezor Suite or another wallet application.
details.device_pubkey*
string (hex)
The hardware wallet device's pubkey. If included in the task::init_trezor::init request, it will be the same as input. If not, it should be stored for future use.
details.model*
string
The model of the hardware wallet device (e.g. One or T)
details.type*
string
Type of hardware wallet device (e.g. Trezor)
status*
string
A short indication of how the requested process is progressing.

task::init_trezor::status

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

Possible "In progress" Cases:

  • Initializing - This is the normal task state. It does not require any action from the user.

  • WaitingForTrezorToConnect - The Komodo DeFi Framework API is waiting for the user to plugin a Trezor device.

{
  "mmrpc": "2.0",
  "result": {
    "status": "InProgress",
    "details": "WaitingForTrezorToConnect"
  },
  "id": null
}
  • FollowHwDeviceInstructions - The Komodo DeFi Framework API is waiting for the user to follow instructions displayed on the device (e.g. clicking a button to confirm).
{
  "mmrpc": "2.0",
  "result": {
    "status": "InProgress",
    "details": "FollowHwDeviceInstructions"
  },
  "id": null
}
  • UserActionRequired - This will either be EnterTrezorPin or EnterTrezorPassphrase. Refer to the task::init_trezor::user_action section for more information.
{
  "mmrpc": "2.0",
  "result": {
    "status": "UserActionRequired",
    "details": "EnterTrezorPin"
  },
  "id": null
}

{
  "mmrpc": "2.0",
  "result": {
    "status": "Ok",
    "details": {
      "result": {
        "type": "Trezor",
        "model": "One",
        "device_name": "Fitzchivalry Farseer",
        "device_id": "A1CCF11243A795A84111955E",
        "device_pubkey": "066deb87b0d0500ec2e9b85f5314870b03a53517"
      }
    }
  },
  "id": null
}

  • HwContextInitializingAlready - Returned if user calls task::init_trezor::init before the previous task::init_trezor::init task has been completed.
{
  "mmrpc": "2.0",
  "result": {
    "status": "Error",
    "details": {
      "error": "Hardware Wallet context is initializing already",
      "error_path": "init_hw.crypto_ctx",
      "error_trace": "init_hw:151] crypto_ctx:235]",
      "error_type": "HwContextInitializingAlready"
    }
  },
  "id": null
}
  • Timeout - Task timed out while trying to connect to a device.
{
  "mmrpc": "2.0",
  "result": {
    "status": "Error",
    "details": {
      "error": "RPC timed out 300s",
      "error_path": "init_hw.crypto_ctx.hw_client",
      "error_trace": "init_hw:151] crypto_ctx:248] crypto_ctx:354] hw_client:156]",
      "error_type": "Timeout",
      "error_data": {
        "secs": 300,
        "nanos": 0
      }
    }
  },
  "id": null
}
  • NoSuchTask - Something went wrong or task::init_trezor::init was not called. Refer to the task::init_trezor::init section for more information.
{
  "mmrpc": "2.0",
  "error": "No such task '0'",
  "error_path": "init_hw",
  "error_trace": "init_hw:184]",
  "error_type": "NoSuchTask",
  "error_data": 0,
  "id": null
}
  • HwError - This is the most important error type. Unlike other error types, HwError requires the GUI / User to check the details in error_data field to know which action is required. View the HwError error type details for more info.

When requesting the status of a task, if an error_type of HwError is returned, the GUI / User should check the details in error_data field to know which action is required (as detailed below).

The connected Trezor device has a different pubkey value than what was specified in the device_pubkey parameter

{
  "mmrpc": "2.0",
  "result": {
    "status": "Error",
    "details": {
      "error": "Found unexpected device. Please re-initialize Hardware wallet",
      "error_path": "lib.common_impl.coin_balance.utxo_common.hd_pubkey.hw_ctx",
      "error_trace": "lib:93] common_impl:46] coin_balance:304] utxo_common:163] hd_pubkey:176] hw_ctx:149]",
      "error_type": "HwError",
      "error_data": "FoundUnexpectedDevice"
    }
  },
  "id": null
}

Multiple Trezor devices are plugged in. Remove the additional devices, and keep the one you want to use plugged in.

{
  "mmrpc": "2.0",
  "result": {
    "status": "Error",
    "details": {
      "error": "Found multiple devices. Please unplug unused devices",
      "error_path": "init_hw.crypto_ctx.hw_client",
      "error_trace": "init_hw:151] crypto_ctx:248] crypto_ctx:354] hw_client:152] hw_client:126]",
      "error_type": "HwError",
      "error_data": "FoundMultipleDevices"
    }
  },
  "id": null
}

No Trezor device detected by the Komodo DeFi Framework API. Make sure it is plugged in, or try a different USB cable / port.

{
  "mmrpc": "2.0",
  "result": {
    "status": "Error",
    "details": {
      "error": "No Trezor device available",
      "error_path": "init_hw.crypto_ctx.hw_ctx.response.usb.libusb",
      "error_trace": "init_hw:151] crypto_ctx:248] crypto_ctx:354] hw_ctx:120] response:136] usb:46] libusb:195]",
      "error_type": "HwError",
      "error_data": "NoTrezorDeviceAvailable"
    }
  },
  "id": null
}