* state getters and setters, change Move.toml dependency to sui/integration_v2
* finish state.move
* add new line to pyth
* use deployer cap pattern for state module
* sui pyth
* update price feeds, dynamic object fields, Sui object PriceInfoObject
* register price info object with pyth state after creation
* sui governance
* some newlines
* error codes
* update and comment
* unit tests for pyth.move, add UpgradeCap to Pyth State (will be used for contract upgrades)
* updates
* test_get_update_fee test passes
* fix test_get_update_fee and test_update_price_feeds_corrupt_vaa
* test_update_price_feeds_invalid_data_source
* test_create_and_update_price_feeds
* test_create_and_update_price_feeds_success and test_create_and_update_price_feeds_price_info_object_not_found_failure
* test_update_cache
* update
* test_update_cache_old_update
* update_price_feeds_if_fresh
* comment
* contract upgrades start
* contract upgradeability
* update clock stuff
* edits
* use clone of sui/integration_v2 for stability
* make contract_upgrade::execute a public(friend) fun, remove clock arg
* E_INCORRECT_IDENTIFIER_LENGTH
* comment and edit
* add a single comment
* upgradeability fixes, other fixes
* update, migrate, state, pyth, setup, version_control
* upgradeability, governance, LatestOnly
* - state init_version, init_package_info
- governance and contract ugpradeability stuff
* make several functions public(friend), and friend the right modules in data_source.move
* add comment
* fix bug in from_u8, so that value <= TRANSFER_FEE
* rename error message to E_MUST_USE_CONTRACT_UPGRADE_MODULE_TO_DO_UPGRADES
* set_last_executed_governance_sequence
* set pyth governance_module to 0000000000000000000000000000000000000000000000000000000000000001
* update README
* Update README.md
* Update README.md
* delete comments
* Update README.md
* Update README.md
* change Wormhole dependency to branch sui/mainnet, which has the latest update that includes VAA sequence number in DecreeReceipt
do proper checking of sequence number when executing governance instructions, allow set_governance_data_source to update the sequence number to some initial_sequence.
* state::set_last_executed_governance_sequence
* rename error
* add newline to setup.move
* delete space
* Update README.md
* mark test module as well as some imports #[test_only] so sui move build works
* scripts for Pyth contract testing and deployment
remove required_version.move, as it is no longer being used for access control
make init_and_share_state a public(friend) function
* add build to Makefile
* init pyth ts script
* sui deploy and testing scripts
* contract fixes, set_fee_recipient governance action, emit price update event only if fresh price update
* init_pyth.ts, registry.ts, create_price_feed.ts
* create price feeds
* deploy script and Move.toml
* some contract updates to compile with WH branch sui/mainnet
deployment script updates
* update README
* update readme
* rename TS scripts, edit readme
* add rev for wormhole dependency, edit README
* edit create_price_feed script
* - add price_info::get function for getting PriceInfoObject ID from PriceIdentifier
- add test for price_info::get
* contract updates
* script edits
* contract upgrade in version_control.move and fix pyth_create_price_feed.ts
* add get_price_info_object_id function to pyth::state
* tests and build pass
* update scripts
* Pyth mainnet deploy, create all price feeds script
* clean up script imports
* add mainnet addresses to readme
* correct Pyth Mainnet addresses
* create price feeds on mainnet
* use git dependency in Move.toml
* edits
* delete required contracts
* get price info object ids
* get price info object IDs
* add json file containing price feed id to price info object id
* comment
* clean up scripts folder and imports
* more script clean up (comments)
* script updates
* pre-commit run --all-files
* perf(ethereum): optimize gas & bytesize by changing some function parameters to use bytes memory
change parseWormholeMerkleHeaderNumUpdates & parsePriceFeedMessage to use bytes memory instead of
bytes calldata for function parameters
* perf(ethereum): more optimizations
use bytes memory for more functions, change parsePriceFeedMessage to use offset instead of copying a
slice
* [eth] Add unsafe calldata bytes lib (#888)
* Copy UnsafeBytesLib to UnsafeCalldataBytesLib
* [eth] Add UnsafeCalldataBytesLib and update code
---------
Co-authored-by: Ali Behjati <bahjatia@gmail.com>
* feat(ethereum): charge update fee per numUpdates for accumulator updates
* refactor(ethereum): refactor, add benchmarks for getUpdateFee
* refactor(ethereum): add back parseWormholeMerkleHeaderNumUpdates
* refactor: increment totalNumUdpates by 1 for batch prices
* test(ethereum): add test for checking getUpdateFee for accumulator, clean up unused code
* Implement accumulator updates for cosmwasm
* Update fee calculation logic for accumulator messages
The fee for accumulator messages is base fee times the number of messages
but the logic remains the same for the batch method
* update price service sdk
* bump version
* fix test
* include slot
* bump price-service-client version
* bump all that uses price-service-client
* bump all that uses price-service-client
* state getters and setters, change Move.toml dependency to sui/integration_v2
* finish state.move
* add new line to pyth
* use deployer cap pattern for state module
* sui pyth
* update price feeds, dynamic object fields, Sui object PriceInfoObject
* register price info object with pyth state after creation
* sui governance
* some newlines
* error codes
* update and comment
* unit tests for pyth.move, add UpgradeCap to Pyth State (will be used for contract upgrades)
* updates
* test_get_update_fee test passes
* fix test_get_update_fee and test_update_price_feeds_corrupt_vaa
* test_update_price_feeds_invalid_data_source
* test_create_and_update_price_feeds
* test_create_and_update_price_feeds_success and test_create_and_update_price_feeds_price_info_object_not_found_failure
* test_update_cache
* update
* test_update_cache_old_update
* update_price_feeds_if_fresh
* comment
* contract upgrades start
* contract upgradeability
* update clock stuff
* edits
* use clone of sui/integration_v2 for stability
* make contract_upgrade::execute a public(friend) fun, remove clock arg
* E_INCORRECT_IDENTIFIER_LENGTH
* comment and edit
* add a single comment
This PR adds the support WormholeMerkle accumulator message to the ethereum contract while still supporting the old message format. The code is not optimized yet and with more optimizations we can achieve a better gas usage. Currently based on the gas benchmark below it has a 18% improvement with a single price feed. Although the cost of updating 5 feeds in the same batch is higher than the current approach but in reality the chances that all 5 feeds be in the same batch is very low.
* state getters and setters, change Move.toml dependency to sui/integration_v2
* finish state.move
* add new line to pyth
* use deployer cap pattern for state module
* sui pyth
* update price feeds, dynamic object fields, Sui object PriceInfoObject
* register price info object with pyth state after creation
* sui governance
* some newlines
* error codes
* update and comment
* unit tests for pyth.move, add UpgradeCap to Pyth State (will be used for contract upgrades)
* updates
* test_get_update_fee test passes
* fix test_get_update_fee and test_update_price_feeds_corrupt_vaa
* test_update_price_feeds_invalid_data_source
* test_create_and_update_price_feeds
* test_create_and_update_price_feeds_success and test_create_and_update_price_feeds_price_info_object_not_found_failure
* test_update_cache
* update
* test_update_cache_old_update
* update_price_feeds_if_fresh
* comment
* state getters and setters, change Move.toml dependency to sui/integration_v2
* finish state.move
* add new line to pyth
* use deployer cap pattern for state module
* sui pyth
* update price feeds, dynamic object fields, Sui object PriceInfoObject
* register price info object with pyth state after creation
* sui governance
* some newlines
* error codes
* update and comment
* state getters and setters, change Move.toml dependency to sui/integration_v2
* finish state.move
* add new line to pyth
* use deployer cap pattern for state module
* sui pyth
* update price feeds, dynamic object fields, Sui object PriceInfoObject
* register price info object with pyth state after creation
* sui governance
* some newlines
* [eth] Add Canto mainnet
This deployment also enables contract rewards on canto. Since the
changed code is only specific to the Canto network and is used only
in initialization, only the diff is added as a file.
* Remove ds store
* Add some doc to deploying.md
* state getters and setters, change Move.toml dependency to sui/integration_v2
* finish state.move
* add new line to pyth
* use deployer cap pattern for state module
* sui pyth
* update price feeds, dynamic object fields, Sui object PriceInfoObject
* register price info object with pyth state after creation
* PriceFeedUpdateEvent
* state getters and setters, change Move.toml dependency to sui/integration_v2
* finish state.move
* add new line to pyth
* use deployer cap pattern for state module
* indent
* A working version of solana receiver
* Cleanup
* Minor
* Commit for triggering tilt
* Add program key starting with pyth
* Remove duplicated hard-coded wormhole address
* Add check for VAA magic number and emmitter is Pythnet or Solana
* Cleaner command for building the cli package
* Fix bug and use BatchPriceAttestation for deserialization
* minor
* update process_batch_attestation
* add type to Response
* add injective's support
* add cfg feature
* compilation feature flag
* change price status to pyth status
* update README
* update injective's struct
This change upgrades our wormhole dependency to the current latest
release. It introduces a fix in rent calculation logic, making Solitaire compatible with
PythNet. This lets us get rid of dedicated rent adjustment logic,
which we also remove in this change.
* Start to implement the solana receiver contract
* Use "cargo run" instead of the compiled binary under target/debug
* Update cargo dependency
* Add "pyth-" prefix to crate names
* Remove the transfer step in cli which is only necessary for pythnet, not solana
* [ethereum] Update truffle config
hdwallet package was updated in the PR bringing lerna to this repo.
In the new package the constructor arguments have changed. This PR updates that and adds a helper function to make the config more clear.
* Update truffle-config.js
* stuff
* make this look better
* improving ux
* basic functionality works
* clean up appearance
* 3 seconds
* clean up code a bit
* blah
* change website title and favicon and fix useEffect warning
* actually change website title and fix useEffect warning
* update metadata
* trigger deployment
---------
Co-authored-by: Daniel Chew <cctdaniel@outlook.com>
* Move lerna to the top
* Set version to independent
Packages are versioned independently
* Update packages and the lock
* Add build cache and better reference
* Add lerna docker base
* Add wormhole_attester sdk and some minor impr
* Update tsconfig to fix outDir impact by composite
* Update eth package
* Update p2w to use solidity-sdk
* Change xc-admin CI to lerna CI action
* Add more packages to the list + bugfixes
* Update dockerfiles to have tilt working
* Format the code
* Fix some issues
* Fix the change of usePyth.ts
* lerna build fix
* Fix foundry