* Copy BytesLib.sol to OptimizedBytesLib.sol
* Remove `require`s from OptimizedBytesLib
* Use OptimizedBytesLib
* revert to use BytesLib for governance
* Rename to UnsafeBytesLib + use it explicitly
* Remove middle structs
* Parse and process attestation in place
It helps a lot because we won't expand memory anymore
* Update comments
* Remove unusued PriceAttestation struct
* [test-publisher]: Set cap on dyn added symbols
Currently the test publisher creates a new symbol every two minutes
without any cap and running tilt for a
long time will eventually drain all the resources.
This change sets a cap of PYTH_TEST_SYMBOL_COUNT
on the dynamically added symbols. It means that the publisher
starts with PYTH_TEST_SYMBOL_COUNT and will add at most
PYTH_TEST_SYMBOL_COUNT new symbols after that
* Update third_party/pyth/pyth_publisher.py
Co-authored-by: Stanisław Drozd <stan@nexantic.com>
* Update third_party/pyth/pyth_publisher.py
Co-authored-by: Stanisław Drozd <stan@nexantic.com>
* Update third_party/pyth/pyth_publisher.py
Co-authored-by: Stanisław Drozd <stan@nexantic.com>
Co-authored-by: Stanisław Drozd <stan@nexantic.com>
* Move some configs to a config file inside code
* Remove redundant ledger logs
* Use getSquads for execute too
* Refactor ledger logging removal
* update Readme
* pyth2wormhole-client: automatically crawl mapping based on interval
* Make the mapping crawl automation seamless
* pyth2wormhole-client: Make mapping crawling routine more robust
This change takes care of recoverable mapping crawling
errors (e.g. malformed single price on single product is no longer
dropping otherwise good different prices and products in the mapping
in favor of a warn message)
* pyth2wormhole-client: Move mapping crawl sleep near logic it affects
* pyth2wormhole-client: remove stray comment
* pyth2wormhole: Fix faulty merge with master
* pyth2wormhole-client: Fix mapping crawl price counting
* pyth2wormhole-client: split daemon/non-daemon, improve readabi[...]
...lity and remove most warnings
* pyth2wormhole-client: parts-per-thousand -> base points
* pyth2wormhole-client: inaccurate comment
* p2w-client: review advice - bp -> bps, std hasher -> sha256
* pyth2wormhole-client: reuse message queue across mapping lookups
* Dockerfile.client, Dockerfile.solana: harden caching to cut CI time
This change attempts to add useful items to the docker caching which
should save time downloading crates and by adding path=<full path> and
dropping id=<name> ensure that no Dockerfile cache mismatches occur. I
think the id= param is meant to help group builds that benefit from
common cache, but in case of pyth2wormhole-client/SOL contract builds
it became a competition between the two replacing the other's caches
* Dockerfile.client: remove malformed id= params
* Run remote exec CI only if it's changed
To save more GH actions time + have faster CI checks (sometimes it takes longer than tilt!)
* Update remote-executor.yml
* Make Pyth.initialize private
* Make contract upgrade more resillient + add fail test
* Remove deployCommitHash
The deployCommitHash process is error-prone and it's alternatives
require changing many parts of the code.
And as it is not used anywhere. I believe it is not
worth the effort.
* Improve price not found log
* Remove celo conf files as we are not there
* Remove some unused files
* Move common variables to cluster env
Also rename mainnet to ethereum
* Update migration scripts
* Remove ropsten, it's decommissioned
* Update template
* Create deployment script
* Add set fee migration step
* Comment out old upgrade process with good comments
* Address Tom comments
* Use a helper function for loading env
* pyth2wormhole-client:should_resend(): optimize interval-only batches
Most attestation conditions in prod are interval-only. This change
ensures that interval-only batches don't waste time on the on-chain
state lookup request.
* pyth2wormhole: Fix build error, redundant new_symbol_states decl
* pyth2wormhole-client: is_onchain -> needs_onchain_lookup
* pyth2wormhole-client: typo