wallet

package
v0.184.45 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 16, 2024 License: MPL-2.0 Imports: 65 Imported by: 0

README

Wallet service API

Wallet service provides RPC API for checking transfers history and other methods related to wallet functionality. To enable service two values need to be changed in the config:

  1. Set Enable to true in WalletConfig
{
  "WalletConfig": {
    "Enabled": true,
  }
}
  1. And expose wallet API with APIModules
{
  APIModules: "eth,net,web3,peer,wallet",
}

API

wallet_getTransfersByAddress

Returns avaiable transfers in a given range.

Parameters
  • address: HEX - ethereum address encoded in hex
  • toBlock: BIGINT - end of the range. if nil query will return last transfers.
  • limit: BIGINT - limit of returned transfers.
  • fetchMore: BOOLEAN - if true, there are less than limit fetched transfers in the database, and zero block is not reached yet, history will be scanned for more transfers. If false only transfers which are already fetched to the app's database will be returned.
Examples
{
  "jsonrpc":"2.0",
  "id":7,
  "method":"wallet_getTransfersByAddress",
  "params":[
    "0xb81a6845649fa8c042dfaceb3f7a684873406993",
    "0x0",
    "0x5",
    true
  ]
}
Returns
[
  {
    "id":"0xb1a8adeaa0e6727bf01d6d8431b6238bdefa915e19ae7e8ceb16886c9f5e",
    "type":"eth",
    "address":"0xd65f3cb52605a54a833ae118fb13",
    "blockNumber":"0xb7190",
    "blockhash":"0x8d98aa2297fe322d0093b24372e2ead98414959093b479baf670",
    "timestamp":"0x6048ec6",
    "gasPrice":"0x346308a00",
    "gasLimit":"0x508",
    "gasUsed":"0x520",
    "nonce":"0x13",
    "txStatus":"0x1",
    "input":"0x",
    "txHash":"0x1adeaa0e672d7e67bf01d8431b6238bdef15e19ae7e8ceb16886c",
    "value":"0x1",
    "from":"0x2f865fb5dfdf0dfdf54a833ae118fb1363aaasd",
    "to":"0xaaaaaaf3cb52605a54a833ae118fb1363a123123",
    "contract":"0x0000000000000000000000000000000000000000",
    "NetworkID":1
  },...
]
GetTransfersByAddressAndChainID

Returns avaiable transfers in a given range.

Parameters
  • chainID: INT - ethereum chain ID
  • address: HEX - ethereum address encoded in hex
  • toBlock: BIGINT - end of the range. if nil query will return last transfers.
  • limit: BIGINT - limit of returned transfers.
  • fetchMore: BOOLEAN - if true, there are less than limit fetched transfers in the database, and zero block is not reached yet, history will be scanned for more transfers. If false only transfers which are already fetched to the app's database will be returned.
Examples
{
  "jsonrpc":"2.0",
  "id":7,
  "method":"wallet_getTransfersByAddressAndChainID",
  "params":[
    1,
    "0xb81a6845649fa8c042dfaceb3f7a684873406993",
    "0x0",
    "0x5",
    true
  ]
}
Returns
[
  {
    "id":"0xb1a8adeaa0e6727bf01d6d8431b6238bdefa915e19ae7e8ceb16886c9f5e",
    "type":"eth",
    "address":"0xd65f3cb52605a54a833ae118fb13",
    "blockNumber":"0xb7190",
    "blockhash":"0x8d98aa2297fe322d0093b24372e2ead98414959093b479baf670",
    "timestamp":"0x6048ec6",
    "gasPrice":"0x346308a00",
    "gasLimit":"0x508",
    "gasUsed":"0x520",
    "nonce":"0x13",
    "txStatus":"0x1",
    "input":"0x",
    "txHash":"0x1adeaa0e672d7e67bf01d8431b6238bdef15e19ae7e8ceb16886c",
    "value":"0x1",
    "from":"0x2f865fb5dfdf0dfdf54a833ae118fb1363aaasd",
    "to":"0xaaaaaaf3cb52605a54a833ae118fb1363a123123",
    "contract":"0x0000000000000000000000000000000000000000",
    "NetworkID":1
  },...
]
wallet_watchTransaction

Starts watching for transaction confirmation/rejection. If transaction was not confirmed/rejected in 10 minutes the call is timed out with error.

Parameters
  • tx-id: HEX - transaction hash
Example
{
  "jsonrpc":"2.0",
  "id":7,
  "method":"wallet_watchTransaction",
  "params":[
    "0xaaaaaaaa11111112222233333333"
  ]
}
wallet_watchTransactionByChainID

Starts watching for transaction confirmation/rejection. If transaction was not confirmed/rejected in 10 minutes the call is timed out with error.

Parameters
  • chainID: HEX - ethereum chain id
  • tx-id: HEX - transaction hash
Example
{
  "jsonrpc":"2.0",
  "id":7,
  "method":"wallet_watchTransactionByChainID",
  "params":[
    1,
    "0xaaaaaaaa11111112222233333333"
  ]
}
wallet_checkRecentHistory
Parameters
  • addresses: []HEX - array of addresses to be checked
Example
{
  "jsonrpc":"2.0",
  "id":1,
  "method":"wallet_checkRecentHistory",
  "params":[
    [
      "0x23458d65f3cB52605a54AaA833ae118fb1111aaa",
      "0x24568B4166D11aaa1194097C60Cdc714F7e11111"
    ]
  ]
}
wallet_checkRecentHistoryForChainIDs
Parameters
  • chainIDs: []INT - array of ethereum chain ID to be checked
  • addresses: []HEX - array of addresses to be checked
Example
{
  "jsonrpc":"2.0",
  "id":1,
  "method":"wallet_checkRecentHistoryForChainIDs",
  "params":[
    [1, 2],
    [
      "0x23458d65f3cB52605a54AaA833ae118fb1111aaa",
      "0x24568B4166D11aaa1194097C60Cdc714F7e11111"
    ]
  ]
}
wallet_getTokensBalancesForChainIDs

Returns tokens balances mapping for every account. See section below for the response example.

Parameters
  • chainIDs: []INT - array of ethereum chain ID
  • accounts HEX - list of ethereum addresses encoded in hex
  • tokens HEX - list of ethereum addresses encoded in hex
Request
{"jsonrpc":"2.0","id":11,"method":"wallet_getTokensBalancesForChainIDs","params":[
  [1, 2]
  ["0x066ed5c2ed45d70ad72f40de0b4dd97bd67d84de", "0x0ed535be4c0aa276942a1a782669790547ad8768"], 
  ["0x5e4bbdc178684478a615354d83c748a4393b20f0", "0x5e4bbdc178684478a615354d83c748a4393b20f0"]]
}
Returns

First level keys accounts, second level keys are tokens.

{
  "0x066ed5c2ed45d70ad72f40de0b4dd97bd67d84de": {
    "0x1dfb2099f936b3e98bfc9b7059a8fb04edcce5b3": 12,
    "0x5e4bbdc178684478a615354d83c748a4393b20f0": 12
  },
  "0x0ed535be4c0aa276942a1a782669790547ad8768": {
    "0x1dfb2099f936b3e98bfc9b7059a8fb04edcce5b3": 14,
    "0x5e4bbdc178684478a615354d83c748a4393b20f0": 14
  }
}
wallet_getTokensBalances

Returns tokens balances mapping for every account. See section below for the response example.

Parameters
  • accounts HEX - list of ethereum addresses encoded in hex
  • tokens HEX - list of ethereum addresses encoded in hex
Request
{"jsonrpc":"2.0","id":11,"method":"wallet_getTokensBalances","params":[["0x066ed5c2ed45d70ad72f40de0b4dd97bd67d84de", "0x0ed535be4c0aa276942a1a782669790547ad8768"], ["0x5e4bbdc178684478a615354d83c748a4393b20f0", "0x5e4bbdc178684478a615354d83c748a4393b20f0"]]}
Returns

First level keys accounts, second level keys are tokens.

{
  "0x066ed5c2ed45d70ad72f40de0b4dd97bd67d84de": {
    "0x1dfb2099f936b3e98bfc9b7059a8fb04edcce5b3": 12,
    "0x5e4bbdc178684478a615354d83c748a4393b20f0": 12
  },
  "0x0ed535be4c0aa276942a1a782669790547ad8768": {
    "0x1dfb2099f936b3e98bfc9b7059a8fb04edcce5b3": 14,
    "0x5e4bbdc178684478a615354d83c748a4393b20f0": 14
  }
}
wallet_storePendingTransaction

Stores pending transation in the database.

Parameters
  • transaction OBJECT - list of ethereum addresses encoded in hex
Transaction
  • hash HEX
  • timestamp ``INT`
  • from HEX
  • to HEX
  • symbol VARCHAR - "ETH" for ethereum, otherwise ERC20 tokaen name, null for contract call
  • gasPrice BIGINT
  • gasLimit BIGINT
  • value BIGINT
  • data TEXT - transaction's data field
  • type VARCHAR
  • additionalData TEXT - arbitrary additional data
  • network_id INT - an optional network id
Request example
{
  "jsonrpc":"2.0",
  "id":1,
  "method":"wallet_storePendingTransaction",
  "params":[
    {
      "hash":"0x3bce2c2d0fffbd2862ef3ec61a62872e54954551585fa0072d8e5c2f6be3523e",
      "symbol":"ETH",
      "gasPrice":"2000000000",
      "value":"1000000000000000",
      "from":"0xaaaad65f3cB52605433ae118fb1363aaaaad2",
      "timestamp":1618584138787,
      "gasLimit":"21000",
      "to":"0x237f8B4166D64a2b94097C60Cdc714F7eC3aa079",
      "data":null
    }
  ]
}
wallet_getPendingTransactions

Returns all stored pending transactions.

Request
{"jsonrpc":"2.0","id":1,"method":"wallet_getPendingTransactions","params":[]}
Returns

First level keys accounts, second level keys are tokens.

{
  "jsonrpc":"2.0",
  "id":1,
  "result":[
    {
      "hash":"0x3bce2c2d0fffbd2862ef3ec61a62872e54954551585fa0072d8e5c2f6be3523e",
      "timestamp":1618584138787,
      "value":"1000000000000000",
      "from":"0xaaaaaaaa605a54a833ae118fb1aaaaaaaaaaa",
      "to":"0x237f8b4166d64a2b94097c60cdc714f7ec3aa079",
      "data":"",
      "symbol":"ETH",
      "gasPrice":"2000000000",
      "gasLimit":"21000",
      "type":"",
      "additionalData":""
    },
    ...
  ]
}
wallet_getPendingTransactionsByChainID

Returns all stored pending transactions.

Parameters
  • chainID INT - ethereum chain ID
Request
{"jsonrpc":"2.0","id":1,"method":"wallet_getPendingTransactions","params":[1]}
Returns

First level keys accounts, second level keys are tokens.

{
  "jsonrpc":"2.0",
  "id":1,
  "result":[
    {
      "hash":"0x3bce2c2d0fffbd2862ef3ec61a62872e54954551585fa0072d8e5c2f6be3523e",
      "timestamp":1618584138787,
      "value":"1000000000000000",
      "from":"0xaaaaaaaa605a54a833ae118fb1aaaaaaaaaaa",
      "to":"0x237f8b4166d64a2b94097c60cdc714f7ec3aa079",
      "data":"",
      "symbol":"ETH",
      "gasPrice":"2000000000",
      "gasLimit":"21000",
      "type":"",
      "additionalData":"",
      "network_id": 1
    },
    ...
  ]
}
wallet_getPendingOutboundTransactionsByAddress

Returns all stored pending transaction sent from address.

Parameters
  • address HEX
Request
{
  "jsonrpc":"2.0",
  "id":1,
  "method":"wallet_getPendingOutboundTransactionsByAddress",
  "params":[
    "0xaaaaaaaa605a54a833ae118fb1aaaaaaaaaaa"
  ]
}
Returns

First level keys accounts, second level keys are tokens.

{
  "jsonrpc":"2.0",
  "id":1,
  "result":[
    {
      "hash":"0x3bce2c2d0fffbd2862ef3ec61a62872e54954551585fa0072d8e5c2f6be3523e",
      "timestamp":1618584138787,
      "value":"1000000000000000",
      "from":"0xaaaaaaaa605a54a833ae118fb1aaaaaaaaaaa",
      "to":"0x237f8b4166d64a2b94097c60cdc714f7ec3aa079",
      "data":"",
      "symbol":"ETH",
      "gasPrice":"2000000000",
      "gasLimit":"21000",
      "type":"",
      "additionalData":""
    },
    ...
  ]
}
wallet_getPendingOutboundTransactionsByAddressAndChainID

Returns all stored pending transaction sent from address.

Parameters
  • chainID INT
  • address HEX
Request
{
  "jsonrpc":"2.0",
  "id":1,
  "method":"wallet_getPendingOutboundTransactionsByAddress",
  "params":[
    1,
    "0xaaaaaaaa605a54a833ae118fb1aaaaaaaaaaa"
  ]
}
Returns

First level keys accounts, second level keys are tokens.

{
  "jsonrpc":"2.0",
  "id":1,
  "result":[
    {
      "hash":"0x3bce2c2d0fffbd2862ef3ec61a62872e54954551585fa0072d8e5c2f6be3523e",
      "timestamp":1618584138787,
      "value":"1000000000000000",
      "from":"0xaaaaaaaa605a54a833ae118fb1aaaaaaaaaaa",
      "to":"0x237f8b4166d64a2b94097c60cdc714f7ec3aa079",
      "data":"",
      "symbol":"ETH",
      "gasPrice":"2000000000",
      "gasLimit":"21000",
      "type":"",
      "additionalData":"",
      "network_id": 1
    },
    ...
  ]
}
wallet_deletePendingTransaction

Deletes pending transaction from the database by hash.

Parameters
  • hash HEX
Request
{
  "jsonrpc":"2.0",
  "id":1,
  "method":"wallet_deletePendingTransaction",
  "params":[
    "0x3bce2c2d0fffbd2862ef3ec61a62872e54954551585fa0072d8e5c2f6be3523e"
  ]
}
wallet_deletePendingTransactionByChainID

Deletes pending transaction from the database by hash.

Parameters
  • chainID INT
  • hash HEX
Request
{
  "jsonrpc":"2.0",
  "id":1,
  "method":"wallet_deletePendingTransaction",
  "params":[
    1,
    "0x3bce2c2d0fffbd2862ef3ec61a62872e54954551585fa0072d8e5c2f6be3523e"
  ]
}

Signals


All events are of the same format:

{
  "type": "wallet",
  "event": {
    "type": "event-type",
    "blockNumber": 0,
    "accounts": [
      "0x42c8f505b4006d417dd4e0ba0e880692986adbd8",
      "0x3129mdasmeo132128391fml1130410k312312mll"
    ],
    "message": "something might be here"
  }
}
  1. new-transfers

Emitted when transfers are detected. In this case block number is a block number of the latest found transfer. Client expected to request transfers starting from received block.

  1. recent-history-fetching

Emitted when history scanning is started.

  1. recent-history-ready

Emitted when history scanning is ended.

  1. fetching-history-error

Emitted when when history can't be fetched because some error. Error's decritption can be found in message field.

  1. non-archival-node-detected

Emitted when the application is connected to a non-archival node.

Flows

Account creation

When a new multiaccount is created corresponding address will not contain any transaction. Thus no point in checking history, it will be empty.

  1. Call wallet_checkRecentHistory
  2. On recent-history-ready request transactions via wallet_getTransfersByAddress
  3. Repeat wallet_checkRecentHistory in N minutes (currently 20 minutes in status-mobile for upstream RPC node. If a custom node is used interval can be arbitrary)
Logging into application
  1. Call wallet_checkRecentHistory
  2. On recent-history-ready request transactions via wallet_getTransfersByAddress
  3. Repeat wallet_checkRecentHistory in N minutes (currently 20 minutes in status-mobile for upstream RPC node. If a custom node is used interval can be arbitrary)
Watching transaction
  1. Call wallet_watchTransaction
  2. On success call wallet_checkRecentHistory
  3. On recent-history-ready request transactions via wallet_getTransfersByAddress

Documentation

Index

Constants

View Source
const (
	EventBlockchainStatusChanged walletevent.EventType = "wallet-blockchain-status-changed"
)
View Source
const EventWalletTickCheckConnected walletevent.EventType = "wallet-tick-check-connected"
View Source
const EventWalletTickReload walletevent.EventType = "wallet-tick-reload"

WalletTickReload emitted every 15mn to reload the wallet balance and history

Variables

This section is empty.

Functions

This section is empty.

Types

type API

type API struct {
	// contains filtered or unexported fields
}

API is class with methods available over RPC.

func NewAPI

func NewAPI(s *Service) *API

func (*API) AddCustomToken added in v0.38.1

func (api *API) AddCustomToken(ctx context.Context, token token.Token) error

func (*API) AddEthereumChain added in v0.86.7

func (api *API) AddEthereumChain(ctx context.Context, network params.Network) error

func (*API) AddWalletConnectSession added in v0.179.24

func (api *API) AddWalletConnectSession(ctx context.Context, session_json string) error

AddWalletConnectSession adds or updates a session wallet connect session

func (*API) AddressExists added in v0.152.3

func (api *API) AddressExists(ctx context.Context, address types.Address) (bool, error)

func (*API) BuildRawTransaction added in v0.171.27

func (api *API) BuildRawTransaction(ctx context.Context, chainID uint64, sendTxArgsJSON string, signature string) (response *transfer.TxResponse, err error)

func (*API) BuildTransaction added in v0.171.25

func (api *API) BuildTransaction(ctx context.Context, chainID uint64, sendTxArgsJSON string) (response *transfer.TxResponse, err error)

func (*API) CancelActivityFilterTask added in v0.167.5

func (api *API) CancelActivityFilterTask(requestID int32) error

@deprecated replaced by session APIs; see #12120

func (*API) CheckRecentHistory added in v0.75.0

func (api *API) CheckRecentHistory(ctx context.Context, addresses []common.Address) error

@deprecated

func (*API) CheckRecentHistoryForChainIDs added in v0.86.7

func (api *API) CheckRecentHistoryForChainIDs(ctx context.Context, chainIDs []uint64, addresses []common.Address) error

@deprecated

func (*API) CreateMultiTransaction added in v0.103.2

func (api *API) CreateMultiTransaction(ctx context.Context, multiTransactionCommand *transfer.MultiTransactionCommand, data []*pathprocessor.MultipathProcessorTxArgs, password string) (*transfer.MultiTransactionCommandResult, error)

func (*API) DeleteCustomToken added in v0.38.1

func (api *API) DeleteCustomToken(ctx context.Context, address common.Address) error

@deprecated

func (*API) DeleteCustomTokenByChainID added in v0.86.7

func (api *API) DeleteCustomTokenByChainID(ctx context.Context, chainID uint64, address common.Address) error

func (*API) DeleteEthereumChain added in v0.86.7

func (api *API) DeleteEthereumChain(ctx context.Context, chainID uint64) error

func (*API) DisconnectWalletConnectSession added in v0.179.24

func (api *API) DisconnectWalletConnectSession(ctx context.Context, topic walletconnect.Topic) error

DisconnectWalletConnectSession removes a wallet connect session

func (*API) DiscoverToken added in v0.98.1

func (api *API) DiscoverToken(ctx context.Context, chainID uint64, address common.Address) (*token.Token, error)

func (*API) FetchAllCurrencyFormats added in v0.131.11

func (api *API) FetchAllCurrencyFormats() (currency.FormatPerSymbol, error)

func (*API) FetchBalancesByOwnerAndContractAddress added in v0.162.5

func (api *API) FetchBalancesByOwnerAndContractAddress(ctx context.Context, chainID wcommon.ChainID, ownerAddress common.Address, contractAddresses []common.Address) (thirdparty.TokenBalancesPerContractAddress, error)

func (*API) FetchCachedBalancesByOwnerAndContractAddress added in v0.180.31

func (api *API) FetchCachedBalancesByOwnerAndContractAddress(ctx context.Context, chainID wcommon.ChainID, ownerAddress common.Address, contractAddresses []common.Address) (thirdparty.TokenBalancesPerContractAddress, error)

func (*API) FetchChainIDForURL added in v0.162.5

func (api *API) FetchChainIDForURL(ctx context.Context, rpcURL string) (*big.Int, error)

func (*API) FetchCollectibleOwnersByContractAddress added in v0.179.29

func (api *API) FetchCollectibleOwnersByContractAddress(ctx context.Context, chainID wcommon.ChainID, contractAddress common.Address) (*thirdparty.CollectibleContractOwnership, error)

func (*API) FetchCollectionSocialsAsync added in v0.179.17

func (api *API) FetchCollectionSocialsAsync(contractID thirdparty.ContractID) error

func (*API) FetchDecodedTxData added in v0.159.2

func (api *API) FetchDecodedTxData(ctx context.Context, data string) (*thirdparty.DataParsed, error)

func (*API) FetchMarketValues added in v0.106.1

func (api *API) FetchMarketValues(ctx context.Context, symbols []string, currency string) (map[string]thirdparty.TokenMarketValues, error)

@deprecated

func (*API) FetchOrGetCachedWalletBalances added in v0.173.0

func (api *API) FetchOrGetCachedWalletBalances(ctx context.Context, addresses []common.Address) (map[common.Address][]token.StorageToken, error)

func (*API) FetchPrices added in v0.96.4

func (api *API) FetchPrices(ctx context.Context, symbols []string, currencies []string) (map[string]map[string]float64, error)

@deprecated

func (*API) FetchTokenDetails added in v0.106.1

func (api *API) FetchTokenDetails(ctx context.Context, symbols []string) (map[string]thirdparty.TokenDetails, error)

@deprecated

func (*API) FilterActivityAsync added in v0.158.0

func (api *API) FilterActivityAsync(requestID int32, addresses []common.Address, chainIDs []wcommon.ChainID, filter activity.Filter, offset int, limit int) error

@deprecated replaced by session APIs; see #12120

func (*API) GetActivityCollectiblesAsync added in v0.167.5

func (api *API) GetActivityCollectiblesAsync(requestID int32, chainIDs []wcommon.ChainID, addresses []common.Address, offset int, limit int) error

func (*API) GetAddressDetails added in v0.142.1

func (api *API) GetAddressDetails(ctx context.Context, chainID uint64, address string) (*DerivedAddress, error)

Returns details for the passed address (response doesn't include derivation path)

func (*API) GetBalanceHistory added in v0.114.3

func (api *API) GetBalanceHistory(ctx context.Context, chainIDs []uint64, addresses []common.Address, tokenSymbol string, currencySymbol string, timeInterval history.TimeInterval) ([]*history.ValuePoint, error)

GetBalanceHistory retrieves token balance history for token identity on multiple chains

func (*API) GetBalanceHistoryRange added in v0.168.1

func (api *API) GetBalanceHistoryRange(ctx context.Context, chainIDs []uint64, addresses []common.Address, tokenSymbol string, currencySymbol string, fromTimestamp uint64, _ uint64) ([]*history.ValuePoint, error)

GetBalanceHistoryRange retrieves token balance history for token identity on multiple chains for a time range 'toTimestamp' is ignored for now, but will be used in the future to limit the range of the history

func (*API) GetBalancesByChain added in v0.171.39

func (api *API) GetBalancesByChain(ctx context.Context, chainIDs []uint64, addresses, tokens []common.Address) (map[uint64]map[common.Address]map[common.Address]*hexutil.Big, error)

GetBalancesByChain return a map with key as chain id and value as map of account address and map of token address and balance [chainID]account[token]balance

func (*API) GetCachedCurrencyFormats added in v0.131.11

func (api *API) GetCachedCurrencyFormats() (currency.FormatPerSymbol, error)

func (*API) GetCollectibleOwnersByContractAddress added in v0.146.3

func (api *API) GetCollectibleOwnersByContractAddress(ctx context.Context, chainID wcommon.ChainID, contractAddress common.Address) (*thirdparty.CollectibleContractOwnership, error)

func (*API) GetCollectibleOwnership added in v0.175.3

func (api *API) GetCollectibleOwnership(id thirdparty.CollectibleUniqueID) ([]thirdparty.AccountBalance, error)

func (*API) GetCollectiblesByUniqueIDAsync added in v0.171.21

func (api *API) GetCollectiblesByUniqueIDAsync(requestID int32, uniqueIDs []thirdparty.CollectibleUniqueID, dataType collectibles.CollectibleDataType) error

func (*API) GetCryptoOnRampURL added in v0.182.43

func (api *API) GetCryptoOnRampURL(ctx context.Context, providerID string, parameters onramp.Parameters) (string, error)

func (*API) GetCryptoOnRamps added in v0.71.4

func (api *API) GetCryptoOnRamps(ctx context.Context) ([]onramp.CryptoOnRamp, error)

func (*API) GetCustomTokens added in v0.38.1

func (api *API) GetCustomTokens(ctx context.Context) ([]*token.Token, error)

@deprecated

func (*API) GetDailyMarketValues added in v0.111.5

func (api *API) GetDailyMarketValues(ctx context.Context, symbol string, currency string, limit int, allData bool, aggregate int) ([]thirdparty.HistoricalPrice, error)

func (*API) GetDerivedAddresses added in v0.142.1

func (api *API) GetDerivedAddresses(ctx context.Context, password string, derivedFrom string, paths []string) ([]*DerivedAddress, error)

Generates addresses for the provided paths, response doesn't include `HasActivity` value (if you need it check `GetAddressDetails` function)

func (*API) GetDerivedAddressesForMnemonic added in v0.142.1

func (api *API) GetDerivedAddressesForMnemonic(ctx context.Context, mnemonic string, paths []string) ([]*DerivedAddress, error)

Generates addresses for the provided paths derived from the provided mnemonic, response doesn't include `HasActivity` value (if you need it check `GetAddressDetails` function)

func (*API) GetEstimatedLatestBlockNumber added in v0.166.7

func (api *API) GetEstimatedLatestBlockNumber(ctx context.Context, chainID uint64) (uint64, error)

func (*API) GetEthereumChains added in v0.86.7

func (api *API) GetEthereumChains(ctx context.Context) ([]*network.CombinedNetwork, error)

func (*API) GetHourlyMarketValues added in v0.111.5

func (api *API) GetHourlyMarketValues(ctx context.Context, symbol string, currency string, limit int, aggregate int) ([]thirdparty.HistoricalPrice, error)

func (*API) GetMoreForActivityFilterSession added in v0.174.6

func (api *API) GetMoreForActivityFilterSession(id activity.SessionID, pageCount int) error

func (*API) GetMultiTransactions added in v0.138.1

func (api *API) GetMultiTransactions(ctx context.Context, transactionIDs []wcommon.MultiTransactionIDType) ([]*transfer.MultiTransaction, error)

func (*API) GetMultiTxDetails added in v0.166.1

func (api *API) GetMultiTxDetails(ctx context.Context, multiTxID int) (*activity.EntryDetails, error)

func (*API) GetOldestActivityTimestampAsync added in v0.161.2

func (api *API) GetOldestActivityTimestampAsync(requestID int32, addresses []common.Address) error

func (*API) GetOwnedCollectiblesAsync added in v0.171.21

func (api *API) GetOwnedCollectiblesAsync(requestID int32, chainIDs []wcommon.ChainID, addresses []common.Address, filter collectibles.Filter, offset int, limit int, dataType collectibles.CollectibleDataType, fetchCriteria collectibles.FetchCriteria) error

func (*API) GetPairingsJSONFileContent added in v0.166.11

func (api *API) GetPairingsJSONFileContent() ([]byte, error)

func (*API) GetPendingTransactions added in v0.62.0

func (api *API) GetPendingTransactions(ctx context.Context) ([]*transactions.PendingTransaction, error)

@deprecated Not used by status-desktop anymore

func (*API) GetPendingTransactionsForIdentities added in v0.151.4

func (api *API) GetPendingTransactionsForIdentities(ctx context.Context, identities []transfer.TransactionIdentity) (
	result []*transactions.PendingTransaction, err error)

@deprecated Not used by status-desktop anymore

func (*API) GetRecipientsAsync added in v0.161.2

func (api *API) GetRecipientsAsync(requestID int32, chainIDs []wcommon.ChainID, addresses []common.Address, offset int, limit int) (ignored bool, err error)

func (*API) GetSuggestedFees added in v0.97.4

func (api *API) GetSuggestedFees(ctx context.Context, chainID uint64) (*router.SuggestedFeesGwei, error)

func (*API) GetSuggestedRoutes added in v0.101.1

func (api *API) GetSuggestedRoutes(
	ctx context.Context,
	sendType router.SendType,
	addrFrom common.Address,
	addrTo common.Address,
	amountIn *hexutil.Big,
	tokenID string,
	toTokenID string,
	disabledFromChainIDs,
	disabledToChainIDs,
	preferedChainIDs []uint64,
	gasFeeMode router.GasFeeMode,
	fromLockedAmount map[uint64]*hexutil.Big,
) (*router.SuggestedRoutes, error)

func (*API) GetSuggestedRoutesV2 added in v0.179.22

func (api *API) GetSuggestedRoutesV2(ctx context.Context, input *router.RouteInputParams) (*router.SuggestedRoutesV2, error)

func (*API) GetSuggestedRoutesV2Async added in v0.181.32

func (api *API) GetSuggestedRoutesV2Async(ctx context.Context, input *router.RouteInputParams)

func (*API) GetTokenList added in v0.171.21

func (api *API) GetTokenList(ctx context.Context) (*token.ListWrapper, error)

func (*API) GetTokens added in v0.93.2

func (api *API) GetTokens(ctx context.Context, chainID uint64) ([]*token.Token, error)

@deprecated

func (*API) GetTransactionEstimatedTime added in v0.103.2

func (api *API) GetTransactionEstimatedTime(ctx context.Context, chainID uint64, maxFeePerGas *big.Float) (router.TransactionEstimation, error)

func (*API) GetTransfersByAddress

func (api *API) GetTransfersByAddress(ctx context.Context, address common.Address, toBlock, limit *hexutil.Big, fetchMore bool) ([]transfer.View, error)

@deprecated GetTransfersByAddress returns transfers for a single address

func (*API) GetTransfersByAddressAndChainID added in v0.86.7

func (api *API) GetTransfersByAddressAndChainID(ctx context.Context, chainID uint64, address common.Address, toBlock, limit *hexutil.Big, fetchMore bool) ([]transfer.View, error)

@deprecated

func (*API) GetTransfersForIdentities added in v0.151.4

func (api *API) GetTransfersForIdentities(ctx context.Context, identities []transfer.TransactionIdentity) ([]transfer.View, error)

@deprecated

func (*API) GetTxDetails added in v0.166.1

func (api *API) GetTxDetails(ctx context.Context, id string) (*activity.EntryDetails, error)

func (*API) GetWalletConnectActiveSessions added in v0.181.32

func (api *API) GetWalletConnectActiveSessions(ctx context.Context, validAtTimestamp int64) ([]walletconnect.DBSession, error)

GetWalletConnectActiveSessions returns all active wallet connect sessions

func (*API) GetWalletConnectDapps added in v0.179.24

func (api *API) GetWalletConnectDapps(ctx context.Context, validAtTimestamp int64, testChains bool) ([]walletconnect.DBDApp, error)

GetWalletConnectDapps returns all active wallet connect dapps Active dApp are those having active sessions (not expired and not disconnected)

func (*API) GetWalletToken added in v0.115.5

func (api *API) GetWalletToken(ctx context.Context, addresses []common.Address) (map[common.Address][]token.StorageToken, error)

Used by mobile

func (*API) HashMessageEIP191 added in v0.181.34

func (api *API) HashMessageEIP191(ctx context.Context, message types.HexBytes) types.Hash

HashMessageEIP191 is used for hashing dApps requests for "personal_sign" and "eth_sign" in a safe manner following the EIP-191 version 0x45 for signing on the client side.

func (*API) IsChecksumValidForAddress added in v0.182.41

func (api *API) IsChecksumValidForAddress(address string) (bool, error)

func (*API) LoadTransferByHash added in v0.91.10

func (api *API) LoadTransferByHash(ctx context.Context, address common.Address, hash common.Hash) error

@deprecated LoadTransferByHash loads transfer to the database Only used by status-mobile

func (*API) ProceedWithTransactionsSignatures added in v0.171.1

func (api *API) ProceedWithTransactionsSignatures(ctx context.Context, signatures map[string]transfer.SignatureDetails) (*transfer.MultiTransactionCommandResult, error)

func (*API) RefetchOwnedCollectibles added in v0.167.5

func (api *API) RefetchOwnedCollectibles() error

func (*API) ResetActivityFilterSession added in v0.174.6

func (api *API) ResetActivityFilterSession(id activity.SessionID, firstPageCount int) error

func (*API) RestartWalletReloadTimer added in v0.181.32

func (api *API) RestartWalletReloadTimer(ctx context.Context) error

func (*API) SafeSignTypedDataForDApps added in v0.181.34

func (api *API) SafeSignTypedDataForDApps(typedJson string, address string, password string, chainID uint64, legacy bool) (types.HexBytes, error)

SafeSignTypedDataForDApps is used to execute requests for "eth_signTypedData" if legacy is true else "eth_signTypedData_v4" the formatted typed data won't be prefixed in case of legacy calls, as the old dApps implementation expects the chain is validate for both cases

func (*API) SearchCollectibles added in v0.177.0

func (api *API) SearchCollectibles(ctx context.Context, chainID wcommon.ChainID, text string, cursor string, limit int, providerID string) (*thirdparty.FullCollectibleDataContainer, error)

func (*API) SearchCollections added in v0.177.0

func (api *API) SearchCollections(ctx context.Context, chainID wcommon.ChainID, text string, cursor string, limit int, providerID string) (*thirdparty.CollectionDataContainer, error)

func (*API) SendTransactionWithSignature added in v0.171.25

func (api *API) SendTransactionWithSignature(ctx context.Context, chainID uint64, txType transactions.PendingTrxType,
	sendTxArgsJSON string, signature string) (hash types.Hash, err error)

func (*API) SetPairingsJSONFileContent added in v0.166.11

func (api *API) SetPairingsJSONFileContent(content []byte) error

func (*API) SignMessage added in v0.171.25

func (api *API) SignMessage(ctx context.Context, message types.HexBytes, address common.Address, password string) (string, error)

func (*API) SignTypedDataV4 added in v0.180.31

func (api *API) SignTypedDataV4(typedJson string, address string, password string) (types.HexBytes, error)

SignTypedDataV4 dApps use it to execute "eth_signTypedData_v4" requests the formatted typed data will be prefixed with \x19\x01 based on the EIP-712 @deprecated

func (*API) StartActivityFilterSession added in v0.173.0

func (api *API) StartActivityFilterSession(addresses []common.Address, chainIDs []wcommon.ChainID, filter activity.Filter, firstPageCount int) (activity.SessionID, error)

func (*API) StartWallet added in v0.100.0

func (api *API) StartWallet(ctx context.Context) error

func (*API) StopActivityFilterSession added in v0.173.0

func (api *API) StopActivityFilterSession(id activity.SessionID)

func (*API) StopSuggestedRoutesV2AsyncCalcualtion added in v0.181.32

func (api *API) StopSuggestedRoutesV2AsyncCalcualtion(ctx context.Context)

func (*API) StopWallet added in v0.125.2

func (api *API) StopWallet(ctx context.Context) error

func (*API) UpdateActivityFilterForSession added in v0.176.3

func (api *API) UpdateActivityFilterForSession(sessionID activity.SessionID, filter activity.Filter, firstPageCount int) error

func (*API) WatchTransactionByChainID added in v0.86.7

func (api *API) WatchTransactionByChainID(ctx context.Context, chainID uint64, transactionHash common.Hash) (err error)

@deprecated TODO - #11861: Remove this and replace with EventPendingTransactionStatusChanged event and Delete to confirm the transaction where it is needed

type Decoder added in v0.161.2

type Decoder struct {
	Main     *fourbytegithub.Client
	Fallback *fourbyte.Client
}

func NewDecoder added in v0.161.2

func NewDecoder() *Decoder

func (*Decoder) Decode added in v0.161.2

func (d *Decoder) Decode(data string) (*thirdparty.DataParsed, error)

type DerivedAddress added in v0.100.0

type DerivedAddress struct {
	Address        common.Address `json:"address"`
	PublicKey      types.HexBytes `json:"public-key,omitempty"`
	Path           string         `json:"path"`
	HasActivity    bool           `json:"hasActivity"`
	AlreadyCreated bool           `json:"alreadyCreated"`
}

type KeycardPairing added in v0.181.31

type KeycardPairing struct {
	Key   string `json:"key"`
	Index int    `json:"index"`
}

type KeycardPairings added in v0.166.11

type KeycardPairings struct {
	// contains filtered or unexported fields
}

func NewKeycardPairings added in v0.166.11

func NewKeycardPairings() *KeycardPairings

func (*KeycardPairings) GetPairings added in v0.181.31

func (kp *KeycardPairings) GetPairings() (map[string]KeycardPairing, error)

func (*KeycardPairings) GetPairingsJSONFileContent added in v0.166.11

func (kp *KeycardPairings) GetPairingsJSONFileContent() ([]byte, error)

func (*KeycardPairings) SetKeycardPairingsFile added in v0.166.11

func (kp *KeycardPairings) SetKeycardPairingsFile(filePath string)

func (*KeycardPairings) SetPairingsJSONFileContent added in v0.166.11

func (kp *KeycardPairings) SetPairingsJSONFileContent(content []byte) error

type Reader added in v0.100.0

type Reader struct {
	// contains filtered or unexported fields
}

func NewReader added in v0.100.0

func NewReader(tokenManager token.ManagerInterface, marketManager *market.Manager, persistence token.TokenBalancesStorage, walletFeed *event.Feed) *Reader

func (*Reader) FetchBalances added in v0.180.31

func (r *Reader) FetchBalances(ctx context.Context, clients map[uint64]chain.ClientInterface, addresses []common.Address) (map[common.Address][]token.StorageToken, error)

func (*Reader) FetchOrGetCachedWalletBalances added in v0.173.0

func (r *Reader) FetchOrGetCachedWalletBalances(ctx context.Context, clients map[uint64]chain.ClientInterface, addresses []common.Address, forceRefresh bool) (map[common.Address][]token.StorageToken, error)

func (*Reader) GetCachedBalances added in v0.180.31

func (r *Reader) GetCachedBalances(clients map[uint64]chain.ClientInterface, addresses []common.Address) (map[common.Address][]token.StorageToken, error)

func (*Reader) GetWalletToken added in v0.115.5

func (r *Reader) GetWalletToken(ctx context.Context, clients map[uint64]chain.ClientInterface, addresses []common.Address, currency string) (map[common.Address][]token.StorageToken, error)

func (*Reader) Restart added in v0.181.32

func (r *Reader) Restart() error

func (*Reader) Start added in v0.100.0

func (r *Reader) Start() error

func (*Reader) Stop added in v0.115.5

func (r *Reader) Stop()

type SavedAddress added in v0.86.7

type SavedAddress struct {
	Address common.Address `json:"address"`
	// TODO: Add Emoji
	// Emoji	string		   `json:"emoji"`
	Name            string                            `json:"name"`
	ChainShortNames string                            `json:"chainShortNames"` // used with address only, not with ENSName
	ENSName         string                            `json:"ens"`
	ColorID         multiAccCommon.CustomizationColor `json:"colorId"`
	IsTest          bool                              `json:"isTest"`
	CreatedAt       int64                             `json:"createdAt"`
	Removed         bool                              `json:"removed"`
	// contains filtered or unexported fields
}

func (*SavedAddress) ID added in v0.131.2

func (s *SavedAddress) ID() string

func (*SavedAddress) MarshalJSON added in v0.175.3

func (s *SavedAddress) MarshalJSON() ([]byte, error)

type SavedAddressesManager added in v0.86.7

type SavedAddressesManager struct {
	// contains filtered or unexported fields
}

func NewSavedAddressesManager added in v0.111.5

func NewSavedAddressesManager(db *sql.DB) *SavedAddressesManager

func (*SavedAddressesManager) AddSavedAddressIfNewerUpdate added in v0.111.5

func (sam *SavedAddressesManager) AddSavedAddressIfNewerUpdate(sa SavedAddress) (insertedOrUpdated bool, err error)

func (*SavedAddressesManager) DeleteSavedAddress added in v0.86.7

func (sam *SavedAddressesManager) DeleteSavedAddress(address common.Address, isTest bool, updateClock uint64) (deleted bool, err error)

func (*SavedAddressesManager) DeleteSoftRemovedSavedAddresses added in v0.111.5

func (sam *SavedAddressesManager) DeleteSoftRemovedSavedAddresses(threshold uint64) error

func (*SavedAddressesManager) GetRawSavedAddresses added in v0.111.5

func (sam *SavedAddressesManager) GetRawSavedAddresses() ([]*SavedAddress, error)

GetRawSavedAddresses provides access to the soft-delete and sync metadata

func (*SavedAddressesManager) GetSavedAddresses added in v0.86.7

func (sam *SavedAddressesManager) GetSavedAddresses() ([]*SavedAddress, error)

func (*SavedAddressesManager) GetSavedAddressesPerMode added in v0.182.41

func (sam *SavedAddressesManager) GetSavedAddressesPerMode(testnetMode bool) ([]*SavedAddress, error)

func (*SavedAddressesManager) RemainingCapacityForSavedAddresses added in v0.182.41

func (sam *SavedAddressesManager) RemainingCapacityForSavedAddresses(testnetMode bool) (int, error)

func (*SavedAddressesManager) UpdateMetadataAndUpsertSavedAddress added in v0.111.5

func (sam *SavedAddressesManager) UpdateMetadataAndUpsertSavedAddress(sa SavedAddress) error

type Service

type Service struct {
	// contains filtered or unexported fields
}

Service is a wallet service.

func NewService

func NewService(
	db *sql.DB,
	accountsDB *accounts.Database,
	appDB *sql.DB,
	rpcClient *rpc.Client,
	accountFeed *event.Feed,
	settingsFeed *event.Feed,
	gethManager *account.GethManager,
	transactor *transactions.Transactor,
	config *params.NodeConfig,
	ens *ens.Service,
	stickers *stickers.Service,
	pendingTxManager *transactions.PendingTxTracker,
	feed *event.Feed,
	mediaServer *server.MediaServer,
	statusProxyStageName string,
) *Service

NewService initializes service instance.

func (*Service) APIs

func (s *Service) APIs() []gethrpc.API

APIs returns list of available RPC APIs.

func (*Service) Config added in v0.179.16

func (s *Service) Config() *params.NodeConfig

func (*Service) FeatureFlags added in v0.180.31

func (s *Service) FeatureFlags() *protocolCommon.FeatureFlags

func (*Service) GetCollectiblesManager added in v0.179.22

func (s *Service) GetCollectiblesManager() *collectibles.Manager

func (*Service) GetCollectiblesService added in v0.179.22

func (s *Service) GetCollectiblesService() *collectibles.Service

func (*Service) GetEnsService added in v0.179.22

func (s *Service) GetEnsService() *ens.Service

func (*Service) GetMarketManager added in v0.179.22

func (s *Service) GetMarketManager() *market.Manager

func (*Service) GetRPCClient added in v0.179.22

func (s *Service) GetRPCClient() *rpc.Client

func (*Service) GetStickersService added in v0.179.22

func (s *Service) GetStickersService() *stickers.Service

func (*Service) GetTokenManager added in v0.179.22

func (s *Service) GetTokenManager() *token.Manager

func (*Service) GetTransactor added in v0.179.22

func (s *Service) GetTransactor() *transactions.Transactor

func (*Service) IsStarted added in v0.48.8

func (s *Service) IsStarted() bool

func (*Service) KeycardPairings added in v0.166.11

func (s *Service) KeycardPairings() *KeycardPairings

func (*Service) Protocols

func (s *Service) Protocols() []p2p.Protocol

Protocols returns list of p2p protocols.

func (*Service) SetWalletCommunityInfoProvider added in v0.171.34

func (s *Service) SetWalletCommunityInfoProvider(provider thirdparty.CommunityInfoProvider)

Set external Collectibles community info provider

func (*Service) Start

func (s *Service) Start() error

Start signals transmitter.

func (*Service) Stop

func (s *Service) Stop() error

Stop reactor and close db.

Directories

Path Synopsis
mock
Package mock_collectibles is a generated GoMock package.
Package mock_collectibles is a generated GoMock package.
Moved here because transactions package depends on accounts package which depends on appdatabase where this functionality is needed
Moved here because transactions package depends on accounts package which depends on appdatabase where this functionality is needed
mock
Package mock_onramp is a generated GoMock package.
Package mock_onramp is a generated GoMock package.
pathprocessor/mock_pathprocessor
Package mock_pathprocessor is a generated GoMock package.
Package mock_pathprocessor is a generated GoMock package.
alchemy
nolint: misspell
nolint: misspell
mock
Package mock_thirdparty is a generated GoMock package.
Package mock_thirdparty is a generated GoMock package.
paraswap/mock
Package mock_paraswap is a generated GoMock package.
Package mock_paraswap is a generated GoMock package.
mock/balance_persistence
Package mock_balance_persistence is a generated GoMock package.
Package mock_balance_persistence is a generated GoMock package.
mock/token
Package mock_token is a generated GoMock package.
Package mock_token is a generated GoMock package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL