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:
- Set Enable to true in WalletConfig
{
"WalletConfig": {
"Enabled": true,
}
}
- 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 hextoBlock
:BIGINT
- end of the range. if nil query will return last transfers.limit
:BIGINT
- limit of returned transfers.fetchMore
:BOOLEAN
- iftrue
, there are less thanlimit
fetched transfers in the database, and zero block is not reached yet, history will be scanned for more transfers. Iffalse
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 IDaddress
:HEX
- ethereum address encoded in hextoBlock
:BIGINT
- end of the range. if nil query will return last transfers.limit
:BIGINT
- limit of returned transfers.fetchMore
:BOOLEAN
- iftrue
, there are less thanlimit
fetched transfers in the database, and zero block is not reached yet, history will be scanned for more transfers. Iffalse
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_setInitialBlocksRange
Sets zero block - latest block
range as scanned for an account. It is used when a new multiaccount is generated to avoid scanning transfers history.
Example
{"jsonrpc":"2.0","id":7,"method":"wallet_setInitialBlocksRange","params":[]}
setInitialBlocksRangeForChainIDs
Sets zero block - latest block
range as scanned for an account. It is used when a new multiaccount is generated to avoid scanning transfers history.
Parameters
chainIDs
:[]INT
- array of ethereum chain ID to be initialized
Example
{"jsonrpc":"2.0","id":7,"method":"wallet_setInitialBlocksRangeForChainIDs","params":[[1, 2]]}
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 idtx-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 checkedaddresses
:[]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 IDaccounts
HEX
- list of ethereum addresses encoded in hextokens
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 hextokens
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
hash
HEX
timestamp
``INT`from
HEX
to
HEX
symbol
VARCHAR
-"ETH"
for ethereum, otherwise ERC20 tokaen name,null
for contract callgasPrice
BIGINT
gasLimit
BIGINT
value
BIGINT
data
TEXT
- transaction'sdata
fieldtype
VARCHAR
additionalData
TEXT
- arbitrary additional datanetwork_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"
}
}
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.
recent-history-fetching
Emitted when history scanning is started.
recent-history-ready
Emitted when history scanning is ended.
fetching-history-error
Emitted when when history can't be fetched because some error. Error's decritption can be found in message
field.
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.
- Call
wallet_setInitialRange
- Call
wallet_checkRecentHistory
- On
recent-history-ready
request transactions viawallet_getTransfersByAddress
- Repeat
wallet_checkRecentHistory
in N minutes (currently 20 minutes instatus-mobile
for upstream RPC node. If a custom node is used interval can be arbitrary)
Logging into application
- Call
wallet_checkRecentHistory
- On
recent-history-ready
request transactions viawallet_getTransfersByAddress
- Repeat
wallet_checkRecentHistory
in N minutes (currently 20 minutes instatus-mobile
for upstream RPC node. If a custom node is used interval can be arbitrary)
Watching transaction
- Call
wallet_watchTransaction
- On success call
wallet_checkRecentHistory
- On
recent-history-ready
request transactions viawallet_getTransfersByAddress
Documentation
¶
Index ¶
- Constants
- type API
- func (api *API) AddCustomToken(ctx context.Context, token token.Token) error
- func (api *API) AddEthereumChain(ctx context.Context, network params.Network) error
- func (api *API) AddSavedAddress(ctx context.Context, sa SavedAddress) error
- func (api *API) AddressExists(ctx context.Context, address types.Address) (bool, error)
- func (api *API) CheckRecentHistory(ctx context.Context, addresses []common.Address) error
- func (api *API) CheckRecentHistoryForChainIDs(ctx context.Context, chainIDs []uint64, addresses []common.Address) error
- func (api *API) CreateMultiTransaction(ctx context.Context, multiTransactionCommand *transfer.MultiTransactionCommand, ...) (*transfer.MultiTransactionCommandResult, error)
- func (api *API) DeleteCustomToken(ctx context.Context, address common.Address) error
- func (api *API) DeleteCustomTokenByChainID(ctx context.Context, chainID uint64, address common.Address) error
- func (api *API) DeleteEthereumChain(ctx context.Context, chainID uint64) error
- func (api *API) DeleteSavedAddress(ctx context.Context, address common.Address, ens string, isTest bool) error
- func (api *API) DiscoverToken(ctx context.Context, chainID uint64, address common.Address) (*token.Token, error)
- func (api *API) FetchAllCurrencyFormats() (currency.FormatPerSymbol, error)
- func (api *API) FetchBalancesByOwnerAndContractAddress(chainID wcommon.ChainID, ownerAddress common.Address, ...) (thirdparty.TokenBalancesPerContractAddress, error)
- func (api *API) FetchChainIDForURL(ctx context.Context, rpcURL string) (*big.Int, error)
- func (api *API) FetchDecodedTxData(ctx context.Context, data string) (*thirdparty.DataParsed, error)
- func (api *API) FetchMarketValues(ctx context.Context, symbols []string, currency string) (map[string]thirdparty.TokenMarketValues, error)
- func (api *API) FetchPrices(ctx context.Context, symbols []string, currencies []string) (map[string]map[string]float64, error)
- func (api *API) FetchTokenDetails(ctx context.Context, symbols []string) (map[string]thirdparty.TokenDetails, error)
- func (api *API) FilterActivityAsync(requestID int32, addresses []common.Address, chainIDs []wcommon.ChainID, ...) error
- func (api *API) FilterOwnedCollectiblesAsync(ctx context.Context, chainIDs []wcommon.ChainID, addresses []common.Address, ...) error
- func (api *API) GetAddressDetails(ctx context.Context, chainID uint64, address string) (*DerivedAddress, error)
- func (api *API) GetBalanceHistory(ctx context.Context, chainIDs []uint64, address common.Address, ...) ([]*history.ValuePoint, error)
- func (api *API) GetCachedCurrencyFormats() (currency.FormatPerSymbol, error)
- func (api *API) GetCachedWalletTokensWithoutMarketData(ctx context.Context) (map[common.Address][]Token, error)
- func (api *API) GetCollectibleOwnersByContractAddress(chainID wcommon.ChainID, contractAddress common.Address) (*thirdparty.CollectibleContractOwnership, error)
- func (api *API) GetCollectiblesByOwnerAndCollectionWithCursor(ctx context.Context, chainID wcommon.ChainID, owner common.Address, ...) (*thirdparty.CollectibleDataContainer, error)
- func (api *API) GetCollectiblesByOwnerAndContractAddressWithCursor(ctx context.Context, chainID wcommon.ChainID, owner common.Address, ...) (*thirdparty.CollectibleDataContainer, error)
- func (api *API) GetCollectiblesByOwnerWithCursor(ctx context.Context, chainID wcommon.ChainID, owner common.Address, ...) (*thirdparty.CollectibleDataContainer, error)
- func (api *API) GetCollectiblesByUniqueID(ctx context.Context, uniqueIDs []thirdparty.CollectibleUniqueID) ([]thirdparty.CollectibleData, error)
- func (api *API) GetCollectiblesDataAsync(ctx context.Context, uniqueIDs []thirdparty.CollectibleUniqueID) error
- func (api *API) GetCryptoOnRamps(ctx context.Context) ([]CryptoOnRamp, error)
- func (api *API) GetCustomTokens(ctx context.Context) ([]*token.Token, error)
- func (api *API) GetDailyMarketValues(ctx context.Context, symbol string, currency string, limit int, allData bool, ...) ([]thirdparty.HistoricalPrice, error)
- func (api *API) GetDerivedAddresses(ctx context.Context, password string, derivedFrom string, paths []string) ([]*DerivedAddress, error)
- func (api *API) GetDerivedAddressesForMnemonic(ctx context.Context, mnemonic string, paths []string) ([]*DerivedAddress, error)
- func (api *API) GetEthereumChains(ctx context.Context) ([]*network.CombinedNetwork, error)
- func (api *API) GetHourlyMarketValues(ctx context.Context, symbol string, currency string, limit int, aggregate int) ([]thirdparty.HistoricalPrice, error)
- func (api *API) GetMultiTransactions(ctx context.Context, transactionIDs []transfer.MultiTransactionIDType) ([]*transfer.MultiTransaction, error)
- func (api *API) GetOldestActivityTimestampAsync(requestID int32, addresses []common.Address) error
- func (api *API) GetOpenseaAssetsByOwnerAndCollection(ctx context.Context, chainID wcommon.ChainID, owner common.Address, ...) ([]opensea.Asset, error)
- func (api *API) GetOpenseaAssetsByOwnerAndCollectionWithCursor(ctx context.Context, chainID wcommon.ChainID, owner common.Address, ...) (*opensea.AssetContainer, error)
- func (api *API) GetOpenseaCollectionsByOwner(ctx context.Context, chainID wcommon.ChainID, owner common.Address) ([]opensea.OwnedCollection, error)
- func (api *API) GetPendingOutboundTransactionsByAddress(ctx context.Context, address common.Address) ([]*transactions.PendingTransaction, error)
- func (api *API) GetPendingOutboundTransactionsByAddressAndChainID(ctx context.Context, chainIDs []uint64, address common.Address) ([]*transactions.PendingTransaction, error)
- func (api *API) GetPendingTransactions(ctx context.Context) ([]*transactions.PendingTransaction, error)
- func (api *API) GetPendingTransactionsByChainIDs(ctx context.Context, chainIDs []uint64) ([]*transactions.PendingTransaction, error)
- func (api *API) GetPendingTransactionsForIdentities(ctx context.Context, identities []transfer.TransactionIdentity) (result []*transactions.PendingTransaction, err error)
- func (api *API) GetRecipientsAsync(requestID int32, offset int, limit int) (ignored bool, err error)
- func (api *API) GetSavedAddresses(ctx context.Context) ([]SavedAddress, error)
- func (api *API) GetSuggestedFees(ctx context.Context, chainID uint64) (*SuggestedFees, error)
- func (api *API) GetSuggestedRoutes(ctx context.Context, sendType SendType, account common.Address, ...) (*SuggestedRoutes, error)
- func (api *API) GetTokens(ctx context.Context, chainID uint64) ([]*token.Token, error)
- func (api *API) GetTokensBalances(ctx context.Context, accounts, addresses []common.Address) (map[common.Address]map[common.Address]*hexutil.Big, error)
- func (api *API) GetTokensBalancesForChainIDs(ctx context.Context, chainIDs []uint64, accounts, addresses []common.Address) (map[common.Address]map[common.Address]*hexutil.Big, error)
- func (api *API) GetTransactionEstimatedTime(ctx context.Context, chainID uint64, maxFeePerGas *big.Float) (TransactionEstimation, error)
- func (api *API) GetTransfersByAddress(ctx context.Context, address common.Address, toBlock, limit *hexutil.Big, ...) ([]transfer.View, error)
- func (api *API) GetTransfersByAddressAndChainID(ctx context.Context, chainID uint64, address common.Address, ...) ([]transfer.View, error)
- func (api *API) GetTransfersForIdentities(ctx context.Context, identities []transfer.TransactionIdentity) ([]transfer.View, error)
- func (api *API) GetVisibleTokens(chainIDs []uint64) (map[uint64][]*token.Token, error)
- func (api *API) GetWalletToken(ctx context.Context, addresses []common.Address) (map[common.Address][]Token, error)
- func (api *API) LoadTransferByHash(ctx context.Context, address common.Address, hash common.Hash) error
- func (api *API) SetInitialBlocksRange(ctx context.Context) error
- func (api *API) SetInitialBlocksRangeForChainIDs(ctx context.Context, chainIDs []uint64) error
- func (api *API) StartWallet(ctx context.Context) error
- func (api *API) StopWallet(ctx context.Context) error
- func (api *API) ToggleVisibleToken(ctx context.Context, chainID uint64, address common.Address) (bool, error)
- func (api *API) UpdateVisibleTokens(ctx context.Context, symbols []string) error
- func (api *API) WatchTransaction(ctx context.Context, transactionHash common.Hash) error
- func (api *API) WatchTransactionByChainID(ctx context.Context, chainID uint64, transactionHash common.Hash) error
- type ChainBalance
- type CryptoOnRamp
- type CryptoOnRampManager
- type CryptoOnRampOptions
- type DataSourceType
- type Decoder
- type DerivedAddress
- type FeeHistory
- type FeeManager
- type GasFeeMode
- type Graph
- type Node
- type Path
- type Persistence
- type Reader
- type Router
- type SavedAddress
- type SavedAddressesManager
- func (sam *SavedAddressesManager) AddSavedAddressIfNewerUpdate(sa SavedAddress, updateClock uint64) (insertedOrUpdated bool, err error)
- func (sam *SavedAddressesManager) DeleteSavedAddress(address common.Address, ens string, isTest bool, updateClock uint64) (deleted bool, err error)
- func (sam *SavedAddressesManager) DeleteSoftRemovedSavedAddresses(threshold uint64) error
- func (sam *SavedAddressesManager) GetRawSavedAddresses() ([]SavedAddress, error)
- func (sam *SavedAddressesManager) GetSavedAddresses() ([]SavedAddress, error)
- func (sam *SavedAddressesManager) UpdateMetadataAndUpsertSavedAddress(sa SavedAddress) (updatedClock uint64, err error)
- type SendType
- type Service
- func (s *Service) APIs() []gethrpc.API
- func (s *Service) GetFeed() *event.Feed
- func (s *Service) IsStarted() bool
- func (s *Service) Protocols() []p2p.Protocol
- func (s *Service) SetCollectibleMetadataProvider(provider thirdparty.CollectibleMetadataProvider)
- func (s *Service) Start() error
- func (s *Service) Stop() error
- type SuggestedFees
- type SuggestedRoutes
- type Token
- type TokenMarketValues
- type TransactionEstimation
Constants ¶
const EstimatePubKey = "" /* 132-byte string literal not displayed */
const EstimateUsername = "RandomUsername"
const (
EventBlockchainStatusChanged walletevent.EventType = "wallet-blockchain-status-changed"
)
const EventWalletTickCheckConnected walletevent.EventType = "wallet-tick-check-connected"
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 (*API) AddCustomToken ¶ added in v0.38.1
func (*API) AddEthereumChain ¶ added in v0.86.7
func (*API) AddSavedAddress ¶ added in v0.86.7
func (api *API) AddSavedAddress(ctx context.Context, sa SavedAddress) error
func (*API) AddressExists ¶ added in v0.152.3
func (*API) CheckRecentHistory ¶ added in v0.75.0
func (*API) CheckRecentHistoryForChainIDs ¶ added in v0.86.7
func (*API) CreateMultiTransaction ¶ added in v0.103.2
func (api *API) CreateMultiTransaction(ctx context.Context, multiTransactionCommand *transfer.MultiTransactionCommand, data []*bridge.TransactionBridge, password string) (*transfer.MultiTransactionCommandResult, error)
func (*API) DeleteCustomToken ¶ added in v0.38.1
func (*API) DeleteCustomTokenByChainID ¶ added in v0.86.7
func (*API) DeleteEthereumChain ¶ added in v0.86.7
func (*API) DeleteSavedAddress ¶ added in v0.86.7
func (*API) DiscoverToken ¶ added in v0.98.1
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(chainID wcommon.ChainID, ownerAddress common.Address, contractAddresses []common.Address) (thirdparty.TokenBalancesPerContractAddress, error)
func (*API) FetchChainIDForURL ¶ added in v0.162.5
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)
func (*API) FetchPrices ¶ added in v0.96.4
func (*API) FetchTokenDetails ¶ added in v0.106.1
func (api *API) FetchTokenDetails(ctx context.Context, symbols []string) (map[string]thirdparty.TokenDetails, error)
func (*API) FilterActivityAsync ¶ added in v0.158.0
func (*API) FilterOwnedCollectiblesAsync ¶ added in v0.162.13
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, address 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) GetCachedCurrencyFormats ¶ added in v0.131.11
func (api *API) GetCachedCurrencyFormats() (currency.FormatPerSymbol, error)
func (*API) GetCachedWalletTokensWithoutMarketData ¶ added in v0.151.13
func (*API) GetCollectibleOwnersByContractAddress ¶ added in v0.146.3
func (api *API) GetCollectibleOwnersByContractAddress(chainID wcommon.ChainID, contractAddress common.Address) (*thirdparty.CollectibleContractOwnership, error)
func (*API) GetCollectiblesByOwnerAndCollectionWithCursor ¶ added in v0.162.13
func (*API) GetCollectiblesByOwnerAndContractAddressWithCursor ¶ added in v0.162.13
func (*API) GetCollectiblesByOwnerWithCursor ¶ added in v0.162.13
func (*API) GetCollectiblesByUniqueID ¶ added in v0.162.13
func (api *API) GetCollectiblesByUniqueID(ctx context.Context, uniqueIDs []thirdparty.CollectibleUniqueID) ([]thirdparty.CollectibleData, error)
func (*API) GetCollectiblesDataAsync ¶ added in v0.162.13
func (api *API) GetCollectiblesDataAsync(ctx context.Context, uniqueIDs []thirdparty.CollectibleUniqueID) error
func (*API) GetCryptoOnRamps ¶ added in v0.71.4
func (api *API) GetCryptoOnRamps(ctx context.Context) ([]CryptoOnRamp, error)
func (*API) GetCustomTokens ¶ added in v0.38.1
func (*API) GetDailyMarketValues ¶ added in v0.111.5
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) GetEthereumChains ¶ added in v0.86.7
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) GetMultiTransactions ¶ added in v0.138.1
func (api *API) GetMultiTransactions(ctx context.Context, transactionIDs []transfer.MultiTransactionIDType) ([]*transfer.MultiTransaction, error)
func (*API) GetOldestActivityTimestampAsync ¶ added in v0.161.2
func (*API) GetOpenseaAssetsByOwnerAndCollection ¶ added in v0.83.17
func (*API) GetOpenseaAssetsByOwnerAndCollectionWithCursor ¶ added in v0.138.1
func (*API) GetOpenseaCollectionsByOwner ¶ added in v0.83.17
func (api *API) GetOpenseaCollectionsByOwner(ctx context.Context, chainID wcommon.ChainID, owner common.Address) ([]opensea.OwnedCollection, error)
Old Collectibles API - To be deprecated
func (*API) GetPendingOutboundTransactionsByAddress ¶ added in v0.62.0
func (api *API) GetPendingOutboundTransactionsByAddress(ctx context.Context, address common.Address) ( []*transactions.PendingTransaction, error)
func (*API) GetPendingOutboundTransactionsByAddressAndChainID ¶ added in v0.86.7
func (api *API) GetPendingOutboundTransactionsByAddressAndChainID(ctx context.Context, chainIDs []uint64, address common.Address) ([]*transactions.PendingTransaction, error)
func (*API) GetPendingTransactions ¶ added in v0.62.0
func (api *API) GetPendingTransactions(ctx context.Context) ([]*transactions.PendingTransaction, error)
func (*API) GetPendingTransactionsByChainIDs ¶ added in v0.102.6
func (api *API) GetPendingTransactionsByChainIDs(ctx context.Context, chainIDs []uint64) ([]*transactions.PendingTransaction, error)
func (*API) GetPendingTransactionsForIdentities ¶ added in v0.151.4
func (api *API) GetPendingTransactionsForIdentities(ctx context.Context, identities []transfer.TransactionIdentity) ( result []*transactions.PendingTransaction, err error)
func (*API) GetRecipientsAsync ¶ added in v0.161.2
func (*API) GetSavedAddresses ¶ added in v0.86.7
func (api *API) GetSavedAddresses(ctx context.Context) ([]SavedAddress, error)
func (*API) GetSuggestedFees ¶ added in v0.97.4
func (*API) GetSuggestedRoutes ¶ added in v0.101.1
func (api *API) GetSuggestedRoutes( ctx context.Context, sendType SendType, account common.Address, amountIn *hexutil.Big, tokenSymbol string, disabledFromChainIDs, disabledToChaindIDs, preferedChainIDs []uint64, gasFeeMode GasFeeMode, fromLockedAmount map[uint64]*hexutil.Big, ) (*SuggestedRoutes, error)
func (*API) GetTokensBalances ¶
func (api *API) GetTokensBalances(ctx context.Context, accounts, addresses []common.Address) (map[common.Address]map[common.Address]*hexutil.Big, error)
GetTokensBalances return mapping of token balances for every account.
func (*API) GetTokensBalancesForChainIDs ¶ added in v0.86.7
func (*API) GetTransactionEstimatedTime ¶ added in v0.103.2
func (*API) GetTransfersByAddress ¶
func (api *API) GetTransfersByAddress(ctx context.Context, address common.Address, toBlock, limit *hexutil.Big, fetchMore bool) ([]transfer.View, error)
GetTransfersByAddress returns transfers for a single address
func (*API) GetTransfersByAddressAndChainID ¶ added in v0.86.7
func (*API) GetTransfersForIdentities ¶ added in v0.151.4
func (*API) GetVisibleTokens ¶ added in v0.98.3
func (*API) GetWalletToken ¶ added in v0.115.5
func (*API) LoadTransferByHash ¶ added in v0.91.10
func (api *API) LoadTransferByHash(ctx context.Context, address common.Address, hash common.Hash) error
LoadTransferByHash loads transfer to the database Only used by status-mobile
func (*API) SetInitialBlocksRange ¶ added in v0.73.1
SetInitialBlocksRange sets initial blocks range
func (*API) SetInitialBlocksRangeForChainIDs ¶ added in v0.86.7
func (*API) ToggleVisibleToken ¶ added in v0.98.3
func (*API) UpdateVisibleTokens ¶ added in v0.125.2
func (*API) WatchTransaction ¶ added in v0.74.1
type ChainBalance ¶ added in v0.115.5
type CryptoOnRamp ¶ added in v0.71.4
type CryptoOnRamp struct { Name string `json:"name"` Description string `json:"description"` Fees string `json:"fees"` LogoURL string `json:"logoUrl"` SiteURL string `json:"siteUrl"` Hostname string `json:"hostname"` Params map[string]string `json:"params"` // TODO implement params in JSON and parsing status-mobile }
type CryptoOnRampManager ¶ added in v0.71.4
func NewCryptoOnRampManager ¶ added in v0.71.4
func NewCryptoOnRampManager(options *CryptoOnRampOptions) *CryptoOnRampManager
func (*CryptoOnRampManager) Get ¶ added in v0.71.4
func (c *CryptoOnRampManager) Get() ([]CryptoOnRamp, error)
type CryptoOnRampOptions ¶ added in v0.71.4
type CryptoOnRampOptions struct {
// contains filtered or unexported fields
}
type DataSourceType ¶ added in v0.71.4
type DataSourceType int
const ( DataSourceHTTP DataSourceType = iota + 1 DataSourceStatic )
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 FeeHistory ¶ added in v0.97.4
type FeeHistory struct {
BaseFeePerGas []string `json:"baseFeePerGas"`
}
type FeeManager ¶ added in v0.97.4
type GasFeeMode ¶ added in v0.113.0
type GasFeeMode int
const ( GasFeeLow GasFeeMode = iota GasFeeMedium GasFeeHigh )
type Path ¶ added in v0.113.0
type Path struct { BridgeName string From *params.Network To *params.Network MaxAmountIn *hexutil.Big AmountIn *hexutil.Big AmountInLocked bool AmountOut *hexutil.Big GasAmount uint64 GasFees *SuggestedFees BonderFees *hexutil.Big TokenFees *big.Float Cost *big.Float EstimatedTime TransactionEstimation ApprovalRequired bool ApprovalGasFees *big.Float ApprovalAmountRequired *hexutil.Big ApprovalContractAddress *common.Address }
type Persistence ¶ added in v0.151.13
type Persistence struct {
// contains filtered or unexported fields
}
func NewPersistence ¶ added in v0.151.13
func NewPersistence(db *sql.DB) *Persistence
func (*Persistence) GetTokens ¶ added in v0.151.13
func (p *Persistence) GetTokens() (map[common.Address][]Token, error)
func (*Persistence) SaveTokens ¶ added in v0.151.13
func (p *Persistence) SaveTokens(tokens map[common.Address][]Token) (err error)
type Reader ¶ added in v0.100.0
type Reader struct {
// contains filtered or unexported fields
}
func (*Reader) GetCachedWalletTokensWithoutMarketData ¶ added in v0.151.13
GetCachedWalletTokensWithoutMarketData returns the latest fetched balances, minus price information
func (*Reader) GetWalletToken ¶ added in v0.115.5
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"` Favourite bool `json:"favourite"` ChainShortNames string `json:"chainShortNames"` // used with address only, not with ENSName ENSName string `json:"ens"` IsTest bool `json:"isTest"` CreatedAt int64 `json:"createdAt"` // contains filtered or unexported fields }
func (*SavedAddress) ID ¶ added in v0.131.2
func (s *SavedAddress) ID() string
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, updateClock uint64) (insertedOrUpdated bool, err error)
func (*SavedAddressesManager) DeleteSavedAddress ¶ added in v0.86.7
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) UpdateMetadataAndUpsertSavedAddress ¶ added in v0.111.5
func (sam *SavedAddressesManager) UpdateMetadataAndUpsertSavedAddress(sa SavedAddress) (updatedClock uint64, err 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, rpcClient *rpc.Client, accountFeed *event.Feed, gethManager *account.GethManager, transactor *transactions.Transactor, config *params.NodeConfig, ens *ens.Service, stickers *stickers.Service, rpcFilterSrvc *rpcfilters.Service, ) *Service
NewService initializes service instance.
func (*Service) SetCollectibleMetadataProvider ¶ added in v0.162.13
func (s *Service) SetCollectibleMetadataProvider(provider thirdparty.CollectibleMetadataProvider)
Set external Collectibles metadata provider
type SuggestedFees ¶ added in v0.97.4
type SuggestedFees struct { GasPrice *big.Float `json:"gasPrice"` BaseFee *big.Float `json:"baseFee"` MaxPriorityFeePerGas *big.Float `json:"maxPriorityFeePerGas"` MaxFeePerGasLow *big.Float `json:"maxFeePerGasLow"` MaxFeePerGasMedium *big.Float `json:"maxFeePerGasMedium"` MaxFeePerGasHigh *big.Float `json:"maxFeePerGasHigh"` EIP1559Enabled bool `json:"eip1559Enabled"` }
type SuggestedRoutes ¶ added in v0.101.1
type Token ¶ added in v0.38.1
type Token struct { Name string `json:"name"` Symbol string `json:"symbol"` Color string `json:"color"` Decimals uint `json:"decimals"` BalancesPerChain map[uint64]ChainBalance `json:"balancesPerChain"` Description string `json:"description"` AssetWebsiteURL string `json:"assetWebsiteUrl"` BuiltOn string `json:"builtOn"` MarketValuesPerCurrency map[string]TokenMarketValues `json:"marketValuesPerCurrency"` PegSymbol string `json:"pegSymbol"` }
type TokenMarketValues ¶ added in v0.125.0
type TokenMarketValues struct { MarketCap float64 `json:"marketCap"` HighDay float64 `json:"highDay"` LowDay float64 `json:"lowDay"` ChangePctHour float64 `json:"changePctHour"` ChangePctDay float64 `json:"changePctDay"` ChangePct24hour float64 `json:"changePct24hour"` Change24hour float64 `json:"change24hour"` Price float64 `json:"price"` HasError bool `json:"hasError"` }
type TransactionEstimation ¶ added in v0.103.2
type TransactionEstimation int
const ( Unknown TransactionEstimation = iota LessThanOneMinute LessThanThreeMinutes LessThanFiveMinutes MoreThanFiveMinutes )
Source Files
¶
Directories
¶
Path | Synopsis |
---|---|
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 |