Go to file
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
.github specify dependabot dirs 2022-02-19 08:06:35 -05:00
.run
audits audits: add neodyme audit 2022-02-02 13:45:29 -05:00
bridge_ui feat: improve bridge_ui tilt 2022-02-14 07:56:38 -05:00
clients Add stronger nonce/confidence parsing (#865) 2022-02-18 08:43:09 -05:00
dashboards
devnet [WIP] Pr/drozdziak1/p2w batching/5e704f8b (#877) 2022-02-23 19:12:16 +01:00
docs Fix a typo in operations.md 2022-02-10 14:51:02 -05:00
e2e Add experimental e2e browser fixture 2021-12-13 15:38:17 +01:00
ethereum [WIP] Pr/drozdziak1/p2w batching/5e704f8b (#877) 2022-02-23 19:12:16 +01:00
event_database terra/nft_bridge: Implement nft-bridge for terra (#698) 2022-01-07 16:47:33 +01:00
examples terra: fix messenger builds for sdk 2022-01-14 14:55:40 -05:00
explorer update Buidl copy 2022-02-02 13:57:52 -05:00
explorer_data BigTable: misc code cleanup and log improvements 2021-12-20 16:56:56 +01:00
lp_ui lp_ui: update examples and lp_ui for latest sdk 2021-11-22 22:13:06 -05:00
node node/hack/repair_terra re-observation (#871) 2022-02-21 17:43:40 -05:00
proto node: add fantom support 2022-02-15 13:51:11 -05:00
scripts Bump Go to 1.17.5 2021-12-13 15:38:17 +01:00
sdk feat: improve bridge_ui tilt 2022-02-14 07:56:38 -05:00
solana [WIP] Pr/drozdziak1/p2w batching/5e704f8b (#877) 2022-02-23 19:12:16 +01:00
spydk/js feat: improve bridge_ui tilt 2022-02-14 07:56:38 -05:00
staging/algorand staging/algorand: apply global Apache 2 license 2022-02-05 09:30:28 -05:00
terra *: bump pyth-client to 0.2.2 (#873) 2022-02-18 00:01:13 -06:00
testing feat: improve bridge_ui tilt 2022-02-14 07:56:38 -05:00
third_party [WIP] Pr/drozdziak1/p2w batching/5e704f8b (#877) 2022-02-23 19:12:16 +01:00
tilt_modules
tools tools: remove pack 2021-12-16 18:29:09 +01:00
whitepapers terra/nft_bridge: Implement nft-bridge for terra (#698) 2022-01-07 16:47:33 +01:00
.dockerignore pyth2wormhole: build + deploy program into local devnet 2021-09-09 14:39:31 +02:00
.gitignore Pricecaster V2-alpha (#716) 2022-01-21 08:37:49 -06:00
.spr.yml Add .spr.yml config 2021-12-13 15:38:17 +01:00
CONTRIBUTING.md Undocument Gerrit 2021-12-13 15:38:17 +01:00
DEVELOP.md node: implement observation requests via gossip 2022-01-26 13:00:23 +01:00
Dockerfile.client solana: compile wasm and contracts with --locked (#874) 2022-02-18 12:48:10 +01:00
Dockerfile.lint Use stable Buildkit syntax 2021-12-13 15:38:17 +01:00
Dockerfile.proto Explorer v2 (#789) 2022-02-01 09:40:53 -06:00
Dockerfile.teal Stub out algorand support in wormhole (#611) 2021-12-22 11:22:04 -05:00
ImmuneFi bug-bounty.md Update the bug bounty to $10m 2022-02-11 19:33:42 -05:00
LICENSE staging/algorand: apply global Apache 2 license 2022-02-05 09:30:28 -05:00
Makefile Makefile: clean up existing "bridge" directories 2021-09-13 17:51:47 +00:00
README.md
Tiltfile [WIP] Pr/drozdziak1/p2w batching/5e704f8b (#877) 2022-02-23 19:12:16 +01:00
buf.gen.web.yaml Explorer v2 (#789) 2022-02-01 09:40:53 -06:00
buf.gen.yaml node: rename bridge/ to node/ 2021-08-26 11:36:36 +02:00
buf.lock
buf.yaml node: add spy service 2021-12-03 02:01:56 +01:00
generate-abi.sh node: rename bridge/ to node/ 2021-08-26 11:36:36 +02:00
lint.sh Port CI to Github Actions 2021-12-13 15:38:17 +01:00

README.md

Wormhole v2

This repository contains Certus One's reference node implementation for the Wormhole project.

See DEVELOP.md for instructions on how to set up a local devnet, and CONTRIBUTING.md for instructions on how to contribute to this project.

See docs/operations.md for node operator instructions.

Wormhole v2 is in active development - see "main" branch for the v1 mainnet version

Audit / Feature Status

This software is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. Or plainly spoken - this is a very complex piece of software which targets a bleeding-edge, experimental smart contract runtime. Mistakes happen, and no matter how hard you try and whether you pay someone to audit it, it may eat your tokens, set your printer on fire or startle your cat. Cryptocurrencies are a high-risk investment, no matter how fancy.