Commit Graph

34 Commits

Author SHA1 Message Date
Ali Behjati 5e45146acb feat(hermes): add out of order subscription
Also improve the readiness probe

Co-authored-by: Reisen <Reisen@users.noreply.github.com>
2023-09-19 15:54:33 +02:00
Reisen 263b80b1f7 refactor(hermes): introduce CacheStore 2023-09-19 13:08:11 +02:00
Ali Behjati 518ab13e03 refactor(hermes): use tokio sync primitives in p2p 2023-09-08 16:17:06 +02:00
Ali Behjati ed505d9e53 fix(hermes): improve tracing logs
- Add EnvFilter to respect RUST_LOG
- Disable ANSI if stderr is not a terminal
2023-09-05 19:12:14 +02:00
Reisen 860178f057 feat(hermes): add tracing 2023-09-05 13:50:20 +01:00
Reisen 0559b45936 feat(hermes): add datadog profiling 2023-09-01 11:58:43 +01:00
Reisen 85d5170ddb chore(hermes): visual clean up of Cargo.toml 2023-08-30 11:37:44 +01:00
Reisen ac8895cada ci: bump hermes version 2023-08-28 12:18:43 +02:00
Ali Behjati 0682cc9b67 fix(hermes): handle rare cases on update data
Fix hermes construct_update_data to support generating update_data
for more than 255 messages. This is very unlikely to happen in normal
cases but the way WS <> store interact can cause this to happen when
a WS client subscribes to all price feeds.
2023-08-17 18:30:39 +03:30
Ali Behjati f36bd21f31 fix(hermes): handle non-existent ids on ws 2023-08-12 15:19:34 +03:30
Ali Behjati 1ed8b673f9 fix(hermes): use compatible ws format as xc-server 2023-08-09 12:57:18 +03:30
Ali Behjati 04b31f17c5 fix(hermes): send close message on WS closure
Some WS clients were receiving "Abnormal Connection Closure" errors.
This commit fixes the issue by sending specific close message upon
receiving close message from client. This commit also refactors the
ws.rs code by making it simpler and using tokio::time::Interval
instead of a manually implemented interval. Lastly, it updates the
axum package to include newer patches.
2023-08-08 18:57:06 +03:30
Jayant Krishnamurthy 99f1b6e950
[hermes] Finish up docs (#1002)
* docs

* stuff

* comment
2023-08-03 09:24:31 -07:00
Jayant Krishnamurthy 61e29ac166
[hermes] add utoipa for API docs (#990)
* [hermes] add utoipa for docs

* fix build

* format
2023-07-27 11:29:56 -07:00
Ali Behjati c1517349f8
test(hermes): add tests for store (#985) 2023-07-27 12:28:12 +03:30
Ali Behjati ec6378676c chore(hermes): version bump 2023-07-26 12:23:12 +03:30
Ali Behjati 4fba5d4f1b chore(hermes): update crates 2023-07-26 12:23:12 +03:30
Reisen 8c342c2ae0 fix: bump cargo and go versions to fix memory/compile issue 2023-07-21 16:56:46 +01:00
Ali Behjati 96cb221a3a
[hermes] Fix concurrency issue (#925) 2023-06-28 12:30:06 +02:00
Ali Behjati d07cc9d1ea
[hermes] Add storage tests + refactor (#907)
* [hermes] Add storage tests + refactor

* Bump pythnet_sdk version + update cosmwasm

* Address review feedbacks
2023-06-22 14:38:56 +01:00
Ali Behjati b596090bd8
[hermes] Switch to message structs in pythnet_sdk (#897) 2023-06-19 18:21:39 +02:00
Ali Behjati 4c2dfad755
[hermes] fix cors bug (#896)
* Fix cors policy error

* Bump version

* Remove unused dependencies
2023-06-19 17:15:12 +02:00
Ali Behjati f394d9e761
[hermes] Fix memory leak (#881) 2023-06-13 17:11:47 +02:00
Ali Behjati 3a1b2a36b3 Address comments 2023-06-05 15:19:48 +01:00
Ali Behjati 4fa9304b4f Move Message type extensions to pyth-client 2023-06-05 15:19:48 +01:00
Ali Behjati 9dd1520a25 Small refactor 2023-06-05 15:19:48 +01:00
Reisen a1dff0f5ac feat: add serializers for pyth formats
feat: use pythnet serialization in hermes

Fix vaa validation

Clippy

Update config names

Wrap Store with Arc

Store works perfectly without Arc as all it's elements are behind an Arc
or something similar to that, however a developer might make
mistake to add a field and missing it.

Improve error handling

Update metadata struct

Add metadata

Update Eth listener

Pin wormhole to a version

Fix ws dispatcher

fix: blocking in go recv corrupts tokio runtime

Make network <> store message passing non-blocking

Update logs and revert debug changes
2023-06-05 15:19:48 +01:00
Ali Behjati 8aeef6e6bd Add vaa verification 2023-06-05 15:19:48 +01:00
Ali Behjati d70119c067 Use pyth-oracle types 2023-06-05 15:19:48 +01:00
Ali Behjati 05bd9b4be7 Use wormhole sdk 2023-06-05 15:19:48 +01:00
Ali Behjati 866eace744 Add initial version 2023-06-05 15:19:48 +01:00
Ali Behjati 32596d5d4e
[hermes] Add more rest api methods (#746)
* [hermes] Add more rest api methods

Add many of the price service apis. Per David suggestion, we do
validation in parsing instead of doing it later. I didn't find
any suitable library to deserialize our hex format so I created
a macro to implement it because we use it in a couple of places.
I tried making a generic HexInput but couldn't make it working
(and I need other crates like generic_array for it which makes
the code more complex)

* Address feedbacks
2023-04-18 17:20:11 +02:00
Ali Behjati 1af86140f1
[hermes] Add basic structure for price store and rpc (#717)
Co-authored-by: Reisen <Reisen@users.noreply.github.com>
2023-03-30 14:27:02 +02:00
Reisen 3f56b3064d
[hermes] Rename from price service and add README. (#705)
* pyth-node: rename from price service and document

* pyth_node: Add visual architecture to README.
2023-03-21 14:36:13 +00:00