* More documentation on the upgrade procedure and mainnet init
* Add profiling utility for aptos
* Reuse contract manager logic to sync guardian sets
* Add documentation for sui gas profiling
* 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>
* 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
* 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
* 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
* Add evm contract infos + minor improvements
* Throw error if chainId is invalid instead of using 0 silently
* Add wormholeChainName property for chains to use in governance actions
* Return all signatures upon proposal execution
* Unify privateKey schema for contract manager
* Implement getLastExecutedGovernanceSequence for all contract types
* Unify getPriceFeed interface between contracts
* Add update price feed for evm
* Adjust gasPrice on evm
* Add setter for datasources + add global chain for universal governance instructions
* Add utility function to execute arbitrary governance Vaa
* Remove redundant contract
* Better error message when gas is not enough on deployment
* Add aptos mainnet config
* Restore sui override of setFee governance message generation
* Export executeVaa function
* Address PR feedbacks
* More documentation and cleanup
* Remove INFURA_KEY logic and replace RPC endpoints with public ones
* EVMContract -> EvmContract, EVMChain -> EvmChain
* Make executeUpdatePriceFeed interface on cosmos similar to evm
* Better error message and more comment regarding gas
* Replace xc-governance-sdk with xc_admin_common package
xc_admin_package was not using the CHAIN overrides declared in the governance-sdk so it was moved
to that package as well
* Replace xc-governance-sdk with xc_admin_common in other packages
* Remove the package and all of its references
* Fix tests
* Fix bug in GovernanceDataSourceTransfer encoding
* Rename all references to the old package
* Redeploy neutron_testnet contract with new chain id
* Move SetWormholeAddress to separate file
* Initial version of governance sdk
* Add more functionality to Sui contract manager and migrate variable naming to camelCase
* Refactor sui functions
* Add prettier
* Add SuiAuthorizeUpgradeContractInstruction for governance
* Update cosmwasm deploy tools entry point and expose some classes
* Remove console.logs from CosmWasm
* Refactor storage logic and add sui docs
* Use relative path for default path of store
* More documentation and minor fixes
* Rename package
* Add EVM classes
* Implement getters for data sources
* Use Google naming convention for abbreviations
More info here:
https://google.github.io/styleguide/tsguide.html#identifiers-abbreviations
* Change package license
* More comments and documentation
* Store code proxy function in CosmWasm
* upgrade script for Pyth, so far getting the dependencies and digest works
* upgrade_pyth
* made progress: works up until verify_vaa
* delete some comments
* upgrade almost works, on last step now
* comments
* edit
* upgrade process pretty much works (we got an IncompatibleUpgrade error)
* fix bug in pyth migrate process (handle_migrate threw error because take_digest was destroying non-empty cursor and not removing prefix bytes)
* comments and toml file
* revert change to Move.lock file
* remove migrate__v__0_1_1
* prettier
* move test accumulator message details to above the definition
* camel case to snake case
* deserialize and check header inside of parse_and_verify_accumulator_message
* factor out cleanup / destruction function for worm / pyth states and clock
* take_wormhole_and_pyth_states to simplify 9 tests
* get_balance for price_info_object
* Store fees as dynamic fields
* Rename functions and modules back to the published version to remain bacward compatible
* Remove withdrawal functionality for now
This functionality can always be added via contract upgrades
---------
Co-authored-by: optke3 <optke3@gmail.com>
Co-authored-by: optke3 <108488464+optke3@users.noreply.github.com>
* move test accumulator message details to above the definition
* camel case to snake case
* deserialize and check header inside of parse_and_verify_accumulator_message
* factor out cleanup / destruction function for worm / pyth states and clock
* take_wormhole_and_pyth_states to simplify 9 tests
* update
* Simplify some tests and add more
---------
Co-authored-by: optke3 <optke3@gmail.com>
Co-authored-by: Amin Moghaddam <amin@amins-mbp.tail922f3.ts.net>
* move test accumulator message details to above the definition
* camel case to snake case
* deserialize and check header inside of parse_and_verify_accumulator_message
* factor out cleanup / destruction function for worm / pyth states and clock
* take_wormhole_and_pyth_states to simplify 9 tests
* update
* merkle tree impl
* - take leftmost 20 bytes in hash
- don't assign output of cursor::take_rest to _, instead just drop it
* push PREFIXes (MERKLE_LEAF_PREFIX, MERKLE_NODE_PREFIX) to front instead of back
* delete testXOR
* test construct merkle tree depth exceeded error
* invalid merkle proof test cases
* comments
* rename failure tests
* simplification for initializing a vector
* fix leafHash bug, add tests for hashLeaf and hashNode
* pyth accumulator start, extract_price_info_from_merkle_proof, parse_price_feed_message
* parse_price_feed_message, parse_and_verify_accumulator_updates
* implementation + debugging for merkle pyth accumulator
* edit merkle tree
* testNodehash
* test hash
* delete prints
* test case for parse and verify TEST_ACCUMULATOR_3_MSGS
* hot potato vector -> authenticated price infos
* refactor - move tests from pyth_accumulator to pyth to avoid dependency cycle
* remove _ from deserializing unused vaa
* add sui-contract.yml for github actions
* AuthenticatedPriceInfos -> AuthenticatedVector
* charge base update fee per call to update_single_price_feed
* add back multiple tests, including test_create_and_update_price_feeds_insufficient_fee, update cache, update cache old update
* test multiple price feed creation and update accumulator
* authenticated_price_infos.move -> authenticated_vector.move
* 5 * single_update_fee
* delete some comments, add accumulator test info
* don't make TEST_VAAS test_only in pyth.move
* remove #[test_only]s
* assert price info object contains correct price feed info
* factor out some constants from accumulator test cases to reduce duplicate code
* add sui-contract.yml file for github actions CI
* more refactor and clean-up
* assert price_info_object_1 is correct in test_create_and_update_price_feeds_with_batch_attestation_success
* removed the parse_and_verify_accumulator_message_with_worm_state entirely, and instead added the helper parse_vaa_bytes_from_accumulator_message
* edit comment
* update comment
* edit sui github ci
* fix for sui-contract.yml
* MINIMUM_SUPPORTED_MINOR_VERSION and MAJOR_VERSION
* remove test_get_price_feed_updates_from_accumulator and parse_vaa_bytes_from_accumulator_message from pyth_accumulator.move
* test_parse_and_verify_accumulator_updates_with_extra_bytes_at_end_of_message
* sui contract yml update
* use rev to cargo install sui in github actions ci
* cargo install --locked for github CI
* merkle tree impl
* - take leftmost 20 bytes in hash
- don't assign output of cursor::take_rest to _, instead just drop it
* push PREFIXes (MERKLE_LEAF_PREFIX, MERKLE_NODE_PREFIX) to front instead of back
* delete testXOR
* test construct merkle tree depth exceeded error
* invalid merkle proof test cases
* comments
* rename failure tests
* simplification for initializing a vector
* fix leafHash bug, add tests for hashLeaf and hashNode
* Pin dependency versions
* Implement accumulator support on aptos
* Fix formatting on error.move in aptos
* Add CI workflow for aptos
* Upgrade to aptos cli 1.0.4
* feat(eth): optimize ReceiverMessages parseAndVerifyVM
* test(eth): update test setups to use wormholeReceiver
* chore(eth): remove console logging
* feat(eth): optimize & revert return type for parseAndVerifyVM
* fix(eth): add index boundary checks
* perf(eth): optimize verifySignature by passing in primitives instead of structs
* test(eth): add wormhole tests related to guardian set validity
* test(eth): add more parseAndVerify failure test cases
* test(eth): add more failure tests for parseAndVerify
* test(eth): add empty forge test, refactor/deduplicate
The structure of the fake payload was not as expected.
Some tests were failing for the wrong reason but with the right error code.
Added one testcase to make sure the default behavior of the forging function
is correct.
* Add more tests for update_fee_amount
Restructure code to split parsing and updating logic so that all
messages can be parsed without being applied
* Fix docker build command for cosmwasm contract
* Refactor is_fee_sufficient tests
Extract out the chain specific part into separate function
Merge test_accumulator_is_fee_sufficient back into is_fee_sufficient
* Rename function and simplify process_batch_attestation tests
* 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
* hot potato stuff
* create_price_infos_hot_potato and update_single_price_feed
* don't create hot potato in batch price attestation
* latest only checks in Pyth.move
* delete tab
* edit
* run pre-commit hooks
* update price feeds script
* update_single_price_feed_logic, give hot potato contents type T copy and drop ability
* delete custom price attestation test
* get update multiple price feeds POC to work
* formatting via pre-commit
* update Move.toml so can run "sui move test", delete some error codes that were unused
* update update_price_feeds demo to auto-retrieve price info object ids
* update readme
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* don't print map, get prices after update
* script comments
* Update update_price_feeds.ts
* Update update_price_feeds.ts
* Update README.md
* script for token transfers
* testnet "mainnet simulation" deployment (with 19 mainnet guardians), and testnet deployment (with single testnet guardian)
* mainnet deploy
* update Move.toml
* Update README.md
* Update README.md
* edit readme
* Update README.md
* Update README.md
* Update README.md
* add PRICE_INFO_OBJECT map ID to README
* common questions
* edit comment
* update readme
* fix link
* add comments for update_single_price_feed
* edits
* Update README.md
* Update README.md
* Update README.md
* pre-commit run --all-files
* 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