Komodo DeFi Framework Method: task::init_trezor::status
After running the task::init_trezor::init
method, you can query the status of device initialisation to check its progress.
Parameter* = required | Type | Description |
---|---|---|
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* = required | Type | Description |
---|---|---|
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
{
"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 beEnterTrezorPin
orEnterTrezorPassphrase
. 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 callstask::init_trezor::init
before the previoustask::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 ortask::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 inerror_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
}