Commit Graph

27 Commits

Author SHA1 Message Date
Tom Pointon d8b927d6ce Remove unused Pyth Chain ID metadata 2022-03-24 17:33:43 +00:00
Tom Pointon bd88ce308d Update comment on time check 2022-03-24 15:52:44 +00:00
Tom Pointon 7bbbf56fdd Rename attestPriceBatch to updatePriceBatchFromVm 2022-03-24 15:43:16 +00:00
Tom Pointon 9abeaa875b Rename PythProxy to PythUpgradable 2022-03-24 12:03:03 +00:00
Tom Pointon 562cf73efe Replace PythGetters.latestPriceInfo with Pyth.queryPriceFeed in public API 2022-03-23 16:19:25 +00:00
Tom Pointon e3f1a85dbb Rename Price to PriceFeed to be consistent with SDK 2022-03-23 16:19:25 +00:00
Tom Pointon 04c43dedd5 Fix struct field names 2022-03-23 16:19:25 +00:00
Tom Pointon 02fcec996a Make Pyth.verifyPythVM function internal 2022-03-23 16:19:25 +00:00
Tom Pointon 4a6ff5d2f3 Inline PythStorage.Provider struct 2022-03-23 16:19:25 +00:00
Tom Pointon 7623e73d6a Add tests for new proxy setup 2022-03-23 16:19:25 +00:00
Tom Pointon 829727c4b4 Add upgradable PythProxy contract 2022-03-23 16:19:25 +00:00
Tom Pointon d92208a33d Add initializer to Pyth contract 2022-03-23 16:19:25 +00:00
Tom Pointon df907fd10f Remove old mock bridge implementation 2022-03-22 17:55:35 +00:00
Tom Pointon 3f329435ef Remove now unnused initialized implementations map 2022-03-22 17:42:39 +00:00
Tom Pointon 908674ab42 Remove old PythProxy inheritance hierarchy 2022-03-22 17:42:39 +00:00
Tom Pointon d5d4778a17 Remove Pyth Implementation implementation 2022-03-21 21:49:25 +00:00
Tom Pointon d3a173a3c6 Remove now unused legacy governance state and variables 2022-03-21 21:49:25 +00:00
Tom Pointon 25af2a90a8 Remove wormhole-based governance 2022-03-21 21:49:25 +00:00
Tom Pointon 4861c1822b Remove now unnused parsePriceAttestation function 2022-03-16 17:12:11 +00:00
Tom Pointon bb0455655a Cache price updates from batch attestations 2022-03-16 10:52:06 +00:00
Tom Pointon 5a73356bb0 Cache price updates in standardised PriceInfo format 2022-03-16 10:52:06 +00:00
Tom Pointon 9e3b944bc1 Define internal PythStructs.PriceInfo struct 2022-03-16 10:52:06 +00:00
Tom Pointon d9a9a85292 Define Pyth SDK Price struct 2022-03-16 10:52:06 +00:00
Tom Pointon 48279a2bc8 Add ability to parse batch price attestations 2022-03-15 10:41:50 +00:00
Tom Pointon 261c2d796c Bring PythStructs.PriceAttestation struct in line with new API 2022-03-15 10:28:22 +00:00
Stanisław Drozd 2ea41b8176
[WIP] Pr/drozdziak1/p2w batching/5e704f8b (#877)
* ethereum: p2w contract -> p2w emitter, fill in essential envs

Change-Id: I6fa9364a96738d2cc02ec829a31fedba0586d8e8

commit-id:0a56f1f8

* Add p2w-relay, a p2w-sdk integration test

commit-id:6bfab639

* p2w-sdk: Expand README

Change-Id: I17cb547d6aaddc240588923561c26d11a787df2e

commit-id:6ebd6a22

* p2w-sdk: don't build ETH contracts, only the types

Change-Id: I7cbd18328227700635d7688aa24a9671e8919fcd

commit-id:adf079f7

* p2w: configurability and sane envs

commit-id:f10fd90e

* Solitaire: Implement Option<T> support in structs

commit-id:31aa12d6

* bridge/governance.rs: Stop pestering about EMITTER_ADDRESS

commit-id:d5bd7234

* p2w-attest: price batching

This commit introduces support for multiple Pyth product/price pairs
per call. The initial maximum batch size is 5 and is enforced using a
`P2W_MAX_BATCH_SIZE` constant.

solana/pyth2wormhole/program:
* On-chain batching logic
* Batch message parsing logic

solana/pyth2wormhole/client:
* Off-chain batching logic - divides any number of symbols into
largest possible batches
* Use a multi-symbol config file instead of CLI arguments

third_party/pyth/p2w-sdk:
* Expose batch parsing logic

third_party/pyth/p2w-relay:
* Comment out target chain calls until ETH contract supports batching
* Test the batch parsing function

third_party/pyth/p2w_autoattest.py:
* Generate and use the symbol config file  with pyth2wormhole-client

third_party/pyth/pyth_publisher.py:
* Add a configurable number of mock Pyth symbols
* Adjust HTTP endpoint for multiple symbols

commit-id:73787a61

* p2w-attest: mention attestation size in batch

This commit ensures that no matter the attestation format, a batch
will never contain attestations of different sizes. This guarantee
enables forward compatibility by adding new constant-size fields at
the end of a batch at all times. An older implementation will simply
not consume the remaining newer values while respecting the stated
batch member alignment.

commit-id:210da230

* pyth2wormhole-client: use fresh blockhashes, harden batch errors

This commit makes sure we don't have to deal with expired transactions
due to stale blockhashes. The problem existed with larger symbol
configs as well as on Solana mainnet. Additionally, the attestation logic
now treats transaction errors as non-critical - a failure for a batch
does not prevent attestation attempts for batches farther in the queue

commit-id:5e704f8b
2022-02-23 19:12:16 +01:00
valentin 7e2cf1f981 pyth data bridge target chain module for EVM
Change-Id: Ieaeed6374e72a5348e05c40bd25598b74061a9a0
2021-09-16 13:46:51 +00:00