Commit Graph

2555 Commits

Author SHA1 Message Date
Ali Behjati 4e2e04ad44 chore: improve precommit ci 2023-09-13 11:05:52 +02:00
Ali Behjati 28f9b39444 doc(hermes): update readme 2023-09-13 10:31:32 +02:00
Ali Behjati a34f759061 chore(eth): deploy to horizen eon/gobi 2023-09-12 15:10:09 +02:00
guibescos b91360ab6b
Add system instruction (#1046)
* Add system instruction

* Update string logic

* Fix comments
2023-09-11 20:34:51 +01:00
Ali Behjati 518ab13e03 refactor(hermes): use tokio sync primitives in p2p 2023-09-08 16:17:06 +02:00
Ali Behjati 7dc0cb80bf feat(hermes): add benchmarks for histroical data 2023-09-08 15:35:58 +02:00
Amin Moghaddam 51afd5aef2
Improve contract manager and switch evmos rpc (#1044)
* Small fixes and logging improvement

* Switch evmos rpc as the older one was not working anymore
2023-09-07 15:16:14 +09: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
Sahilgat 7cbdcb562d fix: underflow issue 2023-09-04 18:44:41 +02:00
guibescos f7699bb6b0
Update dockerfile (#1041)
* Update dockerfile

* Drive by v4

* Reduce scope

* Revert dockerfile

* Revert dockerfile changes

* Cleanup the other dockerfile

* Remove contracts dir

* Remove old cli
2023-09-04 16:19:39 +01:00
guibescos cfdfb9d2fb
Price account v2 for remote clusters (#1040) 2023-09-04 14:37:19 +01:00
Reisen 0559b45936 feat(hermes): add datadog profiling 2023-09-01 11:58:43 +01:00
Ali Behjati e1ae1ad1c4 fix(eth): update legacy updateFee method pricing 2023-08-31 11:51:27 +02:00
Reisen 85d5170ddb chore(hermes): visual clean up of Cargo.toml 2023-08-30 11:37:44 +01:00
Amin Moghaddam 47c6f45128 Add addresses to evm js sdk 2023-08-28 14:40:09 +02:00
Amin Moghaddam 497a52bb94 Make contract manager evm chains accept rpc urls 2023-08-28 14:40:09 +02:00
Ali Behjati 9cec35b251 chore(contract_manager): add ronin networks 2023-08-28 14:40:09 +02:00
Reisen ac8895cada ci: bump hermes version 2023-08-28 12:18:43 +02:00
Reisen 98f8ccb614 feat(hermes): add global info level logging for libp2p 2023-08-28 11:15:21 +01:00
Reisen 5edcce4530 refactor(hermes): clean exit 2023-08-26 12:02:28 +01:00
Amin Moghaddam a7d133d063
[cosmwasm] CosmWasm integration with contract manager (#1025)
* Integrate with contract manager for wormhole script

* Remove deprecated scripts and more integration with contract manager

* Remove cosmwasm tools store

These configs are now held in the contract manager

* Update docs on cosmwasm

* Split cosmwasm package into 2 for fixing dependency issues

* Fix cosmwasm README.md

Co-authored-by: Ali Behjati <bahjatia@gmail.com>
2023-08-25 16:38:42 +02:00
Amin Moghaddam cf78791560
[sui] [contract-manager] Sui cm updates (#1030)
* Minor documentation and improvements on contract manager

* Add published addresses for sui contracts
2023-08-25 14:42:31 +02:00
Mohammad Amin Khashkhashi Moghaddam ac0519b57a
[price-pusher] Bugfix in handling account sequence mismatch (#1028)
account sequence mismatch error could happen in the simulation but the
try catch did not cover that part
Verified the fix by manually incrementing the sequence number twice after
each transaction so a refetch was necessary
2023-08-24 10:57:30 +01:00
Mohammad Amin Khashkhashi Moghaddam 78ca49dcc3
[evm] [cosmwasm] Minor cleanup (#1027)
* Remove old cosmwasm address documentation

* Remove old evm migration folder and keep prod-receiver
2023-08-24 11:41:59 +02:00
Mohammad Amin Khashkhashi Moghaddam b9dbd54d5a
[contract-manager] General improvements (#1024)
* Better return types for transaction execution functions

* Use new type for passing PrivateKey

* Small typing improvements

* Stricter liniting

* Rename edge to beta for DeploymentType

* Reduce any usage across the contract manager

* Fix explicit any linting warnings
2023-08-23 16:29:43 +02:00
Mohammad Amin Khashkhashi Moghaddam f316a512c3
[contract-manager] Utility script to fetch fees on different contracts (#1026)
* Utility script to fetch fees on different contracts
2023-08-23 16:28:27 +02:00
Mohammad Amin Khashkhashi Moghaddam 20d8eec064
Update sui docs and refer to docs page to avoid duplication (#1023) 2023-08-23 11:32:45 +02:00
Mohammad Amin Khashkhashi Moghaddam 5a714662b0
[sui] Use manual serialization for vaas (#1016)
* Use manual serialization in most of the places

* Update sui js lib and change cli package config
2023-08-22 12:44:43 +02:00
Dmitry Shvetsov b779975b2c
Update aptos examples pyth dependency subdir (#1020) 2023-08-22 10:34:30 +02:00
Reisen 71ce45698b refactor(hermes): move rpc endpoints into submodules 2023-08-21 15:06:43 +01:00
Reisen b74df4ff17 refactor(hermes): pass run args as struct, add docstrings
In some cases arguments are passed and renamed (see `api_addr -> rpc_addr`) or
are unnecesarily converted (see `api_addr.to_string()` -> `api_addr.parse()`.
In the future, we are likely to add many more arguments to Hermes as well, so
this commit moves them into a separate struct which is forwarded throughout the
application instead.

The struct's are cloned, but only happens during launch of a hermes service
component so the cost doesn't matter.
2023-08-21 13:43:44 +01:00
Ali Behjati 1a00598334 feat(price-server): support parsing accumul data 2023-08-17 18:39:02 +03:30
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
Daniel Chew 110caed6be
change waitForMaybeReadyWebSocket to 5 seconds (#1017)
* change waitForMaybeReadyWebSocket to 5 seconds

* update package-lock.json
2023-08-16 17:37:20 +08:00
Mohammad Amin Khashkhashi Moghaddam b189937365
[sui] Sui dx improvement (#1011)
* Use the actual wormhole deployment on testnet for sui testnet config

* Simpler deployment script

* Bugfix in upgrade payload deserialization

* Bugfix in fetching upgrade digest

* Small contract manager refactoring and more integration for upgrade script in sui

* Remove old scripts

* Add script for just generating the sui contract digest

* Restrict HotPotatoVector borrow access

The return value of `create_price_infos_hot_potato` should not be inspectable
outside of the package.

* Reorganize the cli lib for sui

* Add minimal README for sui cli

* Update the general README for sui

* Reuse sui sdk logic in contract manager


* Manual serialization of accumulator updates for increasing payload size

Default payload size seems to be 1024 bytes which is not enough for messages
with multiple feeds

* Bump sdk version
2023-08-15 17:56:43 +02:00
optke3 55129e5b89
[Sui 21/x] - pyth-sui-js SDK (#1004)
* Add sui js sdk

* Update dependencies and package lock

---------

Co-authored-by: Amin Moghaddam <amin@pyth.network>
2023-08-15 10:52:16 +02:00
Ali Behjati f36bd21f31 fix(hermes): handle non-existent ids on ws 2023-08-12 15:19:34 +03:30
Ali Behjati 37ff02f1f9 fix(price_pusher): wait on tx to succeed 2023-08-11 13:14:39 +03:30
optke3 f79cfd8669
[Sui 20/x]- refactor Pyth governance code path (#991)
* - refactor Pyth governance code path to not use wormhole::governance_message module
- use our own custom WormholeVAAVerificationReceipt struct instead of DecreeReceipt

* delete print

* delete print

* contract edits

* add test vaa / test for set_update_fee

* bring back set data sources test

* use correct VAA for test set data sources

* delete commented out code

* write test for set stale price threshold

* update pyth verify_vaa

* simplify pyth::governance::verify_vaa

* use sequence number for replay protection in both governance and contract upgrade code paths

* only use sequence number for replay protection
2023-08-10 10:58:44 +02:00
Ali Behjati ec63330cf0 chore: add coverage/ to gitignore 2023-08-09 20:58:54 +03:30
Ali Behjati 439a0f0337 fix: make coverage work on newer versions 2023-08-09 20:58:54 +03:30
Jeff Schroeder 4e8c30b072 chore(ethereum): add html coverage bits
Add an npm helper to output the html coverage files via:

    npm run coverage

This requires lcov and genhtml to be installed.
2023-08-09 20:58:54 +03:30
Mohammad Amin Khashkhashi Moghaddam e422fb9321
[evm] Wormhole receiver deploy all (#1009)
* Add verification logic for evm set wormhole address instruction

* Minor improvements and cleanup on contract manager evm

* Batch deploy script

* Better docs on verification

* Fix zkSync deployment script and update documentation
2023-08-09 18:22:47 +02:00
Mohammad Amin Khashkhashi Moghaddam caca2da9e2
[price-pusher] Fix fee calculation on injective price pusher (#1007)
* Fix fee calculation on injective price pusher

We used an optimization to calculate the update fee based on the number of VAAs. This used to be true before the accumulator messages but now since both formats can be used, it is not obvious what the final fee would be. We can again try to optimize this code and reduce rpc calls by replicating the fee calculation logic from the smart contract, but for now we have rolled back to the unoptimized version.
2023-08-09 14:43:06 +02:00
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
Ali Behjati f1eeb94210 chore(eth): add scroll sepolia 2023-08-08 10:21:05 +03:30
Mohammad Amin Khashkhashi Moghaddam 272f3c1984
[contract-manager] Contract manager improvements (#1000)
* Use arrays instead of separate files per config

* Remove redundant endpoint on cosmwasm

* Add functions for upgrading the wormhole guardian sets

* Add wormhole contract management on evm and cosmwasm

* Add getter functions to check what sort of wormhole-deployment is used

* Reorganize contract manager package to be used via other packages

* Remove .env files per network and create a script that outputs the same file

* Use env variables in truffle config and output config in deployments

* Add executeUpdatePriceFeed to contract interface

* Add update pricefeed script

* Add saving functionality to store

* Save new contract configs automatically on Evm

* Make deploy script use the create-env.js internally

* Add utility function to get implementation address for Evm Proxy contracts

* Add shimmer testnet and replace evmos nunfunctional rpc

* New procedure for contract verification

* Update docs and remove duplicate configurations

* Remove shimmer configs

* Read default data source configs via contract manager

* Remove flattened contract before compiling/deploying
2023-08-07 14:13:29 +02:00
optke3 a9a21ae977
[Sui 17/x] - accumulator price update from client-side (#946)
* get accumulator message from hermes price service

* ts parse_vaa_bytes_from_accumulator_message utility

* update registry to point to latest pyth package ID (assert_only passes)

* - set data sources governance test in set_data_sources.move
- make some helper functions in pyth.move public
- test file for update price feed using accumulator messages

* tests for governance actions

* - on-chain test for parsing acc message
- fix utility for parsing accumulator message VAA off-chain (on client-side)
- almost get client-side acummulator price update working

* clean up pyth_update_price_feed_using_accumulator_message.ts script

* more clean-up and pre-commit run --all-files

* revert changes to instructions.ts and package-lock.json

* - updated newly created price info object addresses
- fix bug in hot potato vector destroy function (specify type arg)
- price update using accumulator on client side works!

* edit

* format

* - update testnet accumulator message update test
- clean up ts files

* more clean up

* clean up

* optke3 -> mysten

* premitoio
precommit run all files

* edit

* rename update_price_feeds to the more specific update_price_feed_using_accumulator_message

* revert contract changes

* edit sign_governance_msg script

* run precommit on all files

* edit

* remove sdk folder
2023-08-04 16:36:20 -04:00