feat(wallet) return offset in the activity result
Updates status-desktop #10994
This commit is contained in:
parent
37653638bc
commit
4c8fd538ba
|
@ -4,9 +4,9 @@
|
||||||
|
|
||||||
| | Buy | Swap | Bridge | Send/Receive |
|
| | Buy | Swap | Bridge | Send/Receive |
|
||||||
| ------------- | -------------- | -------------- | ------------- | ------------- |
|
| ------------- | -------------- | -------------- | ------------- | ------------- |
|
||||||
| Activity data | ~~API~~ ~~DB~~ | ~~API~~ ~~DB~~ | _API_ _DB_ | _API_ _DB_ |
|
| Activity data | ~~API~~ ~~DB~~ | ~~API~~ DB | _API_ DB | _API_ DB |
|
||||||
| Raw data | ~~API~~ ~~DB~~ | ~~API~~ ~~DB~~ | _API_ _DB_ | _API_ _DB_ |
|
| Raw data | ~~API~~ ~~DB~~ | ~~API~~ DB | _API_ DB | _API_ DB |
|
||||||
| Pending data | ~~API~~ ~~DB~~ | ~~API~~ ~~DB~~ | _API_ _DB_ | _API_ _DB_ |
|
| Pending data | ~~API~~ ~~DB~~ | ~~API~~ DB | _API_ DB | _API_ DB |
|
||||||
|
|
||||||
Legend:
|
Legend:
|
||||||
|
|
||||||
|
@ -37,8 +37,8 @@ Filter requirements
|
||||||
- [x] `finalized`: similar to `complete` for `Send`, `Receive`
|
- [x] `finalized`: similar to `complete` for `Send`, `Receive`
|
||||||
- all sub-transactions are `complete` for `Buy`, `Swap`, `Bridge`
|
- all sub-transactions are `complete` for `Buy`, `Swap`, `Bridge`
|
||||||
- [x] `failed`: extract from `status` for all sub-transactions
|
- [x] `failed`: extract from `status` for all sub-transactions
|
||||||
- [ ] `chainID`: aggregate data for activity entries `Bridge`, `Buy`, `Swap`
|
- [x] `chainID`: aggregate data for activity entries `Bridge`, `Buy`, `Swap`
|
||||||
- [ ] `tokenCode` for activity entries `Send`, `Receive`
|
- [x] `tokenCode` for activity entries `Send`, `Receive`
|
||||||
- For `Bridge` its already there and `Buy`, `Swap` is coming soon
|
- For `Bridge` its already there and `Buy`, `Swap` is coming soon
|
||||||
- [ ] `collectibles`: require adding collectible attributes to activity data (probably `token_address` and `tokenId`)
|
- [ ] `collectibles`: require adding collectible attributes to activity data (probably `token_address` and `tokenId`)
|
||||||
|
|
||||||
|
|
|
@ -429,7 +429,7 @@ const (
|
||||||
//
|
//
|
||||||
// Adding a no-limit option was never considered or required.
|
// Adding a no-limit option was never considered or required.
|
||||||
func getActivityEntries(ctx context.Context, db *sql.DB, addresses []eth.Address, chainIDs []common.ChainID, filter Filter, offset int, limit int) ([]Entry, error) {
|
func getActivityEntries(ctx context.Context, db *sql.DB, addresses []eth.Address, chainIDs []common.ChainID, filter Filter, offset int, limit int) ([]Entry, error) {
|
||||||
// TODO: filter collectibles after they are added to multi_transactions table
|
// TODO: filter collectibles after they are added to multi_transactions table
|
||||||
if len(filter.Tokens.EnabledTypes) > 0 && !sliceContains(filter.Tokens.EnabledTypes, AssetTT) {
|
if len(filter.Tokens.EnabledTypes) > 0 && !sliceContains(filter.Tokens.EnabledTypes, AssetTT) {
|
||||||
// For now we deal only with assets so return empty result
|
// For now we deal only with assets so return empty result
|
||||||
return []Entry{}, nil
|
return []Entry{}, nil
|
||||||
|
|
|
@ -47,9 +47,12 @@ const (
|
||||||
)
|
)
|
||||||
|
|
||||||
type FilterResponse struct {
|
type FilterResponse struct {
|
||||||
Activities []Entry `json:"activities"`
|
Activities []Entry `json:"activities"`
|
||||||
ThereMightBeMore bool `json:"thereMightBeMore"`
|
Offset int `json:"offset"`
|
||||||
ErrorCode ErrorCode `json:"errorCode"`
|
// Used to indicate that there might be more entries that were not returned
|
||||||
|
// based on a simple heuristic
|
||||||
|
HasMore bool `json:"hasMore"`
|
||||||
|
ErrorCode ErrorCode `json:"errorCode"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// FilterActivityAsync allows only one filter task to run at a time
|
// FilterActivityAsync allows only one filter task to run at a time
|
||||||
|
@ -72,6 +75,7 @@ func (s *Service) FilterActivityAsync(ctx context.Context, addresses []common.Ad
|
||||||
s.context, s.cancelFn = context.WithCancel(context.Background())
|
s.context, s.cancelFn = context.WithCancel(context.Background())
|
||||||
|
|
||||||
s.wg.Add(1)
|
s.wg.Add(1)
|
||||||
|
|
||||||
go func() {
|
go func() {
|
||||||
defer s.wg.Done()
|
defer s.wg.Done()
|
||||||
defer func() {
|
defer func() {
|
||||||
|
@ -88,7 +92,8 @@ func (s *Service) FilterActivityAsync(ctx context.Context, addresses []common.Ad
|
||||||
res.ErrorCode = ErrorCodeFilterCanceled
|
res.ErrorCode = ErrorCodeFilterCanceled
|
||||||
} else if err == nil {
|
} else if err == nil {
|
||||||
res.Activities = activities
|
res.Activities = activities
|
||||||
res.ThereMightBeMore = len(activities) == limit
|
res.Offset = offset
|
||||||
|
res.HasMore = len(activities) == limit
|
||||||
res.ErrorCode = ErrorCodeSuccess
|
res.ErrorCode = ErrorCodeSuccess
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue