Commit Graph

128 Commits

Author SHA1 Message Date
Ali Behjati 862aa604df
Change websocket to json socket to support bsc testnet + improves env vars (#139)
* Change websocket to json socket to support bsc testnet + imporving env vars
2022-03-30 12:13:54 +02:00
Stan Drozd b1b964d326 p2w-evm-relay: make feed verification queries configurable 2022-03-25 21:10:33 +01:00
Stan Drozd 00c736d912 Merge remote-tracking branch 'origin/dev.v2' into drozdziak1/p2w-evm-relay
# Conflicts:
#	third_party/pyth/p2w-relay/Dockerfile.pyth_relay
#	third_party/pyth/p2w-relay/src/relay/terra.ts
2022-03-25 20:55:04 +01:00
Ali Behjati aaa44adef1
Make terra relayer more resillient (#120)
- Increase retry attempts (4 to 6) and retry_delay (250ms to 1s) to be more resillient
  - This is because when account sequence mismatch happens it might take some time be fixed
- Removed estimate fee because it's being done in wallet.createAndSignTx (less requests)
- Improved logging on when error happens
2022-03-25 17:53:42 +01:00
Stan Drozd 7860073c2d p2w-evm-relay: Fix wrong EVM contract ID, add a check for it
This commit takes care of an outdated pyth2wormhole EVM contract
address and implements a contract/non-contract check using
web3.eth.getCode() (empty for non-contracts).

This problem cost us several hours of debugging and resulted from an
EVM gotcha - a contract call to a non-contract address will simply
ignore the call payload and make a plain transfer. Additionally, ETH
accounts don't have a notion of initialization - used and unused
addresses are equally valid tx recipients. Resulting from both
properties, any unused address could potentially yield wrongly
successful calls, wasting funds and debug time over p2w-relay. Thus
the heuristic to protect us from this is to see if the address' code
storage is populated.

commit-id:b655a720
2022-03-25 15:01:47 +01:00
Stan Drozd cf04759132 p2w-evm-relay.yaml: typo 2: electric boogaloo
commit-id:40892265
2022-03-24 16:12:53 +01:00
Stan Drozd ea5fe5e887 p2w-evm-relay.yaml: typo
commit-id:35c87c79
2022-03-24 15:47:56 +01:00
Stan Drozd b9f73589d6 p2w-terra-relay -> p2w-relay, split EVM relay into new service
commit-id:36d0db6e
2022-03-24 15:04:54 +01:00
Stan Drozd c961410b5d Merge remote-tracking branch 'origin/dev.v2' into drozdziak1/p2w-evm-relay
commit-id:5f393900
2022-03-24 14:48:01 +01:00
Stan Drozd fb5d97d835 p2w-evm-relay: Backport the proxy address change from debug session
commit-id:55b63ed5
2022-03-24 14:21:11 +01:00
Ali Behjati 2c37465618
Add health probe (#107) 2022-03-24 11:32:56 +01:00
Stan Drozd 4776ff30c7 p2w-terra-relay: Add a query() EVM call and Tilt boilerplate
commit-id:f97d0c16
2022-03-23 17:52:18 +01:00
Ali Behjati e4959768f4
Remove unused solana contracts and their wasm creations (#110)
Removes token bridge, nft bridge, migration. Also removes them from deployments and docs.
2022-03-23 13:29:21 +01:00
Ali Behjati a79a86ef3c
Remove unused terra contracts (#109)
- Note: Terra contract addresses are changed by this PR due to deterministic ordering.
- Removed unused nft and token bridge, and migration contracts in Terra
- Modified documentation to remove info regarding removed contracts.(docs/devnet.md)
2022-03-23 13:14:17 +01:00
Ali Behjati 80f90d66fa
Remove unused components from wormhole (#108)
* Remove unused components from wormhole

Removes the following:
- explorer
- e2e
- bridge_ui
- algorand stuff (teal dockerfile and third_party/algorand)
- ci_tests (testing directory)  which are for JS/Bridge UI
2022-03-23 13:02:58 +01:00
Ali Behjati f07a223977
Remove dependency to wormhole sdk as path and cleanup wrong eth copies (#104) 2022-03-23 10:00:09 +01:00
Ali Behjati 2efc93eba6
Support Batch Price attestation for terra relay (#75)
* Support Batch Price attestation for terra relay
2022-03-11 16:47:20 +01:00
Eran Davidovich 2d82183a06 convert P2W_EXIT_ON_ERROR to "true" 2022-03-10 21:07:27 +02:00
Eran Davidovich 5b9160a951 add tilt p2w-attest P2W_EXIT_ON_ERROR 2022-03-10 20:11:40 +02: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
Jeff Schroeder b54b7e1183 node: add fantom support
Only run in testnet until the contracts are deployed to mainnet.
2022-02-15 13:51:11 -05:00
Evan Gray fd62d71f61 feat: tilt labels
fix: terra dependencies
2022-02-14 07:56:38 -05:00
Evan Gray 075defa634 feat: improve bridge_ui tilt
properly cache npm ci in Docker container image
support hotloading outside ci
2022-02-14 07:56:38 -05:00
Evan Gray bb1402367c fix: terra-contracts readiness 2022-02-14 07:56:38 -05:00
lbqds 91af50ee5d Fix devnet terra lcd host 2022-02-09 12:07:38 -05:00
chase-45 28c713a6dd
Tilt tests (#688)
* tests run in tilt / ci

* changed bridge_ui test process

* tests use kube proxy when in ci

* fix: allTests.sh permission

* fix: bridge_ui dockerfile sha for amd64

* fix: bridge_ui should use cra test

* fix: ci tests

Co-authored-by: Evan Gray <battledingo@gmail.com>
2022-02-08 03:55:10 -05:00
jumpsiegel f90ed66ca0
Stub out algorand support in wormhole (#611)
* Stub out algorand support in wormhole

  1) Introduce the algorand chain constant in all the appropriate places
  2) Deploy pyth/hernandc algorand smart contracts into devnet
  3) Fund all the correct contracts for devnet testing

Change-Id: I6e4402b5b21223b32ea89653f8c7606f5c7f2843

* pr/jsiegel/algorand-v1: ALGORAND is not a EVM chain @ gusc1a-ossdev-jsl1

* pr/jsiegel/algorand-v1: fix lint @ gusc1a-ossdev-jsl1

* pr/jsiegel/algorand-v1: put the requirements into the image @ gusc1a-ossdev-jsl1

* jsiegel/algorand: make the watcher hang forever @ gusc1a-ossdev-jsl1

* jsiegel/algorand: comment these out @ gusc1a-ossdev-jsl1

* jsiegel/algorand: put this back in @ gusc1a-ossdev-jsl1

* jsiegel/algorand: fix guardian example @ gusc1a-ossdev-jsl1

* Generate teal source code

commit-id:a537a109

* jsiegel/algorand: it builds @ gusc1a-ossdev-jsl1

* pr/jsiegel/algorand-v1: add Dockerfile.teal @ gusc1a-ossdev-jsl1

* jsiegel/algorand: improve the dependencies @ gusc1a-ossdev-jsl1

* pr/jsiegel/algorand-v1: Fix up build @ gusc1a-ossdev-jsl1

* dead file

* pr/jsiegel/algorand-v1: remove more stuff @ gusc1a-ossdev-jsl1

* pr/jsiegel/algorand-v1: fix build @ gusc1a-ossdev-jsl1

* pr/jsiegel/algorand-v1: freeze the requirements @ gusc1a-ossdev-jsl1

* pr/jsiegel/algorand-v1: Fix teal to use pipenv @ gusc1a-ossdev-jsl1

* pr/jsiegel/algorand-v1: fix miss-merge @ gusc1a-ossdev-jsl1

Co-authored-by: Leo <leo@certus.one>
2021-12-22 11:22:04 -05:00
Leo 3c1ee3bdc3 node: add oasis support
commit-id:31eeeb35
2021-12-20 20:57:11 +01:00
justinschuldt 8931153f7e BigTable: PubSub trigger after decoding payload
Change-Id: Ie46903be7d41c27778babbeb864f3e4adf001825

commit-id:cee21010
2021-12-20 16:56:56 +01:00
justinschuldt f23afd88c0 BigTable: column families for secondary data
Change-Id: I3d9514b21b7cd95ed16c65a2bd3c2e951ae36802

commit-id:5c9a7e93
2021-12-20 16:56:56 +01:00
justinschuldt 024ced81d9 PubSub infra for bigtable data enrichment
Change-Id: Ide08774960ad7e9dee04090bc990be49357c79a2

commit-id:928fad6e
2021-12-20 16:56:56 +01:00
Leo 537d56b37a devnet: avalanche fix
commit-id:3ab70784
2021-12-15 00:16:18 +01:00
justinschuldt fc1e162f3b devnet: simplify cloud function setup
Change-Id: I931501aa5162569785cb078a546dc44a3741de08

commit-id:26e9ff05
2021-12-14 17:47:14 -05:00
Leo 4fef42a5a3 Add experimental e2e browser fixture
commit-id:5e9d35a3
2021-12-13 15:38:17 +01:00
Leo e4802d42d7 devnet: add algorand sandnet
As far as I can tell, both primary and node are happy. We can't use
https://github.com/algorand/sandbox since it makes too many
assumptions about its environment (docker-compose, interactive
development vs. reproducible CI usage).

Instead, use the official mainnet Docker images and ship our own config.

Caveat: "goal network create" is not reproducible and each Docker
build will generate a new set of root keys. We can presumably avoid
this by hardcoding the output of "goal network create"
(using --noimportkeys to avoid having to vendor a SQLite DB.. we'd
just re-import them to kmd at runtime, which is what goal is doing
internally: f51d2d7d5a/netdeploy/networkTemplate.go (L131))

Change-Id: I8c99c6150c9c244c9f12b68a58184c2d5697cee8
2021-12-09 11:54:17 +00:00
Chase Moran 05425a96df examples: native swap
Change-Id: Ia7bf98bac2b4a0daa5541f09a9c9e4b1e2d56bba

examples: rest_relayer, add support for all chains

Change-Id: Idbcf48f4c891383e16a9f1f460d6e02aa3149a48
2021-12-08 14:51:19 +00:00
Leo bc48b1b51d node: add spy service
Change-Id: Ieb04e6d26c7778d8a8afbbeaee79d764d9f2cd31
2021-12-03 02:01:56 +01:00
Stan Drozd 05edb3d14f pyth2wormhole: rename p2w-client service to p2w-attest
Change-Id: I34a53146919c12ab41b958cc8cd57108ee509faa
2021-11-15 15:22:29 +00:00
Evan Gray 71e6fa7f6f bridge_ui: fix testnet build and tilt
Change-Id: Iee2e07e1d85b0da14826ce280833be15d28b62ca
2021-11-05 19:52:43 +00:00
justinschuldt a956e570fb run bridge_ui in devnet
Change-Id: Id48de471bffda421a6ae70d15c66e7c5477fc1d1
2021-10-27 21:16:07 +00:00
Leo c64576cc0b node: add Polygon support
Change-Id: Ia919861879eb6c831d4dd9ccbe1748e7123502e5
2021-10-21 10:11:21 +00:00
justinschuldt 71dbe80aae BigTable historical queries
- Add Cloud Functions:
  - "Recent" gap list, can filter and/or group by chain or address.
  - "Totals" counts 24h, 30d, rolling daily. can filter and group.
  - "Transaction" lookup row by chain-native transaction identifier.

- Pad sequence in rowkey to fixed length, for sequential row order.

- Add Cloud Function deploy instructions.

- Fix #410 Buildpack image cleanup

Change-Id: Ifa3110a3d58e2f94adb48ccb451c27ab3add0611
2021-10-13 16:20:10 +00:00
Evan Gray 4bdb714594 bridge_ui: support multiple evm bridges
Change-Id: I3c416955e3e01707eec29404a483b1c223bffef4
2021-10-06 16:10:40 +00:00
Leo 3ad6ad2cdd devnet: fix grpc-web Tilt route and remove envoy
Change-Id: I8fd49b32b7b0d8ad9724b920d59e64024c183faa
2021-10-06 12:41:58 +02:00
Leo 3738d010c7 node: bump dlv for Go 1.17 compat and expose it via Tilt
Drive-by fix Tiltfile formatting.

Change-Id: I4455db1a5dd8096beae586e119fee119e61a09ba
2021-10-06 12:41:58 +02:00
Reisen 2163f420c9 terra/devnet: update to bombay network
Change-Id: I2169adc1b0df9103b10dc50ba6e7470e38ad8fe9
2021-10-04 16:41:31 +00:00
Leo bd5f957e1b node: remove unused terraChainID command line flag
Change-Id: I5f02faa3f00098725e7242c289f65978c4879c3c
2021-10-03 21:03:43 +02:00
Hendrik Hofstadt 18f3262b89 Add second eth devnet to emulate bsc
Change-Id: Ia28078cdd843540bc6d5d2a3db4787637c752245
2021-09-30 15:00:27 +00:00
Leo ef0cb91ac6 Tiltfile: optional pyth and explorer deployment
This adds the explorer and Pyth as optional components to improve
Tilt startup times, as originally suggested by Justin.

Defaults to true in CI.

Change-Id: Id9fffe5b11311baadc042815c0cc747de037554e
2021-09-13 17:51:47 +00:00
Hendrik Hofstadt 88933d13e2 Build token migration program
Change-Id: I78b10931fb09f5bca457c1fb36095fdbcea9e65f
2021-09-13 14:01:16 +00:00