Task: ETH/EVM Activation
task::enable_eth::init
Use this method for task managed activation of ETH/EVM coins & tokens. Refer to the task managed activation overview for activation of other coin types.
Arguments
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| ticker | string | ✓ | Ticker of the platform protocol coin. Options: ETH, AVAX, BNB, FTM, MATIC, ONE, ETH-ARB20 | |
| mm2 | integer | – | Required if not set in coins file. Informs the Komodo DeFi Framework API whether or not the coin is expected to function. Accepted values are 0 or 1 | |
| swap_contract_address | string | ✓ | Address of etomic swap smart contract | |
| fallback_swap_contract | string | ✓ | Address of backup etomic swap smart contract. | |
| nodes | array of objects | ✓ | A list of standard CoinNode objects. | |
| erc20_tokens_requests | array of objects | ✓ | A list of standard TokensRequest objects. | |
| gas_station_url | string | – | A url for gas station api. | |
| gas_station_decimals | integer | – | 8 | For ETH/ERC20 and other gas model chains. Defines the decimals used to denominate the gas station response to gwei units. For example, the ETH gas station uses 8 decimals, which means that "average": 860 is equal to 86 gwei. While the Matic gas station uses 9 decimals, so 860 would mean 860 gwei exactly. |
| gas_station_policy.policy | string | – | "MeanAverageFast" | For ETH/ERC20 and other gas model chains. Defines the method of gas price calculation from the station response. "MeanAverageFast" will use the mean between average and fast fields. "Average" will return a simple average value. |
| get_balances | boolean | – | true | If false, coin and token balances will not be returned in the response, and the response will be returned more quickly. |
| priv_key_policy | string | – | ContextPrivKey | Value can be ContextPrivKey,Trezor when Komodo DeFi Framework is built for native platforms. value can be ContextPrivKey, Trezor, Metamask when the Komodo DeFi Framework is built targeting wasm |
| required_confirmations | integer | – | 3 | When the platform coin is involved, the number of confirmations for the Komodo DeFi Framework API to wait during the transaction steps of an atomic swap |
| requires_notarization | boolean | – | false | If true, coins protected by Komodo Platform's dPoW security will wait for a notarization before progressing to the next atomic swap transactions step. |
| rpc_mode | string | – | Default | Value can be Metamask only when the Komodo DeFi Framework is built targeting wasm. |
| tx_history | boolean | – | false | If true the Komodo DeFi Framework API will preload transaction history as a background process. Must be set to true to use the my_tx_history method |
| nft_req | object | – | Non-HD only. encapsulates the request parameters for NFT activation, including NFT provider configuration. | |
| min_addresses_number | integer | – | HD wallets only. How many additional addreesses to generate at a minimum. | |
| scan_policy | string | – | HD wallets only. Whether 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_limit | integer | – | HD wallets only. The 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. | |
| path_to_address | object | – | HD wallets only. A standard AddressPath object. | |
| swap_v2_contracts | object | – | Must be provided if "use_trading_proto_v2" is true in your configuration. A standard SwapV2Contracts object. |
Response
| Parameter | Type | Description |
|---|---|---|
| status | string | A short indication of how the enabling is progressing. |
| details | object | Depending on the state of enabling progress, this will contain different information as shown in the responses below. |
Possible status values while activation is in progress:
ActivatingCoin: The first step of activation. It does not require any action from the user.RequestingWalletBalance: The first step of activation, while initial balances info is being requested. It does not require any action from the user.Finishing: Activation process completedWaitingForTrezorToConnect: Waiting for the user to plugin a Trezor deviceFollowHwDeviceInstructions: Waiting for the user to follow the instructions on the device
Once complete, status will be Ok, and the details object will have the following structure:
Response
| Parameter | Type | Required | Description |
|---|---|---|---|
| task_id | integer | ✓ | An identifying number which is used to query task status. |
📌 Examples
Activation in Trezor mode
POST task::enable_eth::init
{
"userpass": "RPC_UserP@SSW0RD",
"mmrpc": "2.0",
"method": "task::enable_eth::init",
"params": {
"ticker": "MATIC",
"gas_station_url": "https://gasstation-mainnet.matic.network/",
"swap_contract_address": "0x9130b257D37A52E52F21054c4DA3450c72f595CE",
"fallback_swap_contract": "0x9130b257D37A52E52F21054c4DA3450c72f595CE",
"swap_v2_contracts": {
"taker_swap_v2_contract": "0x9130b257D37A52E52F21054c4DA3450c72f595CE",
"maker_swap_v2_contract": "0x9130b257D37A52E52F21054c4DA3450c72f595CE",
"nft_maker_swap_v2_contract": "0x9130b257D37A52E52F21054c4DA3450c72f595CE"
},
"nodes": [
{
"url": "https://node.komodo.earth:8080/polygon",
"komodo_proxy": true
},
{
"url": "https://pol3.cipig.net:18755",
"ws_url": "wss://pol3.cipig.net:38755"
},
{
"url": "https://polygon-bor-rpc.publicnode.com",
"ws_url": "wss://polygon-bor-rpc.publicnode.com"
}
],
"erc20_tokens_requests": [
{
"ticker": "PGX-PLG20",
"required_confirmations": 4
},
{
"ticker": "AAVE-PLG20",
"required_confirmations": 4
}
],
"required_confirmations": 5,
"path_to_address": {
"account_id": 0,
"chain": "External",
"address_id": 1
},
"gap_limit": 20,
"scan_policy": "scan_if_new_wallet",
"min_addresses_number": 3
}
} curl --url "http://127.0.0.1:7783" --data '{
"userpass": "RPC_UserP@SSW0RD",
"mmrpc": "2.0",
"method": "task::enable_eth::init",
"params": {
"ticker": "MATIC",
"gas_station_url": "https://gasstation-mainnet.matic.network/",
"swap_contract_address": "0x9130b257D37A52E52F21054c4DA3450c72f595CE",
"fallback_swap_contract": "0x9130b257D37A52E52F21054c4DA3450c72f595CE",
"swap_v2_contracts": {
"taker_swap_v2_contract": "0x9130b257D37A52E52F21054c4DA3450c72f595CE",
"maker_swap_v2_contract": "0x9130b257D37A52E52F21054c4DA3450c72f595CE",
"nft_maker_swap_v2_contract": "0x9130b257D37A52E52F21054c4DA3450c72f595CE"
},
"nodes": [
{
"url": "https://node.komodo.earth:8080/polygon",
"komodo_proxy": true
},
{
"url": "https://pol3.cipig.net:18755",
"ws_url": "wss://pol3.cipig.net:38755"
},
{
"url": "https://polygon-bor-rpc.publicnode.com",
"ws_url": "wss://polygon-bor-rpc.publicnode.com"
}
],
"erc20_tokens_requests": [
{
"ticker": "PGX-PLG20",
"required_confirmations": 4
},
{
"ticker": "AAVE-PLG20",
"required_confirmations": 4
}
],
"required_confirmations": 5,
"path_to_address": {
"account_id": 0,
"chain": "External",
"address_id": 1
},
"gap_limit": 20,
"scan_policy": "scan_if_new_wallet",
"min_addresses_number": 3
}
}' import requests
import json
url = "http://127.0.0.1:7783"
payload = {
"userpass": "RPC_UserP@SSW0RD",
"mmrpc": "2.0",
"method": "task::enable_eth::init",
"params": {
"ticker": "MATIC",
"gas_station_url": "https://gasstation-mainnet.matic.network/",
"swap_contract_address": "0x9130b257D37A52E52F21054c4DA3450c72f595CE",
"fallback_swap_contract": "0x9130b257D37A52E52F21054c4DA3450c72f595CE",
"swap_v2_contracts": {
"taker_swap_v2_contract": "0x9130b257D37A52E52F21054c4DA3450c72f595CE",
"maker_swap_v2_contract": "0x9130b257D37A52E52F21054c4DA3450c72f595CE",
"nft_maker_swap_v2_contract": "0x9130b257D37A52E52F21054c4DA3450c72f595CE"
},
"nodes": [
{
"url": "https://node.komodo.earth:8080/polygon",
"komodo_proxy": true
},
{
"url": "https://pol3.cipig.net:18755",
"ws_url": "wss://pol3.cipig.net:38755"
},
{
"url": "https://polygon-bor-rpc.publicnode.com",
"ws_url": "wss://polygon-bor-rpc.publicnode.com"
}
],
"erc20_tokens_requests": [
{
"ticker": "PGX-PLG20",
"required_confirmations": 4
},
{
"ticker": "AAVE-PLG20",
"required_confirmations": 4
}
],
"required_confirmations": 5,
"path_to_address": {
"account_id": 0,
"chain": "External",
"address_id": 1
},
"gap_limit": 20,
"scan_policy": "scan_if_new_wallet",
"min_addresses_number": 3
}
}
response = requests.post(url, json=payload)
print(json.dumps(response.json(), indent=2)) const payload = {
"userpass": "RPC_UserP@SSW0RD",
"mmrpc": "2.0",
"method": "task::enable_eth::init",
"params": {
"ticker": "MATIC",
"gas_station_url": "https://gasstation-mainnet.matic.network/",
"swap_contract_address": "0x9130b257D37A52E52F21054c4DA3450c72f595CE",
"fallback_swap_contract": "0x9130b257D37A52E52F21054c4DA3450c72f595CE",
"swap_v2_contracts": {
"taker_swap_v2_contract": "0x9130b257D37A52E52F21054c4DA3450c72f595CE",
"maker_swap_v2_contract": "0x9130b257D37A52E52F21054c4DA3450c72f595CE",
"nft_maker_swap_v2_contract": "0x9130b257D37A52E52F21054c4DA3450c72f595CE"
},
"nodes": [
{
"url": "https://node.komodo.earth:8080/polygon",
"komodo_proxy": true
},
{
"url": "https://pol3.cipig.net:18755",
"ws_url": "wss://pol3.cipig.net:38755"
},
{
"url": "https://polygon-bor-rpc.publicnode.com",
"ws_url": "wss://polygon-bor-rpc.publicnode.com"
}
],
"erc20_tokens_requests": [
{
"ticker": "PGX-PLG20",
"required_confirmations": 4
},
{
"ticker": "AAVE-PLG20",
"required_confirmations": 4
}
],
"required_confirmations": 5,
"path_to_address": {
"account_id": 0,
"chain": "External",
"address_id": 1
},
"gap_limit": 20,
"scan_policy": "scan_if_new_wallet",
"min_addresses_number": 3
}
};
const response = await fetch("http://127.0.0.1:7783", {
method: "POST",
body: JSON.stringify(payload),
});
console.log(await response.json()); <?php
$payload = <<<'JSON'
{
"userpass": "RPC_UserP@SSW0RD",
"mmrpc": "2.0",
"method": "task::enable_eth::init",
"params": {
"ticker": "MATIC",
"gas_station_url": "https://gasstation-mainnet.matic.network/",
"swap_contract_address": "0x9130b257D37A52E52F21054c4DA3450c72f595CE",
"fallback_swap_contract": "0x9130b257D37A52E52F21054c4DA3450c72f595CE",
"swap_v2_contracts": {
"taker_swap_v2_contract": "0x9130b257D37A52E52F21054c4DA3450c72f595CE",
"maker_swap_v2_contract": "0x9130b257D37A52E52F21054c4DA3450c72f595CE",
"nft_maker_swap_v2_contract": "0x9130b257D37A52E52F21054c4DA3450c72f595CE"
},
"nodes": [
{
"url": "https://node.komodo.earth:8080/polygon",
"komodo_proxy": true
},
{
"url": "https://pol3.cipig.net:18755",
"ws_url": "wss://pol3.cipig.net:38755"
},
{
"url": "https://polygon-bor-rpc.publicnode.com",
"ws_url": "wss://polygon-bor-rpc.publicnode.com"
}
],
"erc20_tokens_requests": [
{
"ticker": "PGX-PLG20",
"required_confirmations": 4
},
{
"ticker": "AAVE-PLG20",
"required_confirmations": 4
}
],
"required_confirmations": 5,
"path_to_address": {
"account_id": 0,
"chain": "External",
"address_id": 1
},
"gap_limit": 20,
"scan_policy": "scan_if_new_wallet",
"min_addresses_number": 3
}
}
JSON;
$ch = curl_init("http://127.0.0.1:7783");
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $payload);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);
$response = curl_exec($ch);
curl_close($ch);
echo $response; package main
import (
"bytes"
"fmt"
"io"
"net/http"
)
func main() {
payload := []byte(`{"userpass":"RPC_UserP@SSW0RD","mmrpc":"2.0","method":"task::enable_eth::init","params":{"ticker":"MATIC","gas_station_url":"https://gasstation-mainnet.matic.network/","swap_contract_address":"0x9130b257D37A52E52F21054c4DA3450c72f595CE","fallback_swap_contract":"0x9130b257D37A52E52F21054c4DA3450c72f595CE","swap_v2_contracts":{"taker_swap_v2_contract":"0x9130b257D37A52E52F21054c4DA3450c72f595CE","maker_swap_v2_contract":"0x9130b257D37A52E52F21054c4DA3450c72f595CE","nft_maker_swap_v2_contract":"0x9130b257D37A52E52F21054c4DA3450c72f595CE"},"nodes":[{"url":"https://node.komodo.earth:8080/polygon","komodo_proxy":true},{"url":"https://pol3.cipig.net:18755","ws_url":"wss://pol3.cipig.net:38755"},{"url":"https://polygon-bor-rpc.publicnode.com","ws_url":"wss://polygon-bor-rpc.publicnode.com"}],"erc20_tokens_requests":[{"ticker":"PGX-PLG20","required_confirmations":4},{"ticker":"AAVE-PLG20","required_confirmations":4}],"required_confirmations":5,"path_to_address":{"account_id":0,"chain":"External","address_id":1},"gap_limit":20,"scan_policy":"scan_if_new_wallet","min_addresses_number":3}}`)
resp, err := http.Post("http://127.0.0.1:7783", "application/json", bytes.NewBuffer(payload))
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
} require 'net/http'
require 'json'
require 'uri'
uri = URI("http://127.0.0.1:7783")
payload = {
"userpass": "RPC_UserP@SSW0RD",
"mmrpc": "2.0",
"method": "task::enable_eth::init",
"params": {
"ticker": "MATIC",
"gas_station_url": "https://gasstation-mainnet.matic.network/",
"swap_contract_address": "0x9130b257D37A52E52F21054c4DA3450c72f595CE",
"fallback_swap_contract": "0x9130b257D37A52E52F21054c4DA3450c72f595CE",
"swap_v2_contracts": {
"taker_swap_v2_contract": "0x9130b257D37A52E52F21054c4DA3450c72f595CE",
"maker_swap_v2_contract": "0x9130b257D37A52E52F21054c4DA3450c72f595CE",
"nft_maker_swap_v2_contract": "0x9130b257D37A52E52F21054c4DA3450c72f595CE"
},
"nodes": [
{
"url": "https://node.komodo.earth:8080/polygon",
"komodo_proxy": true
},
{
"url": "https://pol3.cipig.net:18755",
"ws_url": "wss://pol3.cipig.net:38755"
},
{
"url": "https://polygon-bor-rpc.publicnode.com",
"ws_url": "wss://polygon-bor-rpc.publicnode.com"
}
],
"erc20_tokens_requests": [
{
"ticker": "PGX-PLG20",
"required_confirmations": 4
},
{
"ticker": "AAVE-PLG20",
"required_confirmations": 4
}
],
"required_confirmations": 5,
"path_to_address": {
"account_id": 0,
"chain": "External",
"address_id": 1
},
"gap_limit": 20,
"scan_policy": "scan_if_new_wallet",
"min_addresses_number": 3
}
}
response = Net::HTTP.post(uri, payload.to_json, 'Content-Type' => 'application/json')
puts JSON.pretty_generate(JSON.parse(response.body)) Show Response
Response
{
"mmrpc": "2.0",
"result": {
"task_id": 1
},
"id": null
} task::enable_eth::status
After running the task::enable_eth::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)
Arguments
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| task_id | integer | ✓ | The identifying number returned when initiating the initialisation process. | |
| forget_if_finished | boolean | – | true | If false, will return final response for completed tasks. |
Command
POST task::enable_eth::status
{
"userpass": "RPC_UserP@SSW0RD",
"mmrpc": "2.0",
"method": "task::enable_eth::status",
"params": {
"task_id": 1,
"forget_if_finished": false
}
} curl --url "http://127.0.0.1:7783" --data '{
"userpass": "RPC_UserP@SSW0RD",
"mmrpc": "2.0",
"method": "task::enable_eth::status",
"params": {
"task_id": 1,
"forget_if_finished": false
}
}' import requests
import json
url = "http://127.0.0.1:7783"
payload = {
"userpass": "RPC_UserP@SSW0RD",
"mmrpc": "2.0",
"method": "task::enable_eth::status",
"params": {
"task_id": 1,
"forget_if_finished": false
}
}
response = requests.post(url, json=payload)
print(json.dumps(response.json(), indent=2)) const payload = {
"userpass": "RPC_UserP@SSW0RD",
"mmrpc": "2.0",
"method": "task::enable_eth::status",
"params": {
"task_id": 1,
"forget_if_finished": false
}
};
const response = await fetch("http://127.0.0.1:7783", {
method: "POST",
body: JSON.stringify(payload),
});
console.log(await response.json()); <?php
$payload = <<<'JSON'
{
"userpass": "RPC_UserP@SSW0RD",
"mmrpc": "2.0",
"method": "task::enable_eth::status",
"params": {
"task_id": 1,
"forget_if_finished": false
}
}
JSON;
$ch = curl_init("http://127.0.0.1:7783");
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $payload);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);
$response = curl_exec($ch);
curl_close($ch);
echo $response; package main
import (
"bytes"
"fmt"
"io"
"net/http"
)
func main() {
payload := []byte(`{"userpass":"RPC_UserP@SSW0RD","mmrpc":"2.0","method":"task::enable_eth::status","params":{"task_id":1,"forget_if_finished":false}}`)
resp, err := http.Post("http://127.0.0.1:7783", "application/json", bytes.NewBuffer(payload))
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
} require 'net/http'
require 'json'
require 'uri'
uri = URI("http://127.0.0.1:7783")
payload = {
"userpass": "RPC_UserP@SSW0RD",
"mmrpc": "2.0",
"method": "task::enable_eth::status",
"params": {
"task_id": 1,
"forget_if_finished": false
}
}
response = Net::HTTP.post(uri, payload.to_json, 'Content-Type' => 'application/json')
puts JSON.pretty_generate(JSON.parse(response.body)) Response (ready, successful, HD mode)
| Parameter | Type | Required | Description |
|---|---|---|---|
| current_block | integer | ✓ | Block height of the coin being activated |
| ticker | string | ✓ | Ticker of the coin being activated. |
| wallet_balance | object | ✓ | A standard WalletBalanceInfo object. Note: the structure may vary based on the get_balances parameter value in the activation request. |
Show Response
{
"mmrpc": "2.0",
"result": {
"status": "Ok",
"details": {
"current_block": 70970530,
"ticker": "MATIC",
"wallet_balance": {
"wallet_type": "HD",
"accounts": [
{
"account_index": 0,
"derivation_path": "m/44'/60'/0'",
"total_balance": {
"AAVE-PLG20": {
"spendable": "0.0275928341263563",
"unspendable": "0"
},
"PGX-PLG20": {
"spendable": "237.729414631067",
"unspendable": "0"
},
"MATIC": {
"spendable": "66.36490013618242918",
"unspendable": "0"
}
},
"addresses": [
{
"address": "0xC11b6070c84A1E6Fc62B2A2aCf70831545d5eDD4",
"derivation_path": "m/44'/60'/0'/0/0",
"chain": "External",
"balance": {
"PGX-PLG20": {
"spendable": "237.729414631067",
"unspendable": "0"
},
"AAVE-PLG20": {
"spendable": "0.0275928341263563",
"unspendable": "0"
},
"MATIC": {
"spendable": "65.36490013618242918",
"unspendable": "0"
}
}
},
{
"address": "0x1751bd0510fDAE2A4a81Ab8A3e70E59E4760eAB6",
"derivation_path": "m/44'/60'/0'/0/1",
"chain": "External",
"balance": {
"AAVE-PLG20": {
"spendable": "0",
"unspendable": "0"
},
"PGX-PLG20": {
"spendable": "0",
"unspendable": "0"
},
"MATIC": {
"spendable": "1",
"unspendable": "0"
}
}
},
{
"address": "0xffCF6033C31ed4beBC72f77be45d97cd8a8BABB4",
"derivation_path": "m/44'/60'/0'/0/2",
"chain": "External",
"balance": {
"MATIC": {
"spendable": "0",
"unspendable": "0"
},
"AAVE-PLG20": {
"spendable": "0",
"unspendable": "0"
},
"PGX-PLG20": {
"spendable": "0",
"unspendable": "0"
}
}
}
]
}
]
},
"nfts_infos": {}
}
},
"id": null
} Response (in progress)
Show Response
{
"mmrpc": "2.0",
"result": {
"status": "InProgress",
"details": "RequestingWalletBalance"
},
"id": null
} Response (ready, error)
| Parameter | Type | Description |
|---|---|---|
| status | string | A short indication of how the requested process is progressing. |
| details.result | object | Depending on the state of process progress, this will contain different information as detailed in the items below. |
| .error | string | The ticker of the coin being activated |
| .error_path | string | Used for debugging. A reference to the function in code base which returned the error |
| .error_trace | string | Used for debugging. A trace of lines of code which led to the returned error |
| .error_type | string | An enumerated error identifier to indicate the category of error |
| .error_data | string | Additonal context for the error type |
Possible Error Cases:
TaskTimedOut- Timed out waiting for coin activation, connecting to the device trezor or for user to confirm pubkey)CoinCreationError- Error during activation. E.g. incorrect or inactive electrum servers.HwError- This is the most important error type. Unlike other error types,HwErrorrequires the GUI / User to check the details inerror_datafield to know which action is required. View the HwError error type details for more info.
task::enable_eth::user_action
If the task::enable_eth::status returns UserActionRequired, we need to use the task::enable_eth::user_action method to enter our PIN
Arguments
| Parameter | Type | Required | Description |
|---|---|---|---|
| task_id | integer | ✓ | The identifying number returned when initiating the initialisation process. |
| user_action | object | ✓ | Object containing the params below |
| user_action.action_type | string | ✓ | Will be TrezorPin for this method |
| user_action.pin | string (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. |
Response
| Parameter | Type | Required | Description |
|---|---|---|---|
| result | string | ✓ | The outcome of the request. |
📌 Examples
Command
POST task::enable_eth::user_action
{
"userpass": "RPC_UserP@SSW0RD",
"mmrpc": "2.0",
"method": "task::enable_eth::user_action",
"params": {
"task_id": 0,
"user_action": {
"action_type": "TrezorPin",
"pin": "862743"
}
}
} curl --url "http://127.0.0.1:7783" --data '{
"userpass": "RPC_UserP@SSW0RD",
"mmrpc": "2.0",
"method": "task::enable_eth::user_action",
"params": {
"task_id": 0,
"user_action": {
"action_type": "TrezorPin",
"pin": "862743"
}
}
}' import requests
import json
url = "http://127.0.0.1:7783"
payload = {
"userpass": "RPC_UserP@SSW0RD",
"mmrpc": "2.0",
"method": "task::enable_eth::user_action",
"params": {
"task_id": 0,
"user_action": {
"action_type": "TrezorPin",
"pin": "862743"
}
}
}
response = requests.post(url, json=payload)
print(json.dumps(response.json(), indent=2)) const payload = {
"userpass": "RPC_UserP@SSW0RD",
"mmrpc": "2.0",
"method": "task::enable_eth::user_action",
"params": {
"task_id": 0,
"user_action": {
"action_type": "TrezorPin",
"pin": "862743"
}
}
};
const response = await fetch("http://127.0.0.1:7783", {
method: "POST",
body: JSON.stringify(payload),
});
console.log(await response.json()); <?php
$payload = <<<'JSON'
{
"userpass": "RPC_UserP@SSW0RD",
"mmrpc": "2.0",
"method": "task::enable_eth::user_action",
"params": {
"task_id": 0,
"user_action": {
"action_type": "TrezorPin",
"pin": "862743"
}
}
}
JSON;
$ch = curl_init("http://127.0.0.1:7783");
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $payload);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);
$response = curl_exec($ch);
curl_close($ch);
echo $response; package main
import (
"bytes"
"fmt"
"io"
"net/http"
)
func main() {
payload := []byte(`{"userpass":"RPC_UserP@SSW0RD","mmrpc":"2.0","method":"task::enable_eth::user_action","params":{"task_id":0,"user_action":{"action_type":"TrezorPin","pin":"862743"}}}`)
resp, err := http.Post("http://127.0.0.1:7783", "application/json", bytes.NewBuffer(payload))
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
} require 'net/http'
require 'json'
require 'uri'
uri = URI("http://127.0.0.1:7783")
payload = {
"userpass": "RPC_UserP@SSW0RD",
"mmrpc": "2.0",
"method": "task::enable_eth::user_action",
"params": {
"task_id": 0,
"user_action": {
"action_type": "TrezorPin",
"pin": "862743"
}
}
}
response = Net::HTTP.post(uri, payload.to_json, 'Content-Type' => 'application/json')
puts JSON.pretty_generate(JSON.parse(response.body)) Show Response
Response (success)
{
"mmrpc": "2.0",
"result": "success",
"id": null
} task::enable_eth::cancel
If you want to cancel the enabling process before it has completed, you can use this method.
Arguments
| Parameter | Type | Required | Description |
|---|---|---|---|
| task_id | integer | ✓ | The identifying number returned when initiating the enabling process. |
Response
| Parameter | Type | Required | Description |
|---|---|---|---|
| result | string | ✓ | Indicates task cancellation was succesful. |
| error | string | ✓ | An error message to explain what went wrong. |
| error_path | string | ✓ | An indicator of the class or function which reurned the error. |
| error_trace | string | ✓ | An indicator of where in the source code the error was thrown. |
| error_type | string | ✓ | An enumerated value for the returned error. |
| error_data | string | ✓ | The input task ID which resulted in the error. |
POST task::enable_eth::cancel
{
"userpass": "RPC_UserP@SSW0RD",
"method": "task::enable_eth::cancel",
"mmrpc": "2.0",
"params": {
"task_id": 3
}
} curl --url "http://127.0.0.1:7783" --data '{
"userpass": "RPC_UserP@SSW0RD",
"method": "task::enable_eth::cancel",
"mmrpc": "2.0",
"params": {
"task_id": 3
}
}' import requests
import json
url = "http://127.0.0.1:7783"
payload = {
"userpass": "RPC_UserP@SSW0RD",
"method": "task::enable_eth::cancel",
"mmrpc": "2.0",
"params": {
"task_id": 3
}
}
response = requests.post(url, json=payload)
print(json.dumps(response.json(), indent=2)) const payload = {
"userpass": "RPC_UserP@SSW0RD",
"method": "task::enable_eth::cancel",
"mmrpc": "2.0",
"params": {
"task_id": 3
}
};
const response = await fetch("http://127.0.0.1:7783", {
method: "POST",
body: JSON.stringify(payload),
});
console.log(await response.json()); <?php
$payload = <<<'JSON'
{
"userpass": "RPC_UserP@SSW0RD",
"method": "task::enable_eth::cancel",
"mmrpc": "2.0",
"params": {
"task_id": 3
}
}
JSON;
$ch = curl_init("http://127.0.0.1:7783");
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $payload);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);
$response = curl_exec($ch);
curl_close($ch);
echo $response; package main
import (
"bytes"
"fmt"
"io"
"net/http"
)
func main() {
payload := []byte(`{"userpass":"RPC_UserP@SSW0RD","method":"task::enable_eth::cancel","mmrpc":"2.0","params":{"task_id":3}}`)
resp, err := http.Post("http://127.0.0.1:7783", "application/json", bytes.NewBuffer(payload))
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
} require 'net/http'
require 'json'
require 'uri'
uri = URI("http://127.0.0.1:7783")
payload = {
"userpass": "RPC_UserP@SSW0RD",
"method": "task::enable_eth::cancel",
"mmrpc": "2.0",
"params": {
"task_id": 3
}
}
response = Net::HTTP.post(uri, payload.to_json, 'Content-Type' => 'application/json')
puts JSON.pretty_generate(JSON.parse(response.body)) Show Response
Response (success)
{
"mmrpc": "2.0",
"result": "success",
"id": null
} Show Error Responses
Response (success - already finished)
{
"mmrpc": "2.0",
"error": "Task is finished already",
"error_path": "init_standalone_coin.manager",
"error_trace": "init_standalone_coin:144] manager:101]",
"error_type": "TaskFinished",
"error_data": 0,
"id": null
}Response (error - no such task)
{
"mmrpc": "2.0",
"error": "No such task '1'",
"error_path": "init_standalone_coin",
"error_trace": "init_standalone_coin:119]",
"error_type": "NoSuchTask",
"error_data": 1,
"id": null
}