* changes in fly component to send governor status events
* split processor in vaaProcessor and governor processor
* add governor processsor v1
* Add endpoint in tx-tracker to calculate txHash for a vaa id
* fly-event-processor integration with new tx-tracker endpoint and refactor
* Add governor vaas endpoint in api
* api, fix amount data type in governor vaas endpoint
* fly-event-processor normalize emitter and txHash
* fly-event-processor fix nodeGovernorVaa id
* fly-event-processor control array not empty in insert/delete many operation
* add index in nodeGovernorVaas collection by vaaId
* add prometheus metrics
* add tx-tracker url for fly-event-processor deployment
* Add sns attributes into sns messages
Co-authored-by: walker-16 <agpazos85@gmail.com>
* fix governor vaa endpoint empty response
---------
Co-authored-by: Fernando Torres <fert1335@gmail.com>
* Add support to scroll in tx-tracker
* Handle duplicated vaa in fly
Co-authored-by: walker-16 <agpazos85@gmail.com>
* Modify tx-tracker and pipeline to support duplicated vaas
Co-authored-by: ftocal <fert1335@gmail.com>
* Add isDuplicated flag in vaas and operations endpoints
Add new endpoint to find duplicated vaas by vaa id
Co-authored-by: walker-16 <agpazos85@gmail.com>
* Add metrics for duplicated vaas
Co-authored-by: walker-16 <agpazos85@gmail.com>
* Update node dependencies in spy
Co-authored-by: walker-16 <agpazos85@gmail.com>
* Fix promethes metrics for missing tx-hash in tx-tracker
Co-authored-by: walker-16 <agpazos85@gmail.com>
---------
Co-authored-by: Agustin Pazos <agpazos85@gmail.com>
* Modify intialize to support fallback url and rate limit
* Add fallback and rate limit config for all the chains
* remove unused WormchainTxDetail struct
* Add pool of items to common
* Add rpc pool to tx-tracker
* Rename chain url to baseUrl
* add fallback to wormchain chains
* update tx-tracker fetchone to use rpc pool
* Modify backfiller to use rpc pool
* fix merge to main run files
* Add rpc pool to controller
* remove comments
* fix pool sort function
* Add rpc pool to all the chains
* Fix algorand, aptos, sui integrations
* Fix pool solana
* remove api_sei3 old implementation
* Add metrics to get success/error rpc call
* Add rpc field in call rpc metric
* Fix common go.mod and remove unused if condition
* Update go.mod tx-tracker
* Create rpc count prometheus metrics
* Add fallback to insert originTx if rcp fail
* Check if the transaction doesn't exists
* Modify in tx-tracker already processed method
* fix wormchain rpc
* Add rpc settings as json file
* Enable overwrite to stress test
* Add rpc provider as k8s secret
* Add metrics to get vaa retry processing
Co-authored-by: ftocal fert1335@gmail.com
* Add worker pool in consumer for tx-tracker
* fix config by env
* Set consumer workers in 1
---------
Co-authored-by: Fernando Torres <fert1335@gmail.com>
Improve event processing in tx-tracker
Add new prometheus metrics
Handle vaa without txHash from gossip flow
Fix for already message processed
Change rpc endpoints and rate limit for tx-tracker
Co-authored-by: walker-16 <agpazos85@gmail.com>
### Summary
This pull request changes the retry logic in the `tx-tracker`.
When failing to process a transaction, the associated SQS message will be left to expire and will reappear after `visibilityTimeout` seconds. As a side effect, there will be several retries before giving up.
### Description
This pull request implements an improvement in the processing logic of the `tx-tracker` service to avoid processing a message more than once.
### Description
This pull request implements improvements in the `tx-tracker` service:
* Adjust SQS visibilityTimeout.
* Process PythNet messages concurrently (this will make it easier for the service to catch up if there are a lot of messages in the input queue).
* Add more context information to error messages.
### Summary
Tracking issue: https://github.com/wormhole-foundation/wormhole-explorer/issues/415
When the `tx-tracker` service processes a VAA, sometimes the transaction is not finalized (e.g.:for chains with slow finality, VAAs with low consistency level, out-of-sync nodes). This problem was observed on chains like Solana, Ethereum and Polygon, but could have happened on other chains.
This pull request adds the logic needed to wait and retry processing the VAA, hoping that the originating transaction reaches finality.
Also, the `tx-tracker` service now uses a worker pool to process transactions, which will lead to higher throughput. This will benefit the WormholeScan UI, specially in the case when a large number of VAAs are emitted in a short period of time.
### Summary
Tracking issue: https://github.com/wormhole-foundation/wormhole-explorer/issues/404
The WormholeScan UI needs to display the sender address for each token bridge VAA. This pull request modifies the `tx-tracker` service to obtain that information for Solana and eight EVM chains.
The transaction sender will become accessible through the following endpoints:
* `GET /api/v1/global-tx/{chain}/{emitter}/{seq}`: field `originTx.from`.
* `GET /api/v1/transactions`: field `originAddress`.
In both cases, the field is nullable (i.e.: sometimes it may not be available due to eventual consistency or internal errors)
### Summary
Tracking issue: https://github.com/wormhole-foundation/wormhole-explorer/issues/254
For all chains except Solana, the data in `globalTransactions.sourceTx` was somewhat duplicated, since we already had that data in the `vaas` collection.
This pull request changes the `tx-tracker` service so that no redundant data will be written, and also changes the API to look up the data from the `vaas` collection instead.
The responses from the endpoint `/api/v1/global-tx` will no longer contain the field `originTx.from`.
### Summary
This pull request adds the functionality to search for VAAs using Solana tx hashes, e.g.:
`GET /api/v1/vaas?txHash=2qnNNBQQQ152sGkQ1Rnq2Kdr48LvdN4oXwnTWyEmJqYYWFusLWxbwhpGS5KTXH1bKKx9gg9BLZMKd3g1cXiy7QMz`.
Also, the VAA objects returned by the API now have a new field `nativeTxHash`, which contains the tx hash that generated the VAA in the native format of the emitter chain.
Tracking issues: https://github.com/wormhole-foundation/wormhole-explorer/issues/212, https://github.com/wormhole-foundation/wormhole-explorer/issues/214
### Testing guidelines
Endpoints affected:
* `GET /api/v1/vaas` now supports Solana tx hashes by using the `?txHash=` query parameter. This search is limited to VAAs created by the portal token bridge.
* Some VAAs returned by the API should have a new field `nativeTxHash`. All VAAs related to the portal token bridge should have this field set.
* An internal refactoring affected pretty much all routes under `GET /api/v1/vaas*`, which should be re-tested.
* In the response of `/api/v1/global-tx/`, the field `originTx.signer` has been renamed to `originTx.from`
### Summary
The tx-tracker service was exceeding node RPC rate limits, which caused it to fail.
This pull request changes the APIs upon which the service depends to avoid the same issue in the future.
Also, the backfiller job has been updated accordingly.
Tracking issue: https://github.com/wormhole-foundation/wormhole-explorer/issues/205
### Summary
This pull request adds a new component under the directory `txtracker`.
This component retrieves information about portal token bridge transfers (i.e.: sender address, receiver address, timestamp), and persists the data in MongoDB.
### Chains supported
The blockhains currently supported are:
* Terra (27% of outgoing transfers)
* Solana (25%)
* BSC (25%)
* Eth (14%)
* Polygon (4%)
The remaining chains will be added iteratively as needed.