Commit Graph

113 Commits

Author SHA1 Message Date
Dario Gabriel Lipicar 92a604f471 fix: fix alchemy collectible traits parsing 2023-11-16 15:49:13 -03:00
Dario Gabriel Lipicar a38b34ae49 feat: cache community metadata in wallet
Fixes #12521
2023-10-26 17:36:45 -03:00
Dario Gabriel Lipicar dca38d1d32 fix: small openseaV2 client fix 2023-10-26 17:36:45 -03:00
Dario Gabriel Lipicar addf6e4aaf feat: implemented openseaV2 api changes 2023-10-11 14:41:18 -03:00
Dario Gabriel Lipicar 544e2ea76f feat: removed soon-to-be-deprecated openseaV1 client 2023-10-11 14:41:18 -03:00
Dario Gabriel Lipicar bc33f6d54c feat: removed soon-to-be-deprecated Infura client 2023-10-11 14:41:18 -03:00
Dario Gabriel Lipicar d1f63a8d71 feat: exponential backoff for Alchemy 2023-10-11 14:41:18 -03:00
Dario Gabriel Lipicar 94ae683bc2 fix: ensure full collectible list is fetched from a single provider 2023-10-11 14:41:18 -03:00
Dario Gabriel Lipicar 80f25d5ff7 fix: misc collectibles fixes 2023-10-05 09:40:18 -03:00
Cuteivist ecc8b4cb55
feat: Wallet activity collectibles model (#4074) 2023-10-03 12:49:04 +02:00
Dario Gabriel Lipicar bd6f9b098b feat: implement collectible connection status 2023-09-27 16:44:37 -03:00
Dario Gabriel Lipicar ba5cd9c1a4 feat(wallet): add community info to collectibles 2023-09-22 17:55:30 -03:00
Dario Gabriel Lipicar eb8f3173e4 fix: proper openseaV2 detailed nft unmarshalling 2023-09-13 08:43:09 -03:00
Stefan c0f32748b4 feat(wallet) lazy load activity info optimization
Trigger async fetching of extra information on each activity filtering
request. Only emit the update event for incomplete entries.

Other changes:

- Make DataEntry light as event payload by making all the fields
  optional
- Add new required fields to the activity DataEntry
- Add collectibles.ManagerInterface to aid testing

Note: this PR keeps compatibility with current master by always
providing non-optional multi-transaction ID. The TODO will be executed
before merging the status-desktop PR.

Experienced a hang on FetchAssetsByCollectibleUniqueID call with:
[{{5 0x21263a042aFE4bAE34F08Bb318056C181bD96D3b} 1209},
{{5 0x9A95631794a42d30C47f214fBe02A72585df35e1} 237},
{{5 0x9A95631794a42d30C47f214fBe02A72585df35e1} 236},
{{5 0x9A95631794a42d30C47f214fBe02A72585df35e1} 832},
{{5 0x9A95631794a42d30C47f214fBe02A72585df35e1} 830},
{{5 0x9A95631794a42d30C47f214fBe02A72585df35e1} 853}]

Updates status-desktop #11597
2023-09-01 19:11:14 +02:00
Dario Gabriel Lipicar 8d8bd4fc92 fix: handle opensea v2 api error for accounts holding no collectibles 2023-08-24 08:28:36 +02:00
Dario Gabriel Lipicar ae17ad57c3 fix: change cursor of opensea v2 ownership endpoint 2023-08-18 11:55:39 -03:00
Dario Gabriel Lipicar ad0e2c2450 feat: implement opensea v2 endpoints 2023-08-18 09:59:38 -03:00
Dario Gabriel Lipicar 3734f03645 chore: split collection data provider 2023-08-18 09:59:38 -03:00
Dario Gabriel Lipicar 4b394e088e fix: minor collectible provider fixes 2023-08-09 11:21:59 -03:00
Dario Gabriel Lipicar 33c116f7b1 chore: implement collectibles data db cache 2023-08-09 11:21:59 -03:00
Dario Gabriel Lipicar e30cba4303 fix: parse collectible ownership response from v3 alchemy endpoint properly
Fixes #11832
2023-08-08 13:20:36 -03:00
Dario Gabriel Lipicar d5974dd52e feat: fetch collection metadata when missing 2023-08-04 09:54:18 -03:00
Dario Gabriel Lipicar c92a10b846 feat: implement alchemy and infura collectible account ownership endpoints 2023-08-03 12:53:00 -03:00
Dario Gabriel Lipicar 51d676bb08 chore: reorganized collectibles clients code 2023-08-03 12:53:00 -03:00
Dario Gabriel Lipicar c2ac108556 chore: rework data structures to accomodate new providers 2023-08-03 12:53:00 -03:00
Dario Gabriel Lipicar 10a42e639d feat: parallel collectibles fetching per account and chain 2023-07-27 12:12:03 -03:00
Dario Gabriel Lipicar b1cf54974e chore: make opensea client return common types 2023-07-27 12:12:03 -03:00
Dario Gabriel Lipicar 849be69299 chore: use single opensea client instance 2023-07-27 12:12:03 -03:00
Dario Gabriel Lipicar b5224b3cc5 chore: rename and reorder types 2023-07-27 12:12:03 -03:00
Dario Gabriel Lipicar 1f379aec1f feat: implemented multi chain collectible ownership provider 2023-07-19 07:58:05 -03:00
Dario Gabriel Lipicar 9ee523be99 fix: remove unsupported chainIDs from opensea client 2023-07-12 15:49:18 -03:00
Anthony Laibe bc92df79d5 fix: fourbyte integration no arg 2023-07-10 12:26:42 +02:00
Anthony Laibe dffcb708ea feat: add fourbyte github integration 2023-07-06 11:31:14 +02:00
Stefan e5e5229e6a feat(tests) disable 4byte remote server dependent tests 2023-07-03 16:50:48 +02:00
Dario Gabriel Lipicar afb9621f01 fix: protect OpenSea instances with a mutex 2023-06-27 11:09:02 -03:00
Anthony Laibe 8ef3c52f4d fix: parse input data with bytes 2023-06-21 11:42:40 +01:00
Emil Sawicki ad9ad4026b feat: add signature id 2023-06-16 12:10:22 +01:00
Anthony Laibe 9d5b123c95 feat: add api to parse tx input 2023-06-16 12:10:22 +01:00
Dario Gabriel Lipicar a2b1640ad7 fix(wallet): respect limits for collectibles fetching 2023-06-15 16:44:02 -03:00
Dario Gabriel Lipicar 4ef5eba6b5 chore: move chainIDs to constants file 2023-04-19 08:30:10 -03:00
Dario Gabriel Lipicar c8f0ceccc8 feat: add api to get list of owners from a given nft contract
Fixes #10290
2023-04-19 08:30:10 -03:00
Dario Gabriel Lipicar ff755a1176 fix: add supported chains to OpenSea 2023-04-06 13:42:38 -03:00
Dario Gabriel Lipicar 5bad40c8be feat: add collectible animation info to data fetched from Opensea 2023-04-03 12:32:32 -03:00
Anthony Laibe c84d6fcc35 feat: remove consecutive 2023-03-31 19:22:53 +02:00
Anthony Laibe 0c8ce79941 feat: returns tokens even when error 2023-03-31 19:22:53 +02:00
Anthony Laibe 540001e137 feat: chunk correctly coinmarketcap calls 2023-03-31 19:22:53 +02:00
Anthony Laibe c9a8ab13c2 fix: set is connected for chain without fallback 2023-03-31 19:22:53 +02:00
Anthony Laibe ec5449c2bd fix: collectible status event 2023-03-31 19:22:53 +02:00
Anthony Laibe ba75bda39e feat: event on error 2023-03-31 19:22:53 +02:00
Dario Gabriel Lipicar 4e222cc404 feat: collectibles cache 2023-03-31 12:24:33 -03:00
Dario Gabriel Lipicar f097d3430a feat: reduce usage of OpenSea api key 2023-03-31 12:23:50 -03:00
Dario Gabriel Lipicar d8ee8786ff fix: simplified tokenURI retrieval. Extended NFTMetadata struct. 2023-03-30 09:17:53 -03:00
Dario Gabriel Lipicar 48e16317a7 fix: added global lock for Opensea requests. Increased number of retries. 2023-03-29 18:20:09 +02:00
Dario Gabriel Lipicar a1e7eed141 feat: fetch NFT metadata from Communities 2023-03-24 15:17:41 -03:00
Khushboo-dev-cpp a3f1a84d29
chore: Improve error logging for OpenSea errors / generic json unmarshalling errors (#3298)
fixes #8798
2023-03-20 16:53:39 +01:00
Dario Gabriel Lipicar bd82250cf7 feat(Wallet): add API to fetch collectibles by owner and contract address 2023-03-20 10:52:16 -03:00
IvanBelyakoff 2c9714f0f8
fix(wallet/coingecko): Fix coingecko crash on race writing to tokens map (#3274) 2023-03-14 21:59:10 +03:00
Dario Gabriel Lipicar bac7eb08ca feat(Wallet): add API to fetch collectibles in a paginated way 2023-03-10 11:27:03 -03:00
Dario Gabriel Lipicar 7b6fc87f89 fix(wallet): use OpenSea api key only for mainnet endpoint 2023-03-10 08:55:58 -03:00
Dario Gabriel Lipicar 3f3e8f8894 feat(Wallet): add opensea asset fetching by contract address and token id 2023-03-07 10:33:50 -03:00
Anthony Laibe e543fda4b5 feat: add coingecko fallback 2023-02-27 09:55:04 +01:00
Anthony Laibe f81758ec6e feat: add time to check 2023-02-23 18:23:29 +01:00
Stefan f4f6b25302 feat: convert history balance tokens to fiat
Add history.exchange sub-package with following responsibilities

- fetch and caches daily exchange rates for tokens
    - Partial update if missing form yesterday back
- Implement all time fetching special case
- Fetches the price of the token after merging entries for the selected
chains

history.service package changes

- Return ValuePoint instead of DataPoint
    - Value point contains the value in fiat as float64 instead
- Convert merged values from tokens balance (wei) to fiat

Other changes

- Move start/stop balance history to startWallet/stopWallet
- Move cryptocompare to thirdparty package to avoid recursive import
- Rename DataPoint.Value to DataPoint.Balance
- Don't merge entries for single chain
2023-02-15 18:17:21 +04:00