Commit Graph

412 Commits

Author SHA1 Message Date
Amin Moghaddam d0ceb076d8
[evm] Persist price updates if more recent (#1208)
* Persist price info if it is more recent in parse functions

* Refactor setLatestPrice to include checks and event in a single place

* Add test cases
2024-01-09 10:30:20 +01:00
guibescos a94194184b
[solana] Reuse accounts (#1216)
* Reuse accounts

* add comment
2024-01-08 20:08:55 +00:00
guibescos 0ce4c4c8fe
Fix it (#1215) 2024-01-08 20:04:31 +00:00
guibescos e388281dc0
[solana] Fix guardian set owner bug (#1214)
* Fix the owner bug

* Remove seeds in context
2024-01-08 19:58:28 +00:00
guibescos c1cc7127c2
Use official wormhole, introducing VerificationLevel (#1212)
* Do it

* Do it

* Cleanup deps

* Delete this
2024-01-08 19:03:30 +00:00
guibescos 3458dd5b7d
[solana] Post update atomic (#1210)
* Post update atomic

* Checkpoint cli

* Fix bug

* Atomic

* Cleanup

* Cleanup

* Cleanup

* Cleanup

* Comment

* Add wormhole errors

* refactor trim signatures
2024-01-08 14:27:03 +00:00
Dev Kalra 2d5e030149
[executor] call contract with value (#1206)
* call contract with value

* address feedback
2024-01-08 17:29:32 +05:30
Dev Kalra 220e06a62d
test owner upgradable (#1207) 2024-01-07 17:31:34 +05:30
guibescos 1778871b8b
[solana] Post price with 13 signature verifications in 2 transactions (#1209)
* Rebalance transactions so you can post an update in two transactions

* Remove magic number

* Cleanup

* Cleanup

* Add comment
2024-01-05 17:41:35 +00:00
Dev Kalra 1816838c8a
[executor] implement upgradability (#1198)
* get all test to work

* executor upgradable

* update comments

* address feedback

* fix tests
2024-01-04 15:59:29 +05:30
Amin Moghaddam e1606a42b5
Add Base sepolia + some minor improvements (#1202)
* Add base sepolia

* Fix broken rpc urls

* Small fix
2024-01-03 11:30:17 +01:00
Dev Kalra 6463f1a98f
fix check an active request (#1200) 2023-12-21 15:50:47 +05:30
Dev Kalra 3565ee627e
point entropy sdk docs to pyth docs for current deployments (#1199) 2023-12-21 15:26:26 +05:30
Ali Behjati 4f7c5e9dcd chore(target_chains/ethereum): update testnet contract addresses 2023-12-19 10:47:49 +01:00
guibescos 6f3dd5cd10
[solana-reciever] update docs (#1192)
* Docs

* Fix

* Do it

* Address feedback
2023-12-18 21:56:02 +07:00
Amin Moghaddam 51d23a2f52
chore(eth) Add zksync-sepolia (#1190) 2023-12-18 10:29:59 +01:00
guibescos a60279a2cc
[solana-receiver] Post price update (#1189)
* Do it

* Remove keypairs

* add check comment

* Works

* Cleanup deps

* Next

* Add better docs
2023-12-18 11:46:45 +07:00
guibescos 4aa60453bd
[solana-receiver] Initialize receiver from CLI (#1191)
* Initialize

* Update address

* cleanup
2023-12-18 11:08:08 +07:00
guibescos 0a86414523
[pythnet-sdk] Fix CI. Make dependency path. (#1188)
* Update status

* Lfg
2023-12-16 02:21:11 +07:00
Dev Kalra 3ecbca7daa
[fortuna] update config and abi (#1187)
* update config and abi

* introduce sepolia later

* update sdk readme

* fix lightlink issue

* update link
2023-12-15 17:30:38 +05:30
guibescos 7bf41c40e6
[solana-receiver-cli] Add logic to receive VAAs with the new Wormhole receiver (#1184)
* Checkpoint

* Checkpoint

* Cleanup

* More cleanup

* Cleanup

* Should work

* Rename

* New receiver post-vaa

* Rename legacy

* Checkpoint

* ADd compute units

* Revert htis file

* Rename

* Comments
2023-12-15 10:33:17 +07:00
guibescos f78301d019
[pyth-solana-receiver-cli] Initialize solana wormhole receiver (#1180)
* Checkpoint

* Checkpoint

* Checkpoint

* Cleanup

* More cleanup

* Cleanup

* Cleanup

* Should work

* reorder

* Send it

* Rename

* Add comment
2023-12-15 02:21:02 +07:00
Dev Kalra 5d951ee755
[entropy] audit 4. users can influence the Entropy revealed result (#1179)
* add a check for blockhash

* add comment

* update test name

* comment update

* change block number

* change order for assertions

* pre commit run

* names and comments
2023-12-14 17:57:45 +05:30
Dev Kalra 654c1eae89
add zero value check (#1181) 2023-12-14 17:54:43 +05:30
guibescos 9875bc2ba4
feat(target-chains/solana): Implement governance for the solana pull oracle (#1175)
* Do it

* Go

* Address some feedback

* Update size of config
2023-12-14 19:11:34 +07:00
Dev Kalra f0c67c5996
[entropy] audit: 3. two step transfer (#1178)
* two step owner transfer

* admin two step transfer

* remove redundant test
2023-12-13 16:45:07 +05:30
Dev Kalra 941ee777f0
[entropy] audit - 2. lack of contract existence check (#1177)
* contract existence check

* better comment
2023-12-13 16:42:21 +05:30
Amin Moghaddam 8adac4344f
chore(eth) Add bttc (#1172)
* chore(eth) Add bttc
2023-12-08 22:56:16 +08:00
Reisen 214bafa420 near: internal feedback 2023-12-07 17:40:18 +00:00
Reisen 415ca4f9b1 near: add vaa verify to claim, also fixes private 2023-12-07 17:40:18 +00:00
Reisen bd24d4d42c near: address both refund logic issues 2023-12-07 17:40:18 +00:00
Reisen f3dce0e316 near: make codehash safe for repeat upgrades, document 2023-12-07 17:40:18 +00:00
Reisen 177b5af94b near: use Seconds alias to document units, fix calc 2023-12-07 17:40:18 +00:00
Reisen 5b7ada59bd fix(near): sdk compat 2.0 2023-12-07 17:40:18 +00:00
Ali Behjati bbd3d1add3 chore(target_chains/eth): revert solidity version
This change reverts the solidity version to 0.8.4 as the current version
troubles the Pyth price feeds contract deployment. Some tests are
changed to use the methods available in the older version.

Also, the Pyth contract version is updated. This is because we made a
change to the Governance structs (to add Stacks) that results in a new
bytecode.
2023-12-06 17:42:42 +03:30
Reisen 7b3055460e fix(near): match Price interface from pyth-sdk 2023-12-05 10:12:39 +00:00
Jayant Krishnamurthy c592fd36ca
[fortuna] Add confirmation delay before responding (#1161)
* Update abi

* fix tests

* update contract

* fix fortuna

* test confirmation delay

* cleanup

* fix

* split the fields

* saturating sub

* rename
2023-12-04 10:25:00 +01:00
Jayant Krishnamurthy 21a4ec8277
[entropy] Update readmes and docs (#1163)
* add some docs

* more doc edits
2023-12-03 09:14:46 -08:00
Jayant Krishnamurthy 0a2378e94c
[entropy] more executor tests (#1162) 2023-12-03 09:14:35 -08:00
Amin Moghaddam 8a98279fb2
chore(eth) deploy to mode (#1159) 2023-12-03 13:20:38 +03:30
Jayant Krishnamurthy 97bbc8cef9
add authorization for reveal method (#1156) 2023-11-30 13:28:00 -08:00
swimricky 8202181a1b
Solana receiver decode vaa accumulator (#1145)
* feat: impl postAccumulatorUpdateVaa and postUpdates and CLI test changes

* feat: clean up

* refactor: reorganize and fix tests

* refactor: clean up

* chore: add rust-toolchain for solana target contract dir

* refactor: clean up and address feedback

* refactor: make emitter chain & post vaa program configurable

* feat: remove postAccUpdateVaa and use wh post_vaa in cli

* fix: add check for emitter address, hardcode expected emitter chain/addr for now

* chore: cleanup

* chore: clean up

* feat: address feedback, move checks from context into account, use signatureset for postupdates

* feat: use pubkey and require_keys_eq! for emitter addr check

* refactor: address feedback

add documentation and todos, revert programsimulator to use upgradable bpf loader

* feat: remove signature_set account from post_updates, update docs & readme

* test: add lazy static for setting up pyth binary but still has same invalidaccountdata issue

* chore: clean up

* refactor: remove unused errors

* feat: use UncheckedAccount for posted_vaa so owner can be checked dynamically against config
2023-11-30 16:04:41 -05:00
Jayant Krishnamurthy 99be611684
[stacks] Add constants for Stacks (#1158)
* add constants for stacks

* di
2023-11-30 11:57:15 -08:00
Dev Kalra ae7610b0ab
[entropy] governance (#1154)
* governance

* correct comment

* add upgradability

* remove unused lib

* update governance and update logic

* change specifiers

* fix tests

* add tests

* rebase bug fixes

* change error name

* fix tests

* no need of UUPSProxy

* minimise the amount of code

* separate file for authorized tests

* add comment

* correct comment
2023-11-30 16:29:35 +05:30
Jayant Krishnamurthy b2e4d56d36
[entropy] Entropy gas benchmarks and optimizations (#1153)
* add gas benchmark

* fix benchmark

* fix benchmark

* fix benchmark

* optimization 1: remove provider

* move to u128 for fees

* update benchmark

* comment

* reduce commitment storage

* optimize storage more

* fix fee fields in state

* hmm

* ok

* fix

* cleanup

* this got out of hand

* test overflow conditions

* fix bad merge

* doc
2023-11-29 14:37:42 -08:00
Jayant Krishnamurthy a5646bf840
[entropy] Add a default provider (#1150)
* making a mess here

* add default provider

* cleanup

* test new abi

* add uri to fortuna

* pr comments
2023-11-27 18:40:36 -08:00
Reisen 7641f7eacf docs(near): improve example 2023-11-27 17:18:19 +00:00
Jayant Krishnamurthy b7a089b51e
[entropy] Change provider interface to simplify supporting many chains (#1149)
* grr

* cleanup

* fix semver
2023-11-27 07:39:54 -08:00
Jayant Krishnamurthy da72b6e250
[entropy] First cut at EVM executor (#1148)
* executor

* executor tests

* basic test works

* cleanup

* cleanup

* fix ci
2023-11-27 06:45:43 -08:00
Ali Behjati ff0d9fe65c
chore(eth): update mentions to evm-testnet and hermes-beta (#1151)
We have deployed new Pyth contracts on testnets using the stable
feeds and users no longer need to use hermes-beta in many networks.
This change updates the mentions to them.
2023-11-27 10:12:52 +01:00
Reisen 2b118c1f9c feat(near): parse string identifiers 2023-11-24 16:14:48 +00:00
Ali Behjati 2c93737366
chore(eth): deploy stable contracts on testnets (#1146)
* chore(eth): deploy stable contracts on testnets

* chore(eth): address feedbacks

* Add op sepolia

---------

Co-authored-by: Amin Moghaddam <amin@pyth.network>
2023-11-24 11:59:04 +01:00
Ali Behjati 9335898ece feat(contract-manager): add script to fetch account balances 2023-11-21 17:53:43 +01:00
Reisen ef02cfefe4 docs(near): add near guides 2023-11-10 17:03:20 +00:00
Jayant Krishnamurthy c0b383e277
[entropy] add arbitrum goerli (#1139) 2023-11-09 13:58:09 -08:00
Reisen 9d8c271607 feat(near): accumulators 2023-11-08 12:32:06 +00:00
Amin Moghaddam 16832aba51
chore(eth): Add tomochain (#1134) 2023-11-07 10:28:52 +01:00
Jayant Krishnamurthy 8e11d4f442
minor stuff (#1132) 2023-11-03 10:04:54 -07:00
Jayant Krishnamurthy 8c35091831
[entropy] Minor updates to parameters / docs (#1131)
* update parameters

* install instructions

* format stuff
2023-11-01 13:34:47 -07:00
Jayant Krishnamurthy 44ebfbaf55
[entropy] make the SDK public
I think I need this field to get NPM to publish this new package.
2023-11-01 12:41:39 -07:00
Jayant Krishnamurthy f36e868ef6
[entropy] Typescript code for coin flip example + docs (#1128)
* adding stuff

* add coin flip example

* it works

* docs

* hm

* pr comments
2023-11-01 10:30:04 -07:00
Jayant Krishnamurthy fe7984d132
[entropy] Rename files (#1127)
* rename stuff

* fix

* fix
2023-10-31 08:50:15 -07:00
Jayant Krishnamurthy ddbbe2af14
Entropy Solidity SDK & usage example (#1124)
* grr

* revert

* ok

* ok

* ok

* deploy script

* implement interface

* doc comments

* fix comment
2023-10-31 06:32:21 -07:00
Amin Moghaddam 8d99ac402c
chore(evm) Add more networks (#1121) 2023-10-23 11:41:07 +02:00
Jayant Krishnamurthy 4776bdcdf9
Fortuna CI workflows (#1120)
* CI and docker

* cleanup

* erc

* whoops
2023-10-20 10:49:41 -07:00
Ali Behjati efcfae3ed7 chore(eth): deploy to chiliz mainnet 2023-10-20 17:42:47 +02:00
Amin Moghaddam 8b721c38dc
Update sui packages addresses (#1115) 2023-10-20 10:57:24 +02:00
Ali Behjati 65e21997e4 chore: remove price service mentions in the repo 2023-10-19 09:25:03 +02:00
Ali Behjati 49d1a579c3 chore: cleanup repo 2023-10-18 18:32:42 +02:00
Amin Moghaddam c0057809f5
chore(evm): deploy to new networks (#1107) 2023-10-18 17:20:44 +02:00
Jayant Krishnamurthy 727f9ec33d
Initial version of random numbers contract (#1093)
* initial merkle tree cut

* initial working test

* grrr

* add this deploy script

* contract stuff

* doc

* cleanup

* cleanup

* delete janky deploy script

* first commit of random2

* randomness

* format

* wtf

* wtf

* stuff

* cleanup

* minor

* add extra field

* pr comments
2023-10-17 13:07:47 -07:00
Amin Moghaddam 4bc11b863c
chore(evm): deploy to new networks (#1104)
zetachain testnet
2023-10-17 18:15:17 +02:00
Ali Behjati ad277ec7f2 chore(evm): deploy to new networks
chiliz_spicy and scroll
2023-10-17 10:04:34 +02:00
Ali Behjati 2b51cffdc7 fix(price-service/client): remove axios version lock 2023-10-16 16:46:57 +02:00
Amin Moghaddam 6cebfef1df
[evm] Evm runs (#1099)
* Show chain id when checking proposals

* Reduce number of optimizations to 200 in order to defeat the Spurious Dragon
2023-10-13 15:45:35 +02:00
Amin Moghaddam eb9526675c
[evm] parsePriceFeed with uniqueness validation (#1089)
* Implement uniqueness
* Add tests and update abi
* Fix MockPyth for the unique version
* Bump version
* Add gas benchmark functions
2023-10-13 14:15:42 +02:00
Amin Moghaddam f5698bf509 Add optimism sepolia 2023-10-11 21:12:11 +02:00
Amin Moghaddam 0e67978aea
Add manta (#1085) 2023-10-11 11:05:05 +02:00
Amin Moghaddam f224486ae2
Aptos improvements (#1079)
* 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
2023-10-10 12:03:01 +02:00
Amin Moghaddam 17f489e629 Add boba deployment files 2023-10-09 11:04:42 +02:00
Amin Moghaddam c01a9cf056
Optimize aptos contract to verify messages only once (#1074) 2023-10-03 11:05:54 +02:00
Amin Moghaddam 061f6a028d
Fix sui js sdk and bump contract (#1071)
* Bump sui version

* Add sui cli package to lerna

* Fix bug in fetching price feed object ids after upgrade
2023-09-29 10:52:41 +02:00
Amin Moghaddam 345a6081c9
Optimize merkle tree computations gas usage by minimizing vector movements (#1069) 2023-09-28 16:47:05 +02:00
Jayant Krishnamurthy 2858d56f47
Update docs
these instructions are old
2023-09-27 06:08:00 -07:00
Amin Moghaddam a093a8f9c8
Switch from arbitrum goerli to arbitrum sepolia (#1066)
* Change canto rpc address because last one was unreachable

* Deploy on arbitrum sepolia and remove arbitrum goerli
2023-09-27 12:28:09 +02:00
Amin Moghaddam 940c2035f3
[sui-sdk] Sui sdk improvements (#1065)
* Split all coins in 1 transaction

* Use buffer library instead of built-in Buffer
2023-09-25 10:39:14 +02:00
Ali Behjati 24f582cd5a Update README.md 2023-09-22 18:28:24 +02:00
Ali Behjati 65ecd890ae feat(price-service/sdk): add prev_publish_time metadata 2023-09-22 13:30:30 +02:00
Ali Behjati d5c3090442 feat(price-service/client): add out-of-order flag support 2023-09-19 15:54:33 +02:00
Amin Moghaddam f2ca88176a
Add shimmer mainnet (#1053) 2023-09-15 18:23:12 +02:00
Amin Moghaddam 79ea43553f
Add sepolia testnet (#1051) 2023-09-13 15:53:18 +02:00
Ali Behjati a34f759061 chore(eth): deploy to horizen eon/gobi 2023-09-12 15:10:09 +02:00
Sahilgat 7cbdcb562d fix: underflow issue 2023-09-04 18:44:41 +02:00
Ali Behjati e1ae1ad1c4 fix(eth): update legacy updateFee method pricing 2023-08-31 11:51:27 +02:00
Amin Moghaddam 47c6f45128 Add addresses to evm js sdk 2023-08-28 14:40:09 +02: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 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 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
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
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
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
Mohammad Amin Khashkhashi Moghaddam 175dfef5bd
Deploy to the latest shimmer testnet (#1001) 2023-08-02 16:59:39 +01:00
Mohammad Amin Khashkhashi Moghaddam ce86586744
Make aptos abi backward compatible (#999)
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`
2023-08-02 10:48:15 +01:00
Mohammad Amin Khashkhashi Moghaddam ce66a36415
Revert aptos address change (#998) 2023-08-01 16:47:36 +01:00
Mohammad Amin Khashkhashi Moghaddam 1d5a96c35a
[aptos] New address for aptos deployments and some small improvements (#996)
* Add abi diff command and small documentation fix

* Redeploy aptos package and update the address
2023-08-01 07:36:52 +01:00
Mohammad Amin Khashkhashi Moghaddam 2782c6bf64
[aptos] Aptos cleanup (#994)
* 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
2023-07-31 11:43:58 +01:00
Mohammad Amin Khashkhashi Moghaddam 7674a3a07c
[docs] More documentation on different packages (#992)
* More documentation on different packages
2023-07-28 17:11:29 +01:00
Ali Behjati 928027a270
chore(ethereum): deploy to base and syndr_testnet (#988) 2023-07-27 16:16:45 +03:30
Mohammad Amin Khashkhashi Moghaddam 92b295bd7a
[contract-manager] Cosmwasm contracts (#986)
* 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
2023-07-27 14:36:16 +02:00
Mohammad Amin Khashkhashi Moghaddam ea37f6aab5
Add injective executor logic and contracts and getVersion utility function (#983) 2023-07-25 17:37:47 +02:00
Dev Kalra 7cd9ec7e03
[cosmwasm] bump version (#977)
* bump version

* pre commit fix
2023-07-25 18:49:31 +05:30
Mohammad Amin Khashkhashi Moghaddam 741f763375
Fix mainnet values on fuji and chiado and remove oasis network (#979) 2023-07-25 11:31:45 +03:30
Mohammad Amin Khashkhashi Moghaddam 31ad2b66a3
[contract-manager] Evm upgrades (#971)
* 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
2023-07-25 08:14:31 +02:00
Mohammad Amin Khashkhashi Moghaddam 4660026009
Remove osmosis testnet 4 as it is deprecated and we already have testnet 5 (#974) 2023-07-24 19:37:55 +09:00
Mohammad Amin Khashkhashi Moghaddam 49fbd2f121
Pin wormhole dependency in aptos to a revision which has pinned the AptosStdLib dependency (#962) 2023-07-19 08:38:37 +02:00
Ali Behjati e63490be48
[eth] Add EOS network (#963) 2023-07-18 23:00:47 +03:30
Ali Behjati dcec1e9328
[eth] Finalize accumulator contract (#960) 2023-07-18 12:57:29 +03:30
Mohammad Amin Khashkhashi Moghaddam 9bdc493ce6
Update evm chain and contract configs (#961)
Remove ropsten and shimmer_testnet network as they are deprecated
Provide neon rpc url as it is not private anymore
2023-07-18 10:36:26 +02:00
Mohammad Amin Khashkhashi Moghaddam 6f8fa11b20
Fix README.md for prettier (#959) 2023-07-17 16:42:03 +02:00
Ali Behjati c86e4f2610
[eth] Add linea (#956)
* [eth] Add linea

* Fix pre-commit
2023-07-17 17:51:22 +03:30
Mohammad Amin Khashkhashi Moghaddam c732fcf586
Abolish xc governance sdk (#957)
* 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
2023-07-17 15:24:54 +02:00
Mohammad Amin Khashkhashi Moghaddam b64090aa75
Update README.md (#958) 2023-07-17 15:23:16 +02:00
Jayant Krishnamurthy aa76c15d1c
Log sui errors (#951)
* log sui errors

* fix precommit
2023-07-13 15:41:29 -07:00
optke3 e3fe85c312
[Sui 18/x] - governance action tests (#949)
* on-chain tests for governance actions

* edit name

* edit

* remove governance data source test that is not working

* edit comment
2023-07-12 12:47:45 -04:00
Mohammad Amin Khashkhashi Moghaddam eddb789134
Restore accidentally removed file (#950) 2023-07-12 16:12:57 +02:00
Mohammad Amin Khashkhashi Moghaddam 66e5f186b2
Initial version of contract manager sdk (#943)
* 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
2023-07-12 15:50:24 +02:00
guibescos a77ee78d13
[eth] Deploy to mantle (#948)
* Deploy mantle

* Update pyth-evm-ks

* Update docs
2023-07-12 14:18:56 +01:00
Daniel Chew 8752291aa2
fix broken links (#945)
* fix broken links

* undo import order changes

* Fix more links

* Fix more broken links

* Fix more broken links

* Fix more broken links

* Fix precommit

---------

Co-authored-by: Thomaz Leite <thomaz@pyth.network>
Co-authored-by: Guillermo Bescos <g.bescos@yahoo.com>
2023-07-11 11:41:43 +01:00
Ali Behjati 2a4045504d
[eth] Add Linea goerli network (#947)
* [eth] Add Linea goerli network

* Add linea_testnet to eth/sdk/js
2023-07-11 11:15:22 +01:00
optke3 0ec7b69031
[Sui 15/x] - Pyth upgrade script + bug fix (#936)
* 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
2023-07-10 09:43:27 -04:00
optke3 2c334b6b92
[sui 16/x] - update imports (#942)
* update some script imports

* another one

* remove @optke3/sui.js from dependencies
2023-07-07 11:17:29 -04:00
Ali Behjati bef4073b54
[price-service/client] Crash by default on WsError (#934)
* [price-service/client] Crash by default on WsError

* Update docker-compose files

* Update package versions again
2023-07-07 11:43:04 +03:30
Sturdy 4f41525a2f
fix: Use generic_err constructor instead of literal (#941)
* fix: Use generic_err constructor instead of literal

* bump version

---------

Co-authored-by: Jayant Krishnamurthy <jayantkrishnamurthy@gmail.com>
2023-07-06 11:02:32 -07:00
swimricky ac97b4d35d
[eth] - Aave FallbackOracle Integration (#924)
* feat(eth): aave integration

Add IPriceOracleGetter and PythAssetRegistry mapping

* feat(eth): remove IPriceOracleGetter from PythAssetRegistryGetter

* refactor(eth): flatten PythAssetRegistySetter/Getter into PythAssetRegistry

* feat(eth): address feedback

move aave related contracts into separate directory, add explicit exponent/decimal handling, add
staleness check

* refactor(eth): minor rename to avoid shadowing

* fix(eth): handle exponent conversion and add tests

* chore(eth): remove unused console import

* feat(eth): address PR feedback

add more checks, tests & minor refactoring

* feat(eth): add more tests and address feedback
2023-07-06 08:29:08 -04:00
Ali Behjati aa0e6fdf22
[eth] Add WEMIX network (#940)
* [eth] Add WEMIX network

* Fix pre-commit

* Remove unnecessary change

* Fix prettier

---------

Co-authored-by: Guillermo Bescos <g.bescos@yahoo.com>
2023-07-05 18:15:43 +01:00
Mohammad Amin Khashkhashi Moghaddam 14fd210a16
[sui] More documentation on sui (#938) 2023-07-04 15:24:38 +02:00
Mohammad Amin Khashkhashi Moghaddam 9d2d673d01
[WIP] Finalize SUI contracts and make it backward compatible (#935)
* 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>
2023-07-04 09:40:32 +02:00
Mohammad Amin Khashkhashi Moghaddam 3170e3fc92
[sui] Simplify some tests and add more (#933)
* 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>
2023-07-03 14:45:22 +02:00
optke3 fb1a35af76
[sui 12/x] - updates to pyth accumulator and merkle tree (#926)
* 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
2023-06-30 12:02:38 -05:00
optke3 5e064b0a30
[sui 14/x] - PyCharm Move linter (#928)
* linting stuff

* more linting

* more linting
2023-06-30 12:02:20 -05:00
Mohammad Amin Khashkhashi Moghaddam e5fd5a9d81
[target_chains] Add deployment information for neutron mainnet (#930)
* Deploy pyth cosmwasm 1.2.0 contract to neutron mainnet
2023-06-30 14:33:25 +02:00
Ryu 5e44fa4c95
[price_service] js client: getPriceFeed() (#922)
* [price_service] js client: getPriceFeed()

* Fix pre-commit

* Bump package versions

---------

Co-authored-by: Ali Behjati <bahjatia@gmail.com>
2023-06-28 18:28:37 +02:00
optke3 a7383a3648
[sui 11/x] - pyth merkle accumulator (#910)
* 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
2023-06-28 10:09:50 -05:00
optke3 382a6fc9a4
[sui 10/x] - merkle tree (#903)
* 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
2023-06-26 12:05:06 -05:00
Mohammad Amin Khashkhashi Moghaddam ee6a744a33
Fix test by increasing major version instead of minor version (#921)
SDK now allows minor version updates, so the test was not failing anymore
as expected
2023-06-26 12:31:06 +02:00
Ali Behjati e39277dd9c
[eth] Add setWormholeAddress governance message (#917)
* [eth] Add setWormholeAddress governance message

* Address review feedbacks

* Add signatures to errors

This will help with debugging

* Update abi
2023-06-26 11:31:19 +02:00
Mohammad Amin Khashkhashi Moghaddam fb6672fbfb
Aptos accumulators (#904)
* 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
2023-06-23 11:27:25 +01:00
swimricky 919f71e68f
[eth] - optimize ReceiverMessages parseAndVerifyVM (#901)
* 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
2023-06-22 14:11:54 -04:00
Ali Behjati d07cc9d1ea
[hermes] Add storage tests + refactor (#907)
* [hermes] Add storage tests + refactor

* Bump pythnet_sdk version + update cosmwasm

* Address review feedbacks
2023-06-22 14:38:56 +01:00
Mohammad Amin Khashkhashi Moghaddam c9c20310d3
Add slot variable in constructing fake wormhole payloads (#908)
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.
2023-06-22 10:26:34 +01:00
Mohammad Amin Khashkhashi Moghaddam ef963cdfc6
Cosmwasm refactor and preparation for parse price feeds (#895)
* 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
2023-06-22 09:49:05 +01:00
optke3 f3edf9c971
[sui 9/x] - hot potato fix for price updates (#805)
* 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
2023-06-20 00:04:01 -04:00
optke3 f34c9df224
[sui 8/x] - finalize contracts, deploy scripts, address audit feedback (#783)
* 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
2023-06-19 23:05:33 -04:00
Ali Behjati 11a0ba17d0
[eth] Deploy to gnosis mainnet (#892) 2023-06-15 20:58:39 +02:00
Jayant Krishnamurthy 25c1ac2c33
[xc-admin] Contract management tool (#885)
* cleanup

* blah

* gr

* stuff

* hm

* hmm

* wtf

* ah fix this

* ok finally it does something

* ok

* hrm

* hrm

* blah

* blah
2023-06-15 07:17:20 -07:00
swimricky 44cd5fc42d
[eth] more update/parsePriceFeed optimizations (#886)
* 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>
2023-06-14 09:20:52 -04:00
swimricky bc338ccfb5
[eth]: add forward compatibility test for accumulator updateData (#884)
* test(ethereum): add forward compatibility test for accumulator data

* test(ethereum): fix typo and rename
2023-06-13 11:02:41 -07:00
swimricky 19b77e2c84
[ethereum] - charge updateFee per number of updates (#878)
* 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
2023-06-13 07:25:46 -07:00
Mohammad Amin Khashkhashi Moghaddam 211bf02450
Implement accumulator updates for cosmwasm (#880)
* 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
2023-06-13 12:59:29 +02:00
Ali Behjati 183081cc20
Expose pythnet message buffer idls (#865) 2023-06-09 14:10:28 +02:00
swimricky 31e8d020cc
[eth] - optimize parse/updatePriceFeeds for gas & bytesize (#868)
* perf: optimize parse/updatePriceFeeds for gas & bytesize

* chore: cleanup

* refactor: renaming functions

* test: add benchmark tests for parse with wh merkle, clean up duplicate code
2023-06-08 13:49:21 -07:00
swimricky 9ddc7fdc7d
Ethereum/parse price feed updates accumulators (#855)
* feat(target-chains/ethereum): add accumulator support for parsePriceFeedUpdates

* feat(target-chains/ethereum): working impl & test of parsePriceFeedUpdates w/ accumulator data

* refactor(target-contracts/ethereum): refactor pyth accumulator

* refactor: remove console logs & imports

* refactor(target-chain/eth): refactor and more tests

* feat(target-chains/ethereum): address PR feedback

refactor, add parse revert tests

* chore: fix comment

* test(target-chains/ethereum): add/clean up tests

* test: add another test

* test: address more feedback
2023-06-07 12:44:47 -07:00
Ali Behjati bdc3fede24
[eth] Deploy to Kava (#859)
* [eth] Deploy to Kava

* [eth] Bump sdk/js package version

* [eth] Fix pre-commit
2023-06-07 15:29:03 +02:00
Jayant Krishnamurthy 925f606550
Fix oracle swap example and add docs (#856) 2023-06-03 07:39:00 -07:00
guibescos 11cb14ca76
Deploy neon (#854)
* Push

* Add config

* Sync up optimization for hardhat and truffle
2023-06-02 11:29:35 +01:00
Jayant Krishnamurthy 64bce66383
Choose unique VAA for query time if it exists (#853)
* hmm this way works but is complicated

* choose unique vaa

* update tests

* lint

* bump versions
2023-06-01 07:32:10 -07:00
Dev Kalra afecda7881
sei mainnet deployment (#851) 2023-05-30 13:11:03 +05:30
Daniel Chew 6cdcf4dffd
make cosmwasm deploy tools private (#850) 2023-05-29 21:25:42 +09:00
Daniel Chew f99f23c416
update price service sdk (#849)
* 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
2023-05-29 20:18:29 +09:00
Dev Kalra c0956f8157
[cosmwasm] contracts test and updates (#839)
* contracts test and updates

* wormhole deployment

* sei contract details update
2023-05-26 14:24:40 +05:30
Ali Behjati 4072520006
[eth] Update accumulator deserialization (#838) 2023-05-24 16:05:17 +02:00
Dev Kalra 315fd413a8
[cosmwasm] osmosis mainnet deployment (#833)
* correct lable

* osmosis mainnet deploymnent
2023-05-24 17:39:23 +05:30
Jayant Krishnamurthy 01b54d2c58
Add PythErrors abi (#827)
* add error abis

* add to script too
2023-05-23 07:13:01 -07:00
Dev Kalra fbcb8a14f6
[cosmwasm] chain ids for pyth mainnet, pyth testnet stable, and pyth testnet edge feeds (#822)
* add chainids

* chain ids

* wormhole, instantiate, and test

* update chain structure

* update test script

* update chain id guidelines

* if brackets

* correct test arguments
2023-05-23 11:16:50 +05:30
Dev Kalra 3b03f9eddc
[cosmwasm] instantiate contracts on multiple chains (#799)
* instantiate contracts on multiple chains

* deploy to neurtron

* function not being used anymore

* rename file dir

* better logs

* wormhole guardian upgrade

* set default wormhole contract

* add all to stages to one file

* add extended chain config

* bug fix

* juno deployment

* removed unused parameter

* resolve bug add comments

* typo

* rename to vaa mainnet

* comment

* remove T

* hardcode checksum

* update download method comment

* update package-lock

* update package-json
2023-05-16 13:13:43 +05:30
Ali Behjati 1dbc592836
[eth] Fix oracle-swap example frontend bugs (#813)
* [eth] Fix oracle-swap example frontend bugs

* [eth] Fix build warnings

* remove test

* add passWithNoTests to amm example

---------

Co-authored-by: Daniel Chew <cctdaniel@outlook.com>
2023-05-11 12:53:50 +02:00
guibescos 71bab7a9fd
[evm] Make comment match the function below (#804)
* Make comment match the function below

* Fix precommit
2023-05-05 12:49:14 -05:00
Ali Behjati 1d59e9052b
[tilt] Fix issues (#801) 2023-05-05 15:31:57 +02:00
optke3 b609b17fdf
[sui 7/x] - contract upgrades, version control (#762)
* 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
2023-05-03 12:29:29 -04:00
Dev Kalra 079828f8ac
Wormhole stub (#789)
* add

* add sei to wormhole chains

* add wormhole code to the repo

* add lib to gitignore

* cosmwasm bug fix

* add tmp to gitignore

* no need for simulation

* add wormhole deployment stuff

* better comments

* resolve build errors

* trying a fix

* fix

* rename compiled code

* address feedback

* remove gitignore

* sei deployment

* complete sentences

* address comments
2023-05-03 20:48:00 +05:30
Ali Behjati f94dceb1bc
[eth] Add Pyth Accumulator (#776)
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.
2023-05-03 16:08:53 +02:00
guibescos 71632fa848
[docs] improve oracle amm (#791)
* Add address to Polygon clontract and cleanup

* Add url

* Typo

* Typo

* Improve writing

* Add comma

* Fix precommit

* Revert package-lock.json
2023-05-02 09:41:50 -05:00
optke3 d8c69a63d0
[sui 6/x] - Pyth unit tests (#757)
* 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
2023-04-30 15:46:09 -04:00
optke3 f541ffa698
[sui 5/x] - Sui clock, error codes, fee computation (#740)
* 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
2023-04-30 15:39:02 -04:00
optke3 2bbeb03ca9
[sui 4/x] - governance modules, update to sui `0.29.0` (#732)
* 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
2023-04-28 15:28:09 -04:00
guibescos 3e5600508b
Fix axios bug by downgrading, bump all dependents (#786) 2023-04-28 10:19:40 -05:00
Dev Kalra 259f0124f1
[cosmwasm] wormhole stub (#770)
* docker file to build wormhole contracts

* move to wormhole stub

* add comment

* update readme
2023-04-20 16:22:06 +05:30
Dev Kalra ec65d3ca81
[cosmwasm] osmosis release (#767)
* update contract version

* update script to build for osmosis

* update pyth sdk cw version

* update release pipeline

* fix pipeline
2023-04-17 18:25:09 +05:30
Dev Kalra 15060d6a5e
[cosmwasm] Osmosis multiple fee token support (#763)
* osmosis txfee supoort

* add get update fee for denom

* query for tx fee support

* add fee checker

* add comment

* implement osmosis code

* correct err response

* fix bugs

* cargo update

* disable rust feature

* return bool instead of result

* add wormhole comment

* tests added

* address feedback

* improve comments

* cargo update
2023-04-14 12:19:57 +05:30