Task: ETH/EVM Activation
API-v2task::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.
Parameter | Type | 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 | Optional, a url for gas station api. |
gas_station_decimals | integer | Optional, for ETH/ERC20 and other gas model chains. Defaults to 8 . 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 | Optional, for ETH/ERC20 and other gas model chains. Defaults to "MeanAverageFast" . 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 | Optional, defaults to 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 | Optional, defaults to 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 | Optional, defaults to 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 | Optional, defaults to 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 | Optional, defaults to Default . Value can be Metamask only when the Komodo DeFi Framework is built targeting wasm . |
tx_history | boolean | Optional, defaults to 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 | Optional, non-HD only. encapsulates the request parameters for NFT activation, including NFT provider configuration. |
min_addresses_number | integer | Optional, HD wallets only. How many additional addreesses to generate at a minimum. |
scan_policy | string | Optional, 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 | Optional, 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 | Optional, HD wallets only. A standard AddressDerivationPath object. |
swap_v2_contracts | object | Optional, must be provided if "use_trading_proto_v2" is true in your configuration. A standard SwapV2Contracts object. |
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:
Parameter | Type | Description |
---|---|---|
task_id | integer | An identifying number which is used to query task status. |
task::enable_eth::init
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://polygon-rpc.com"
},
{
"url": "https://poly-rpc.gateway.pokt.network"
}
],
"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
}
}
API-v2task::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)
Parameter | Type | Description |
---|---|---|
task_id | integer | The identifying number returned when initiating the initialisation process. |
forget_if_finished | boolean | If false , will return final response for completed tasks. Optional, defaults to true . |
task::enable_eth::status
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
}
}
Parameter | Type | 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 acttivation request. |
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,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.
API-v2task::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
Parameter | Type | 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. |
Parameter | Type | Description |
---|---|---|
result | string | The outcome of the request. |
task::enable_eth::user_action
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"
}
}
}
API-v2task::enable_eth::cancel
If you want to cancel the enabling process before it has completed, you can use this method.
Structure | Type | Description |
---|---|---|
task_id | integer | The identifying number returned when initiating the enabling process. |
Structure | Type | 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. |
task::enable_eth::cancel
POST
task::enable_eth::cancel{
"userpass": "RPC_UserP@SSW0RD",
"method": "task::enable_eth::cancel",
"mmrpc": "2.0",
"params": {
"task_id": 3
}
}