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
- Variables
- 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) 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, multiTransaction *MultiTransaction, ...) (*MultiTransactionResult, 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) DeletePendingTransaction(ctx context.Context, transactionHash common.Hash) error
- func (api *API) DeletePendingTransactionByChainID(ctx context.Context, chainID uint64, transactionHash common.Hash) error
- func (api *API) DeleteSavedAddress(ctx context.Context, address common.Address) error
- func (api *API) DiscoverToken(ctx context.Context, chainID uint64, address common.Address) (*token.Token, error)
- func (api *API) FetchMarketValues(ctx context.Context, symbols []string, currency string) (map[string]MarketCoinValues, error)
- func (api *API) FetchPrices(ctx context.Context, symbols []string, currency string) (map[string]float64, error)
- func (api *API) FetchTokenDetails(ctx context.Context, symbols []string) (map[string]Coin, error)
- func (api *API) GetBalanceHistory(ctx context.Context, chainID uint64, address common.Address, ...) ([]transfer.BalanceState, error)
- func (api *API) GetCachedBalances(ctx context.Context, addresses []common.Address) ([]transfer.LastKnownBlockView, error)
- func (api *API) GetCachedBalancesbyChainID(ctx context.Context, chainID uint64, addresses []common.Address) ([]transfer.LastKnownBlockView, 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, ...) ([]TokenHistoricalPairs, error)
- func (api *API) GetDerivedAddressDetails(ctx context.Context, address string) (*DerivedAddress, error)
- func (api *API) GetDerivedAddressForPrivateKey(ctx context.Context, privateKey string) ([]*DerivedAddress, error)
- func (api *API) GetDerivedAddressesForMnemonicWithPath(ctx context.Context, mnemonic string, path string, pageSize int, ...) ([]*DerivedAddress, error)
- func (api *API) GetDerivedAddressesForPath(ctx context.Context, password string, derivedFrom string, path string, ...) ([]*DerivedAddress, error)
- func (api *API) GetEthereumChains(ctx context.Context, onlyEnabled bool) ([]*params.Network, error)
- func (api *API) GetHourlyMarketValues(ctx context.Context, symbol string, currency string, limit int, aggregate int) ([]TokenHistoricalPairs, error)
- func (api *API) GetOpenseaAssetsByOwnerAndCollection(ctx context.Context, chainID uint64, owner common.Address, ...) ([]OpenseaAsset, error)
- func (api *API) GetOpenseaCollectionsByOwner(ctx context.Context, chainID uint64, owner common.Address) ([]OpenseaCollection, error)
- func (api *API) GetPendingOutboundTransactionsByAddress(ctx context.Context, address common.Address) ([]*PendingTransaction, error)
- func (api *API) GetPendingOutboundTransactionsByAddressAndChainID(ctx context.Context, chainIDs []uint64, address common.Address) ([]*PendingTransaction, error)
- func (api *API) GetPendingTransactions(ctx context.Context) ([]*PendingTransaction, error)
- func (api *API) GetPendingTransactionsByChainIDs(ctx context.Context, chainIDs []uint64) ([]*PendingTransaction, 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) 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) StorePendingTransaction(ctx context.Context, trx PendingTransaction) error
- func (api *API) ToggleVisibleToken(ctx context.Context, chainID uint64, address common.Address) (bool, 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 Coin
- type CoinsContainer
- type CryptoOnRamp
- type CryptoOnRampManager
- type CryptoOnRampOptions
- type DataSourceType
- type DerivedAddress
- type FeeHistory
- type FeeManager
- type GasFeeMode
- type Graph
- type HistoricalValuesContainer
- type HistoricalValuesData
- type MarketCoinValues
- type MarketValuesContainer
- type MultiTransaction
- type MultiTransactionResult
- type MultiTransactionType
- type Node
- type OpenseaAsset
- type OpenseaAssetCollection
- type OpenseaAssetContainer
- type OpenseaClient
- type OpenseaCollection
- type OpenseaCollectionTrait
- type OpenseaContract
- type OpenseaLastSale
- type OpenseaPaymentToken
- type OpenseaSellOrder
- type OpenseaTrait
- type Path
- type PendingTransaction
- type PendingTrxType
- type Reader
- type Router
- type SavedAddress
- type SavedAddressesManager
- func (sam *SavedAddressesManager) AddSavedAddressIfNewerUpdate(sa SavedAddress, updateClock uint64) (insertedOrUpdated bool, err error)
- func (sam *SavedAddressesManager) DeleteSavedAddress(chainID uint64, address common.Address) (updatedClock uint64, err error)
- func (sam *SavedAddressesManager) DeleteSavedAddressIfNewerUpdate(chainID uint64, address common.Address, 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) GetSavedAddressesForChainID(chainID uint64) ([]SavedAddress, error)
- func (sam *SavedAddressesManager) UpdateMetadataAndUpsertSavedAddress(sa SavedAddress) (updatedClock uint64, err error)
- type SendType
- type Service
- type SuggestedFees
- type SuggestedRoutes
- type Token
- type TokenHistoricalPairs
- type TraitValue
- type TransactionEstimation
- type TransactionManager
Constants ¶
const ( MultiTransactionSend = iota MultiTransactionSwap MultiTransactionBridge )
const AssetLimit = 50
const CollectionLimit = 300
const EstimatePubKey = "" /* 132-byte string literal not displayed */
const EstimateUsername = "RandomUsername"
const EventWalletTickReload walletevent.EventType = "wallet-tick-reload"
WalletTickReload emitted every 15mn to reload the wallet balance and history
Variables ¶
var BaseURLs = map[uint64]string{
1: "https://api.opensea.io/api/v1",
4: "https://rinkeby-api.opensea.io/api/v1",
5: "https://testnets-api.opensea.io/api/v1",
}
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) 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, multiTransaction *MultiTransaction, data []*bridge.TransactionBridge, password string) (*MultiTransactionResult, 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) DeletePendingTransaction ¶ added in v0.62.0
func (*API) DeletePendingTransactionByChainID ¶ added in v0.86.7
func (*API) DeleteSavedAddress ¶ added in v0.86.7
func (*API) DiscoverToken ¶ added in v0.98.1
func (*API) FetchMarketValues ¶ added in v0.106.1
func (*API) FetchPrices ¶ added in v0.96.4
func (*API) FetchTokenDetails ¶ added in v0.106.1
func (*API) GetBalanceHistory ¶ added in v0.114.3
func (api *API) GetBalanceHistory(ctx context.Context, chainID uint64, address common.Address, timeInterval transfer.BalanceHistoryTimeInterval) ([]transfer.BalanceState, error)
GetBalanceHistory retrieves native token. Will be extended later to support token balance history
func (*API) GetCachedBalances ¶ added in v0.79.4
func (*API) GetCachedBalancesbyChainID ¶ added in v0.86.7
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) GetDerivedAddressDetails ¶ added in v0.114.1
func (*API) GetDerivedAddressForPrivateKey ¶ added in v0.100.0
func (*API) GetDerivedAddressesForMnemonicWithPath ¶ added in v0.102.6
func (*API) GetDerivedAddressesForPath ¶ added in v0.100.0
func (*API) GetEthereumChains ¶ added in v0.86.7
func (*API) GetHourlyMarketValues ¶ added in v0.111.5
func (*API) GetOpenseaAssetsByOwnerAndCollection ¶ added in v0.83.17
func (*API) GetOpenseaCollectionsByOwner ¶ added in v0.83.17
func (*API) GetPendingOutboundTransactionsByAddress ¶ added in v0.62.0
func (*API) GetPendingOutboundTransactionsByAddressAndChainID ¶ added in v0.86.7
func (*API) GetPendingTransactions ¶ added in v0.62.0
func (api *API) GetPendingTransactions(ctx context.Context) ([]*PendingTransaction, error)
func (*API) GetPendingTransactionsByChainIDs ¶ added in v0.102.6
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) 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
func (*API) SetInitialBlocksRange ¶ added in v0.73.1
SetInitialBlocksRange sets initial blocks range
func (*API) SetInitialBlocksRangeForChainIDs ¶ added in v0.86.7
func (*API) StorePendingTransaction ¶ added in v0.62.0
func (api *API) StorePendingTransaction(ctx context.Context, trx PendingTransaction) error
func (*API) ToggleVisibleToken ¶ added in v0.98.3
func (*API) WatchTransaction ¶ added in v0.74.1
type ChainBalance ¶ added in v0.115.5
type Coin ¶ added in v0.106.1
type Coin struct { ID string `json:"Id"` Name string `json:"Name"` Symbol string `json:"Symbol"` Description string `json:"Description"` TotalCoinsMined float64 `json:"TotalCoinsMined"` AssetLaunchDate string `json:"AssetLaunchDate"` AssetWhitepaperURL string `json:"AssetWhitepaperUrl"` AssetWebsiteURL string `json:"AssetWebsiteUrl"` BuiltOn string `json:"BuiltOn"` SmartContractAddress string `json:"SmartContractAddress"` }
type CoinsContainer ¶ added in v0.106.1
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 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 HistoricalValuesContainer ¶ added in v0.111.5
type HistoricalValuesContainer struct { Aggregated bool `json:"Aggregated"` TimeFrom int64 `json:"TimeFrom"` TimeTo int64 `json:"TimeTo"` HistoricalData []TokenHistoricalPairs `json:"Data"` }
type HistoricalValuesData ¶ added in v0.111.5
type HistoricalValuesData struct {
Data HistoricalValuesContainer `json:"Data"`
}
type MarketCoinValues ¶ added in v0.106.1
type MarketCoinValues struct { MKTCAP string `json:"MKTCAP"` HIGHDAY string `json:"HIGHDAY"` LOWDAY string `json:"LOWDAY"` CHANGEPCTHOUR string `json:"CHANGEPCTHOUR"` CHANGEPCTDAY string `json:"CHANGEPCTDAY"` CHANGEPCT24HOUR string `json:"CHANGEPCT24HOUR"` CHANGE24HOUR string `json:"CHANGE24HOUR"` }
type MarketValuesContainer ¶ added in v0.106.1
type MarketValuesContainer struct {
Display map[string]map[string]MarketCoinValues `json:"Display"`
}
type MultiTransaction ¶ added in v0.103.2
type MultiTransaction struct { ID uint `json:"id"` Timestamp uint64 `json:"timestamp"` FromAddress common.Address `json:"fromAddress"` ToAddress common.Address `json:"toAddress"` FromAsset string `json:"fromAsset"` ToAsset string `json:"toAsset"` FromAmount *hexutil.Big `json:"fromAmount"` Type MultiTransactionType `json:"type"` }
type MultiTransactionResult ¶ added in v0.103.2
type MultiTransactionType ¶ added in v0.103.2
type MultiTransactionType uint8
type OpenseaAsset ¶ added in v0.83.17
type OpenseaAsset struct { ID int `json:"id"` Name string `json:"name"` Description string `json:"description"` Permalink string `json:"permalink"` ImageThumbnailURL string `json:"image_thumbnail_url"` ImageURL string `json:"image_url"` Contract OpenseaContract `json:"asset_contract"` Collection OpenseaAssetCollection `json:"collection"` Traits []OpenseaTrait `json:"traits"` LastSale OpenseaLastSale `json:"last_sale"` SellOrders []OpenseaSellOrder `json:"sell_orders"` BackgroundColor string `json:"background_color"` }
type OpenseaAssetCollection ¶ added in v0.83.17
type OpenseaAssetCollection struct {
Name string `json:"name"`
}
type OpenseaAssetContainer ¶ added in v0.83.17
type OpenseaAssetContainer struct {
Assets []OpenseaAsset `json:"assets"`
}
type OpenseaClient ¶ added in v0.83.17
type OpenseaClient struct {
// contains filtered or unexported fields
}
type OpenseaCollection ¶ added in v0.83.17
type OpenseaCollectionTrait ¶ added in v0.87.0
type OpenseaContract ¶ added in v0.83.17
type OpenseaContract struct {
Address string `json:"address"`
}
type OpenseaLastSale ¶ added in v0.87.0
type OpenseaLastSale struct {
PaymentToken OpenseaPaymentToken `json:"payment_token"`
}
type OpenseaPaymentToken ¶ added in v0.87.0
type OpenseaSellOrder ¶ added in v0.87.0
type OpenseaSellOrder struct {
CurrentPrice string `json:"current_price"`
}
type OpenseaTrait ¶ added in v0.85.1
type OpenseaTrait struct { TraitType string `json:"trait_type"` Value TraitValue `json:"value"` DisplayType string `json:"display_type"` MaxValue string `json:"max_value"` }
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 }
type PendingTransaction ¶ added in v0.62.0
type PendingTransaction struct { Hash common.Hash `json:"hash"` Timestamp uint64 `json:"timestamp"` Value bigint.BigInt `json:"value"` From common.Address `json:"from"` To common.Address `json:"to"` Data string `json:"data"` Symbol string `json:"symbol"` GasPrice bigint.BigInt `json:"gasPrice"` GasLimit bigint.BigInt `json:"gasLimit"` Type PendingTrxType `json:"type"` AdditionalData string `json:"additionalData"` ChainID uint64 `json:"network_id"` MultiTransactionID int64 `json:"multi_transaction_id"` }
type PendingTrxType ¶ added in v0.62.0
type PendingTrxType string
const ( RegisterENS PendingTrxType = "RegisterENS" ReleaseENS PendingTrxType = "ReleaseENS" SetPubKey PendingTrxType = "SetPubKey" BuyStickerPack PendingTrxType = "BuyStickerPack" WalletTransfer PendingTrxType = "WalletTransfer" )
type Reader ¶ added in v0.100.0
type Reader struct {
// contains filtered or unexported fields
}
func (*Reader) GetWalletToken ¶ added in v0.115.5
type SavedAddress ¶ added in v0.86.7
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) DeleteSavedAddressIfNewerUpdate ¶ added in v0.111.5
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) GetSavedAddressesForChainID ¶ added in v0.111.5
func (sam *SavedAddressesManager) GetSavedAddressesForChainID(chainID uint64) ([]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, openseaAPIKey string, gethManager *account.GethManager, transactor *transactions.Transactor, config *params.NodeConfig, ens *ens.Service, stickers *stickers.Service, ) *Service
NewService initializes service instance.
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"` MarketCap string `json:"marketCap"` HighDay string `json:"highDay"` LowDay string `json:"lowDay"` ChangePctHour string `json:"changePctHour"` ChangePctDay string `json:"changePctDay"` ChangePct24hour string `json:"changePct24hour"` Change24hour string `json:"change24hour"` CurrencyPrice float64 `json:"currencyPrice"` }
type TokenHistoricalPairs ¶ added in v0.111.5
type TraitValue ¶ added in v0.85.1
type TraitValue string
func (*TraitValue) UnmarshalJSON ¶ added in v0.85.1
func (st *TraitValue) UnmarshalJSON(b []byte) error
type TransactionEstimation ¶ added in v0.103.2
type TransactionEstimation int
const ( Unknown TransactionEstimation = iota LessThanOneMinute LessThanThreeMinutes LessThanFiveMinutes MoreThanFiveMinutes )
type TransactionManager ¶ added in v0.86.7
type TransactionManager struct {
// contains filtered or unexported fields
}