Wallet API
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 from
- fiatSymbol(- 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 from
- cryptoSymbol(- 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 gwei
- gasLimit(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 account
- accountName(- string): name for the new wallet account
- color(- 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 account
- password(- string): password of the current user account
- name(- string): name for the new wallet account
- color(- 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 account
- password(- string): password of the current user account
- name(- string): name for the new wallet account
- color(- 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 watch
- accountName(- string): name for the new wallet account
- color(- 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 account
- accountName(- string): updated name for the wallet account
- color(- 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 transaction
- to(- string): to address for the transaction
- assetAddress(- 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 transaction
- to(- string): to address for the transaction
- assetAddress(- 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 transaction
- gasPrice(- string): gas price for the transaction
- password(- string): password of the current user account
- uuid(- 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 token
- symbol(- 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 address
- name(- string): display name for the token
- symbol(- string): token symbol
- decimals(- 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 address
- data(- string): response received from the ERC-20 token- Approvefunction 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.
isHistoryFetched(address: string) : bool
- address(- string): address of the account to check
returns true if status-go has returned transfer history for the specified account (result of wallet_getTransfersByAddress)
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 from- status-go’s response to- wallet_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 resolve
- uuid(- 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 | 
| historyWasFetched | none | fired when status-gocompletes fetching of transaction history | 
| loadingTrxHistoryChanged | isLoading(bool):trueif 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):trueif 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 inbalance) | 
| 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 AccountItemViewfor 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 walletModeltable 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 inbalance) | 
| 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 |