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.
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.
* 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
* - 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
* 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.
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.
* 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
* 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
In our previous release this function was an entry function by mistake.
Now in order to keep our abi backward compatible, we need to keep it as entry function.
In order to allow the newer aptos cli to ignore this issue, we decorate it with `legacy_entry_fun`
* Better errors
* Better variable typing
* Upgrade cli with more straightforward flow
* Remove unnecessary configs and distinguish between deployer contract and signer
* Convert the named-addresses argument to 3 separate options with default values
* Add README
* Add stable testnet contracts
* Fix bug in creating InjectiveExecutor from mnemonic
* Import only from root library
* Code verification on proposals for cosmwasm
* Minimal script to upload wasm codes
* Use the netwrok parameter for InjectiveChain executor instead of endpoints
- Remove Storage trait and LocalStorage and implement everything on Storage struct
- Remove update_accumulator_state and break it down to accumulator_messages and
wormhole_merkle_state