21 KiB
title | description | lead | date | lastmod | draft | images | menu | toc | ||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Wallet API | 2020-10-06T08:48:23+00:00 | 2020-10-06T08:48:23+00:00 | false |
|
true |
The wallet model (exposed as walletModel
) is used for functions pertaining to the wallet and accounts on the node.
Methods
Methods can be invoked by calling them directly on the walletModel
, ie walletModel.getSigningPhrase()
.
getEtherscanLink()
: QVariant<string>
Gets the link to Etherscan from the current network settings
getSigningPhrase()
: QVariant<string>
Gets the link to Etherscan from the current network settings
getStatusToken()
: string
Gets the Status token for the current network (ie SNT for mainnet and STT for Ropsten) and returns a stringified JSON object containing name
, symbol
, and address
for the token.
getCurrentCollectiblesLists()
: QVariant<CollectiblesList>
Gets the list of collectibles for the currently selected wallet.
getCurrentTransactions()
: QVariant<TransactionList>
Gets the list of transactions for the currently selected wallet.
setCurrentAccountByIndex(index: int)
index
(int
): index of the account in the list of accounts
sets the currently selected account to the account at the provided index
getCurrentAccount()
: QVariant<AccountItemView>
gets the currently selected account
setFocusedAccountByAddress(address: string): void
address
(string
): address of the account to focus
sets the focused account in the chat transaction modal to the account with the provided address
getFocusedAccount()
: QVariant<AccountItemView>
gets the currently focused account in the chat transaction modal
getCurrentAssetList()
: QVariant<AssetList>
returns list of token assets for the currently selected wallet account
getTotalFiatBalance()
: QVariant<string>
returns the total equivalent fiat balance of all wallets in the format #.##
getFiatValue(crytoBalance: string, cryptoSymbol: string, fiatSymbol: string)
: QVariant<string>
cryptoBalance
(string
): balance whole (ie ETH)cryptoSymbol
(string
): symbol to convert fromfiatSymbol
(string
) symbol of fiat currency to convert to
returns the total equivalent fiat balance in the format
getCryptoValue(fiatBalance: string, fiatSymbol: string, cryptoSymbol: string)
: QVariant<string>
fiatBalance
(string
): balance whole (ie USD)fiatSymbol
(string
): fiat currency symbol to convert fromcryptoSymbol
(string
) symbol of fiat currency to convert to
returns the total equivalent crypto balance in the format #.##
getGasEthValue(gweiValue: string, gasLimit: string)
: string
gweiValue
(string): gas price in gweigasLimit
(string): gas limit
gets maximum gas spend by multiplying the gas limit by the gas price
generateNewAccount(password: string, accountName: string, color: string)
: string
password
(string
): password for the current user accountaccountName
(string
): name for the new wallet accountcolor
(string
) hex code of the custom wallet color
creates a new account on the node with a custom name and color
addAccountsFromSeed(seed: string, password: string, name: string, color: string)
: string
seed
(string
): seed phrase of accountpassword
(string
): password of the current user accountname
(string
): name for the new wallet accountcolor
(string
) hex code of the custom wallet color
adds an account to the status-go node from the provided seed phrase |
addAccountsFromPrivateKey(privateKey: string, password: string, name: string, color: string)
: string
privateKey
(string
): private key of accountpassword
(string
): password of the current user accountname
(string
): name for the new wallet accountcolor
(string
) hex code of the custom wallet color
adds an account to the status-go node from the provided private key |
addWatchOnlyAccount(address: string, accountName: string, color: string)
: string
address
(string
): address of account to watchaccountName
(string
): name for the new wallet accountcolor
(string
) hex code of the custom wallet color
watches an account without adding it to the status-go node |
changeAccountSettings(address: string, accountName: string, color: string)
: string
address
(string
): address of accountaccountName
(string
): updated name for the wallet accountcolor
(string
) updated hex code of the account
updates the account's name and color
deleteAccount(address: string)
: string
address
(string
): address of account
deletes an account from the status-go node and returns an error string or empty string if no error
getAccountList()
: QVariant<AccountList>
returns list of accounts on status-go node
estimateGas(from_addr: string, to: string, assetAddress: string, value: string, data: string)
: string
from_addr
(string
): from address for the transactionto
(string
): to address for the transactionassetAddress
(string
): token contract address (use"0x0000000000000000000000000000000000000000"
for Ethereum transactions)value
(string
): amount of Ethereum to send (in whole Ethereum units)data
(string
): encoded transaction data
returns a stringified JSON response from status with the transaction gas estimate and an error
field if an error occurred.
transactionSent(txResult: string)
: void
txResult
(string
): transaction result
fires the QML signal walletModel.transactionWasSent
sendTransaction(from_addr: string, to: string, assetAddress: string, value: string, gas: string, gasPrice: string, password: string, uuid: string)
: void
from_addr
(string
): from address for the transactionto
(string
): to address for the transactionassetAddress
(string
): token contract address (use"0x0000000000000000000000000000000000000000"
for Ethereum transactions)value
(string
): amount of Ethereum to send (in whole Ethereum units)gas
(string
): gas to use for the transactiongasPrice
(string
): gas price for the transactionpassword
(string
): password of the current user accountuuid
(string
): a unique identifier for the transaction request,so it can be idenified in QML when upon asynchronous completion
sends a transaction in a separate thread.
getDefaultAccount()
: string
returns the address of the currently selected account
defaultCurrency()
: string
returns the currency symbol from settings
setDefaultCurrency(currency: string)
: string
currency
(string
): currency symbol, e.g"USD"
set a new default currency in the current user's settings
hasAsset(account: string, symbol: string)
: bool
account
(string
): account to check for enabled tokensymbol
(string
): token symbol, ie"SNT"
returns true if token with symbol
is enabled, false other wise
toggleAsset(symbol: string)
: void
symbol
(string
): token symbol, ie"SNT"
enables a token with symbol
or disables it it's already enabled
removeCustomToken(tokenAddress: string)
: void
tokenAddress
(string
): token contract address
removes the custom token from the list of tokens available in the wallet
addCustomToken(address: string, name: string, symbol: string, decimals: string)
: void
address
(string
): token contract addressname
(string
): display name for the tokensymbol
(string
): token symboldecimals
(string
): number of decimals supported by the token
adds the custom token to the list of tokens available in the wallet
setCollectiblesResult(collectibleType: string)
: void
collectibleType
(string
):"cryptokitty"
,"kudo"
,"ethermon"
,"stickers"
sets the current wallet's collectibles
reloadCollectible(collectiblesJSON: string)
: void
collectiblesJSON
(string
): stringified JSON structure of collectibles
reloads the current wallet's collectibles in another thread
getGasPricePredictions()
: void
gets current ethereum network gas predictions in a new thread
getGasPricePredictionsResult(gasPricePredictionsJson: string)
: void
gasPricePredictionsJson
(string
): JSON stringified response of gas predictions
updates the current gas predictions for the ethereum network, and fires the gasPricePredictionsChanged
signal
safeLowGasPrice()
: string
returns the current Ethereum networks's safe low gas price, in gwei
standardGasPrice()
: string
returns the current Ethereum networks's standard gas price, in gwei
fastGasPrice()
: string
returns the current Ethereum networks's fast gas price, in gwei
fastestGasPrice()
: string
returns the current Ethereum networks's fastest gas price, in gwei
defaultGasLimit()
: string
returns the default gas limit for sending Ethereum, which is "21000"
getDefaultAddress()
: string
returns the address of the first wallet account on the node
getDefaultTokenList()
: QVariant<TokenList>
returns the non-custom list of ERC-20 tokens for the currently selected wallet account
loadCustomTokens()
: none
loads the custom tokens in to the TokenList
added by the user in to walletModel.customTokenList
getCustomTokenList()
: QVariant<TokenList>
returns the custom list of ERC-20 tokens added by the user
isFetchingHistory(address: string)
: bool
address
(string
): address of the account to check
returns true
if status-go
is currently fetching the transaction history for the specified account
isKnownTokenContract(address: string)
: bool
address
(string
): contract address
returns true
if the specified address is in the list of default or custom (user-added) contracts
decodeTokenApproval(tokenAddress: string, data: string)
: string
tokenAddress
(string
): contract addressdata
(string
): response received from the ERC-20 tokenApprove
function call
Returns stringified JSON result of the decoding. The JSON will contain only an error
field if there was an error during decoding. Otherwise, it will contain a symbol
(the token symbol) and an amount
(amount approved to spend) field.
loadTransactionsForAccount(address: string)
: void
address
(string
): address of the account to load transactions for
loads the transfer history for the specified account (result of wallet_getTransfersByAddress
) in a separate thread
setTrxHistoryResult(historyJSON: string)
: void
historyJSON
(string
): stringified JSON result fromstatus-go
's response towallet_getTransfersByAddress
sets the transaction history for the account requested. If the requested account was tracked by the walletModel
, it will have its transactions updated (including currentAccount
). The loadingTrxHistoryChanged
signal is also fired with false
as a parameter.
resolveENS(end: string)
: void
ens
(string
): the ENS name to resolve
resolves an ENS name in a separate thread
ensResolved(ens: string, uuid: string)
: void
ens
(string
): the ENS name to resolveuuid
(string
): a unique identifier to identify the request in QML so that only specific components can respond when needed
fires the ensWasResolved
signal with the resolved address (address
) and the unique identifier (uuid
)
setDappBrowserAddress()
: void
sets the dapp browser account to the account specified in settings and then fires the dappBrowserAccountChanged
signal
getDappBrowserAccount()
: QVariant<AccountItemView>
returns the wallet account currently used in the dapp browser
Signals
The walletModel
exposes the following signals, which can be consumed in QML using the Connections
component (with a target of walletModel
and prefixed with on
).
Name | Parameters | Description |
---|---|---|
etherscanLinkChanged |
none | fired when the etherscan link has changed |
signingPhraseChanged |
none | fired when the signing phrase has changed |
currentCollectiblesListsChanged |
none | fired when the list of collectibles for the currently selected account has changed |
currentTransactionsChanged |
none | fired when the transactions for the currently selected account have changed |
currentAccountChanged |
none | fired when the currently selected account in the wallet has changed |
focusedAccountChanged |
none | fired when the currently selected account in the chat transaction model has changed |
currentAssetListChanged |
none | fired when the token assets for the currently selected account have changed |
totalFiatBalanceChanged |
none | fired when the total equivalent fiat balance of all accounts has changed |
accountListChanged |
none | fired when accounts on the node have chagned |
transactionWasSent |
txResult (string ): JSON stringified result of sending a transaction |
fired when accounts on the node have chagned |
defaultCurrencyChanged |
none | fired when the user's default currency has chagned |
gasPricePredictionsChanged |
none | fired when the gas price predictions have changed, typically after getting a gas price prediction response |
loadingTrxHistoryChanged |
isLoading (bool ): true if the transaction history is loading |
fired when the loading of transfer history starts and completes |
ensWasResolved |
resolvedAddress (string ): address resolved from the ENS nameuuid (string ): unique identifier that was used to identify the request in QML so that only specific components can respond when needed |
fired when an ENS name was resolved |
transactionCompleted |
success (bool ): true if the transaction was successfultxHash (string ): has of the transactionrevertReason (string ): reason transaction was reverted (if provided and if the transaction was reverted) |
fired when a tracked transction (from the wallet or ENS) was completed |
dappBrowserAccountChanged |
none | fired when the select dapp browser wallet account has changed |
QtProperties
The following properties can be accessed directly on the walletModel
, ie walletModel.etherscanLink
Name | Type | Accessibility | Signal | Description |
---|---|---|---|---|
etherscanLink |
QVariant<string> |
read |
etherscanLinkChanged |
link to Etherscan from the current network settings |
signingPhrase |
QVariant<string> |
read |
signingPhraseChanged |
gets the signing phrase |
collectiblesLists |
QVariant<CollectiblesList> |
read /write |
currentCollectiblesListsChanged |
gets or sets the list of collectibles for the currently selected wallet |
transactions |
QVariant<TransactionList> |
read /write |
currentTransactionsChanged |
gets or sets the list of transactions for the currently selected wallet |
currentAccount |
QVariant<AccountItemView> |
read /write |
currentAccountChanged |
gets or sets the currently selected account |
focusedAccount |
QVariant<AccountItemView> |
read /write |
focusedAccountChanged |
gets or sets the currently focused account in the chat transaction modal |
assets |
QVariant<AssetList> |
read /write |
currentAssetListChanged |
gets or sets list of token assets for the currently selected wallet account |
totalFiatBalance |
QVariant<string> |
read /write |
totalFiatBalanceChanged |
gets or sets the total equivalent fiat balance of all wallets in the format #.## |
accounts |
QVariant<AccountList> |
read |
accountListChanged |
returns list of accounts on the node |
defaultCurrency |
QVariant<string> |
read /write |
defaultCurrencyChanged |
gets or sets the default currency in the current user's settings |
safeLowGasPrice |
QVariant<string> |
read |
gasPricePredictionsChanged |
gets the current Ethereum networks's safe low gas price, in gwei |
standardGasPrice |
QVariant<string> |
read |
gasPricePredictionsChanged |
gets the current Ethereum networks's standard gas price, in gwei |
fastGasPrice |
QVariant<string> |
read |
gasPricePredictionsChanged |
gets the current Ethereum networks's fast gas price, in gwei |
fastestGasPrice |
QVariant<string> |
read |
gasPricePredictionsChanged |
gets the current Ethereum networks's fastest gas price, in gwei |
fastestGasPrice |
QVariant<string> |
read |
none | gets the default gas limit for sending Ethereum, which is "21000" |
defaultTokenList |
QVariant<TokenList> |
read |
none | gets the non-custom list of ERC-20 tokens for the currently selected wallet account |
customTokenList |
QVariant<TokenList> |
read |
none | gets the custom list of ERC-20 tokens added by the user |
dappBrowserAccount |
QVariant<AccountItemView> |
read |
dappBrowserAccountChanged |
the wallet account currently used in the dapp browser |
Models
AccountList
QAbstractListModel
to expose node accounts.
The following roles are available to the model when bound to a QML control:
Name | Description |
---|---|
name |
account name defined by user |
address |
account address |
iconColor |
account color chosen by user |
balance |
equivalent fiat balance for display, in format $#.## |
fiatBalance |
the wallet's equivalent fiat balance in the format #.## (no currency as in balance ) |
assets |
returns an AssetList (see below) |
isWallet |
flag indicating whether the asset is a token or a wallet |
walletType |
in the case of a wallet, indicates the type of wallet ("key", "seed", "watch", "generated"). See AccountItemView for more information on wallet types. |
AssetList
QAbstractListModel
exposes ERC-20 token assets owned by a wallet account.
The following roles are available to the model when bound to a QML control:
Name | Description |
---|---|
name |
token name |
symbol |
token ticker symbol |
value |
amount of token (in wei or equivalent) |
fiatBalanceDisplay |
equivalent fiat balance for display, in format $#.## |
address |
token contract address |
fiatBalance |
equivalent fiat balance (not for display) |
CollectiblesList
QAbstractListModel
exposes ERC-721 assets for a wallet account.
The following roles are available to the model when bound to a QML control:
Name | Description |
---|---|
collectibleType |
the type of collectible ("cryptokitty", "kudo", "ethermon", "stickers") |
collectiblesJSON |
JSON representation of all collectibles in the list (schema is different for each type of collectible) |
error |
error encountered while fetching the collectibles |
TransactionList
QAbstractListModel
to expose transactions for the currently selected wallet.
The following roles are available to the model when bound to a QML control:
Name | Description |
---|---|
typeValue |
the transaction type |
address |
?? |
blockNumber |
the block number the transaction was included in |
blockHash |
the hash of the block |
timestamp |
Unix timestamp of when the block was created |
gasPrice |
gas price used in the transaction |
gasLimit |
maximum gas allowed in this block |
gasUsed |
amount of gas used in the transaction |
nonce |
transaction nonce |
txStatus |
transaction status |
value |
value (in wei) of the transaction |
fromAddress |
address the transaction was sent from |
to |
address the transaction was sent to |
contract |
?? likely in a transfer transaction, the token contract interacted with |
AccountItemView
This type can be accessed by any of the properties in the walletModel
that return QtObject<AccountItemView>
, ie walletModel.currentAccount.name
. See the walletModel
table above.
Name | Type | Description |
---|---|---|
name* |
string |
display name given to the wallet by the user |
address* |
string |
wallet's ethereum address |
iconColor* |
string |
wallet hexadecimal colour assigned to the wallet by the user |
balance* |
string |
the wallet's fiat balance used for display purposes in the format of #.## USD |
fiatBalance* |
string |
the wallet's equivalent fiat balance in the format #.## (no currency as in balance ) |
path* |
string |
the wallet's HD derivation path |
walletType* |
string |
type determined by how the wallet was created. Values include: |
"key" - wallet was created with a private key |
||
"seed" - wallet was created with a seed phrase |
||
"watch" - wallet was created as to watch an Ethereum address (like a read-only wallet) |
||
"generated" - wallet was generated by the app |
TokenList
QAbstractListModel
exposes all displayable ERC-20 tokens.
The following roles are available to the model when bound to a QML control:
Name | Description |
---|---|
name |
token display name |
symbol |
token ticker symbol |
hasIcon |
flag indicating whether or not the token has an icon |
address |
the token's ERC-20 contract address |
decimals |
the number of decimals held by the token |
isCustom |
flag indicating whether the token was added by the user |