Skip to content

Latest commit

 

History

History
249 lines (202 loc) · 16.5 KB

File metadata and controls

249 lines (202 loc) · 16.5 KB

export const title = "Komodo DeFi SDK Common Structures: Activation"; export const description = "The Komodo DeFi SDK uses a variety of activation methods, depending on the type of coin.";

Activation Structures

ActivationParams

The ActivationParams object defines additional parameters used for activation. These params may vary depending on the coin type.

Parameter Type Description
required_confirmations integer Optional. Confirmations to wait for steps in swap. Defaults to value in the coins file if not set.
requires_notarization boolean Optional, defaults to false. For dPoW protected coins, a true value will wait for transactions to be notarised when doing swaps. Overrides value if set in coins file.
priv_key_policy string Defaults to ContextPrivKey. Set as Trezor to activate in Trezor mode.
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 SDK.
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.
zcash_params_path string ZHTLC coins only. Path to folder containing Zcash parameters. Optional, defaults to standard location as defined in this guide
scan_blocks_per_iteration integer ZHTLC coins only. Sets the number of scanned blocks per iteration during BuildingWalletDb state. Optional, default value is 1000.
scan_interval_ms integer ZHTLC coins only. Sets the interval in milliseconds between iterations of BuildingWalletDb state. Optional, default value is 0.
mode object QTUM, UTXO & ZHTLC coins only. A standard ActivationMode object.
For ZHTLC coins, older wallets need to set the `sync_params` field to a date before its first transaction to see all balance and history. This may take a long time on the first activation, but subsequent activations will be much faster. Using a smaller `scan_blocks_per_iteration` and larger `scan_interval_ms`, will reduce the average CPU load during ZHTLC coin activation (at the cost of a longer activation time). These optional fields are recommended when developing for iOS, where a high CPU load may kill the activation process. Android & desktop operating systems do not appear to have any problems with high CPU load during ZHTLC coin activation.

ActivationMode

Defines the activation mode for QTUM, BCH, UTXO & ZHTLC coins.

Parameter Type Description
rpc string Native if running a native blockchain node, Electrum if using electrum servers or Light for ZHTLC coins.
rpc_data object Electrum or Light mode only. A standard ActivationRpcData object.

ActivationRpcData

Contains information about electrum & lightwallet_d servers for coins being used in Electrum or Light mode.

Parameter Type Description
light_wallet_d_servers list ZHTLC only. A list of urls which are hosting lightwallet_d servers for a coin.
electrum_servers list of objects ZHTLC only. A list of standard ActivationServers objects.
electrum list of objects QTUM, BCH & UTXO coins only. A list of standard ActivationServers objects.
sync_params integer or string ZHTLC coins only. Optional, defaults to two days ago. Defines where to start scanning blockchain data upon initial activation. Options: "earliest" (the coin's sapling_activation_height), height (a specific block height) or date (a unix timestamp).
`electrum` and `electrum_servers` are both used for the same purpose. This should be consolidated in the API.

ActivationServers

Contains information electrum servers for coins being used in Electrum or Light mode.

Parameter Type Description
url string The URL and port for an electrum server.
ws_url string Optional, for WSS only. The URL and port for an electrum server's WSS port.
protocol string Optional, defaults to TCP. Transport protocol used to connect to the server. Options: TCP or SSL
disable_cert_verification boolean Optional, defaults to false. If true, this disables server SSL/TLS certificate verification (e.g. for self-signed certificates). Use at your own risk!
#### ZHTLC Example
{
  "activation_params": {
    "mode": {
      "rpc": "Light",
      "rpc_data": {
        "electrum_servers": [
          {
            "url":"zombie.dragonhound.info:10033"
          }
        ],
        "light_wallet_d_servers": [
          "http://zombie.dragonhound.info:443"
        ]
      },
      "sync_params": { 
          "height":  2528700
      }
    },
    "zcash_params_path": "/home/username/path_to/.zcash-params",
    "scan_blocks_per_iteration": 100,
    "scan_interval_ms": 200
  }
}

HD UTXO Activation (v2)

{
"activation_params": {
    "mode": {
        "rpc": "Electrum",
        "rpc_data": {
            "servers": [
                {
                    "url": "electrum2.cipig.net:10001"
                },
                {
                    "url": "electrum3.cipig.net:20001",
                    "ws_url": "electrum3.cipig.net:30001",
                    "protocol": "SSL"
                }
            ]
        }
    },
    "scan_policy": "scan_if_new_wallet",
    "priv_key_policy": "Trezor",
    "min_addresses_number": 3,
    "gap_limit": 20
}
}

CoinProtocol

Parameter Type Description
type integer One of the Coin Types supported by the Komodo DeFi Framework
protocol_data object A standard CoinProtocolData object.

CoinProtocolData

Parameter Type Description
platform string Indicates the platform parent coin for EMV-like protocols, or the coin used for lightning nodes.
network string Either mainnet or `testnet
confirmation_targets object A standard ConfirmationTargets object.

EvmNode

The EvmNode object includes the following items for a given coin or token:

Parameter Type Description
url string URL of an RPC node
komodo_auth boolean Optional, defaults to false. Must be set to true to access RPC nodes run officially by the Komodo Platform team

v2.1.0 (current release)

```json { "url": "http://eth1.cipig.net:8555", "komodo_proxy": false } ``` Prior to the v2.2.0 release, the `gui_auth` field was used to access RPC nodes run officially by the Komodo Platform team. This field was replaced with the `komodo_proxy` field in the v2.2.0 release.

v2.2.0+

```json { "url": "https://nucleus-rpc.alpha.komodo.earth", "komodo_proxy": true } ```

TendermintNode

The TendermintNode object includes the following items for a given coin or token:

Parameter Type Description
url string URL of an RPC node
komodo_auth boolean Optional, defaults to false. Must be set to true to access RPC nodes run behind komodo-defi-proxy

v2.1.0 (current release)

```json { "url": "http://eth1.cipig.net:8555", "komodo_proxy": false } ``` Prior to the v2.2.0 release, the `gui_auth` field was used to access RPC nodes run officially by the Komodo Platform team. This field was replaced with the `komodo_proxy` field in the v2.2.0 release.

v2.2.0+

```json { "url": "https://nucleus-rpc.alpha.komodo.earth", "komodo_proxy": true } ```

TokensRequest

The TokensRequest object includes the following items for a given coin or token:

Parameter Type Description
ticker string Ticker of the token to be enabled
required_confirmations integer How many confirmations to wait during the transaction steps of an atomic swap. Overwrites value in coins file; defaults to 3
```json { "ticker": "MINDS-ERC20", "required_confirmations": 4 } ```

UtxoMergeParams

The UtxoMergeParams object defines how often and at which thresholds to merge UTXOs. This is useful for wallets which have been used for a long time, and have many small UTXOs from mining activity.

Parameter Type Description
merge_at integer Mamimum UTXO count before merge loop is initiated.
check_every integer How frequently (in blocks) the wallet UTXO count is evaluated.
max_merge_at_once integer The maximum nouber of UTXOs to inlude as inputs for a merge transaction. Note that more input UTXOs means a larger transaction and greater fees, and that each blockchain has a limit to the maximum size of a transaction.
```json { "merge_at": 50, "check_every": 10, "max_merge_at_once": 25 } ```