2020-10-31 04:42:18 -07:00
|
|
|
# This Tiltfile contains the deployment and build config for the Wormhole devnet.
|
|
|
|
#
|
|
|
|
# We use Buildkit cache mounts and careful layering to avoid unnecessary rebuilds - almost
|
|
|
|
# all source code changes result in small, incremental rebuilds. Dockerfiles are written such
|
|
|
|
# that, for example, changing the contract source code won't cause Solana itself to be rebuilt.
|
|
|
|
#
|
|
|
|
|
2021-07-20 13:33:47 -07:00
|
|
|
load("ext://namespace", "namespace_create", "namespace_inject")
|
2021-08-22 12:52:48 -07:00
|
|
|
load("ext://secret", "secret_yaml_generic")
|
|
|
|
|
|
|
|
allow_k8s_contexts("ci")
|
|
|
|
|
|
|
|
# Disable telemetry by default
|
|
|
|
analytics_settings(False)
|
2020-12-05 07:32:37 -08:00
|
|
|
|
2022-02-13 18:47:38 -08:00
|
|
|
# Moar updates (default is 3)
|
|
|
|
update_settings(max_parallel_updates=10)
|
|
|
|
|
2020-12-05 07:32:37 -08:00
|
|
|
# Runtime configuration
|
2021-08-22 12:52:48 -07:00
|
|
|
config.define_bool("ci", False, "We are running in CI")
|
2021-12-08 08:40:05 -08:00
|
|
|
config.define_bool("manual", False, "Set TRIGGER_MODE_MANUAL by default")
|
2020-12-05 07:32:37 -08:00
|
|
|
|
2020-08-19 05:23:00 -07:00
|
|
|
config.define_string("num", False, "Number of guardian nodes to run")
|
2020-12-05 07:32:37 -08:00
|
|
|
|
|
|
|
# You do not usually need to set this argument - this argument is for debugging only. If you do use a different
|
2021-07-21 10:04:04 -07:00
|
|
|
# namespace, note that the "wormhole" namespace is hardcoded in tests and don't forget specifying the argument
|
2020-12-05 07:32:37 -08:00
|
|
|
# when running "tilt down".
|
|
|
|
#
|
|
|
|
config.define_string("namespace", False, "Kubernetes namespace to use")
|
|
|
|
|
2021-08-23 23:01:00 -07:00
|
|
|
# These arguments will enable writing Guardian events to a cloud BigTable instance.
|
|
|
|
# Writing to a cloud BigTable is optional. These arguments are not required to run the devnet.
|
2021-07-07 02:39:48 -07:00
|
|
|
config.define_string("gcpProject", False, "GCP project ID for BigTable persistence")
|
|
|
|
config.define_string("bigTableKeyPath", False, "Path to BigTable json key file")
|
|
|
|
|
2021-12-02 08:41:33 -08:00
|
|
|
# When running Tilt on a server, this can be used to set the public hostname Tilt runs on
|
|
|
|
# for service links in the UI to work.
|
|
|
|
config.define_string("webHost", False, "Public hostname for port forwards")
|
|
|
|
|
2021-09-13 06:38:20 -07:00
|
|
|
# Components
|
|
|
|
config.define_bool("pyth", False, "Enable Pyth-to-Wormhole component")
|
|
|
|
|
2020-08-19 05:23:00 -07:00
|
|
|
cfg = config.parse()
|
2021-09-13 10:39:32 -07:00
|
|
|
num_guardians = int(cfg.get("num", "1"))
|
2020-12-05 07:32:37 -08:00
|
|
|
namespace = cfg.get("namespace", "wormhole")
|
2021-08-23 23:01:00 -07:00
|
|
|
gcpProject = cfg.get("gcpProject", "local-dev")
|
|
|
|
bigTableKeyPath = cfg.get("bigTableKeyPath", "./event_database/devnet_key.json")
|
2021-12-02 08:41:33 -08:00
|
|
|
webHost = cfg.get("webHost", "localhost")
|
2021-08-22 12:52:48 -07:00
|
|
|
ci = cfg.get("ci", False)
|
2020-12-05 07:32:37 -08:00
|
|
|
|
2022-02-11 20:01:11 -08:00
|
|
|
|
2021-12-08 08:40:05 -08:00
|
|
|
if cfg.get("manual", False):
|
|
|
|
trigger_mode = TRIGGER_MODE_MANUAL
|
|
|
|
else:
|
|
|
|
trigger_mode = TRIGGER_MODE_AUTO
|
|
|
|
|
2020-12-05 07:32:37 -08:00
|
|
|
# namespace
|
|
|
|
|
2021-08-22 12:52:48 -07:00
|
|
|
if not ci:
|
|
|
|
namespace_create(namespace)
|
2020-12-05 07:32:37 -08:00
|
|
|
|
|
|
|
def k8s_yaml_with_ns(objects):
|
|
|
|
return k8s_yaml(namespace_inject(objects, namespace))
|
2020-08-19 05:23:00 -07:00
|
|
|
|
2021-08-26 03:56:10 -07:00
|
|
|
# wasm
|
|
|
|
|
|
|
|
local_resource(
|
|
|
|
name = "wasm-gen",
|
2023-01-04 05:46:42 -08:00
|
|
|
cmd = "tilt docker build -- -f tilt-devnet/docker-images/Dockerfile.wasm -o type=local,dest=. .",
|
2021-08-26 03:56:10 -07:00
|
|
|
env = {"DOCKER_BUILDKIT": "1"},
|
2023-01-04 05:46:42 -08:00
|
|
|
deps = "./wormhole-attester",
|
Merge Dev.v2 into main (#181)
* Move js sdk on p2w-sdk to js folder
Also modifies other dependencies to correct path
* Reversed removal of wasm build for nodejs
* Add newline to a file
* pyth2wormhole: Fix attestation validation bug
commit-id:567942d7
* Add p2w sdk
It uses Pyth clients structs and cleans some of definitions for Pyth2Wormhole structures.
* Add emitter type and add wasm function for it
- It requires solitaire and it requires nightly rust
- No logic is applied, code is from p2w solana contract. (Eventually will be removed from there)
* Add new line
* Move WASM gen docker to root
It is because wasm is going to be used for p2w-sdk too.
* Fix unchanged cache mount paths
* Move terra relayer into the repo
* Update readme
* p2w-client: Add lib target, make helpers into lib functions there
commit-id:3aeb9ee6
* pyth2wormhole-client: Implement retries
commit-id:462677a2
* Make p2w-sdk js use p2w-sdk rust wasm bindings (#65)
* Make p2w-sdk js use p2w-sdk rust wasm bindings (instead of solana contract bindings)
- Removes `wasm.rs` in solana contract too.
* p2w attester contract use p2w-sdk (#68)
* Make solana pyth2wormhole contract to use the sdk
* Use threadpool to set up price symbols (#69)
* Add solana feature flag for p2w sdk (#71)
* Pyth bridge terra contract support batch attestation + use p2w sdk (#72)
* Make terra contract to use pyth2wormhole-sdk and support batch attestation
* Update packages + code format
* Move terra dockerfile out to support third-party dependency
* pyth2wormhole-client: Add polling-based concurrent tx confirmation
commit-id:5d16d035
* chore: p2w spy guarding improve Dockerfile
* fix: p2w_autoattest don't die after initialization
also minimal formatting
* add P2W_EXIT_ON_ERROR
* set P2W_EXIT_ON_ERROR default to True
* Remove bool test
* hopefully this time.
* add tilt p2w-attest P2W_EXIT_ON_ERROR
* convert P2W_EXIT_ON_ERROR to "true"
* Fix pyth test publisher (#76)
* Fix test pyth publisher to actually publish price
- Uses newer pyth images and removes existing hacks for old versions. It essentially makes dockers cleaner.
- Also improve some adds in dockers to cache more efficiently
* Support Batch Price attestation for terra relay (#75)
* Support Batch Price attestation for terra relay
* Abehjati/update p2w sdk to pyth sdk (#83)
* Make p2w-sdk use pyth-sdk
* Correct test values to reflect .env.test
* update p2w sdk to use ema instead of twa (#84)
* Rename twa to ema in terra relay (#85)
* Bring PythStructs.PriceAttestation struct in line with new API
* Add ability to parse batch price attestations
* Pyth terra remove wormhole governance (#87)
* Pyth in terra: remove wormhole governance
* [WIP] p2w-relay-iface: Add NPM package with relayer interface PoC
commit-id:efcb9b34
* Define Pyth SDK Price struct
* Define internal PythStructs.PriceInfo struct
* Cache price updates in standardised PriceInfo format
* Cache price updates from batch attestations
* p2w-relay-iface -> p2w-relay-terra/src/relay/iface.ts
commit-id:ed9846e3
* p2w relay interface: remove config from Relay iface
commit-id:0359d886
* Remove now unnused parsePriceAttestation function
* Pyth terra bridge: add contract deployment script (#88)
* Add pyth deployment script
- Also updates build.sh to build pyth completely
- Add a readme for deployment guide
* Add test for partial update behaviour
* update p2w sdk to new pyth (#91)
* p2w-sdk/rust use pyth sdk solana v2
* Dockerfile.client: solana 1.8.1 -> 1.9.4
commit-id:643299d3
* p2w-terra-relay: ignore lib and node, own project dir in docker
commit-id:b084bc40
* p2w-terra-relay: iface.ts review nits, naive impl for Terra
commit-id:0ecbfdd6
* Terra contract public api (#79)
* Use pyth-sdk in terra contract
* Update terra contract according to agreed API
- Also adds v2 suffix to price_info key because this migration is breaking.
* p2w-terra-relay: apply review nits
commit-id:aec39c85
* p2w-terra-relay: make worker.ts generic w.r.t. Relay interface
commit-id:5937a08c
* terra.ts: add missing return statement
commit-id:ba0365e6
* Update worket to handle timeout in callback correctly (#97)
* Remove wormhole-based governance
* Remove now unused legacy governance state and variables
* Remove Pyth Implementation implementation
* p2w-terra-relay: run formatter
commit-id:df311e23
* p2w-terra-relay: apply review nits
commit-id:5034b061
* Run formatter to trigger CI
commit-id:7c643d79
* p2w-terra-relay: EVM boilerplate
commit-id:8ad73ded
* Remove old PythProxy inheritance hierarchy
* Remove now unnused initialized implementations map
* Remove old mock bridge implementation
* Remove dependency to wormhole sdk as path and cleanup wrong eth copies (#104)
* Dockerfile.pyth_relay: Fix lockfile issue in ethereum
This commit fixes a lockfile issue resulting from newer NPM in our
container.
Specifically, our Dockerfile is pinned, relaxes Ethereum's
lockfile (npm ci -> npm install) and hardens our lockfile (npm install
-> npm ci)
commit-id:3381c8ec
* p2w-terra-relay: Admit loss against mkdir -p
commit-id:3abdb58d
* 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
* 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)
* Remove unused solana contracts and their wasm creations (#110)
Removes token bridge, nft bridge, migration. Also removes them from deployments and docs.
* Add fee estimate for terra relay (#112)
* Removes directores which are not related to p2w (#111)
Removes
- audits
- dashboards (dashboard is removed from Tilt)
- event_database (all of it's dependencies are removed from Tilt and it's not for p2w)
- lp_ui: a project (pressumably liquidity pool) not related to p2w
- sdk: wormhole sdk, p2w depends on it's npm package and there is no dependency to rust one
- spydk: it's not anywhere in p2w
- staging/algorand: these are for alrogrand which is not used in p2w
- whitepapers: these are for wormhole
* Add and update openzeppelin packages
* Add initializer to Pyth contract
* Add upgradable PythProxy contract
* Update tests to work with new proxy setup
* Update migrate script to work with new proxy setup
* Add tests for new proxy setup
* Inline PythStorage.Provider struct
* Make Pyth.verifyPythVM function internal
* Fix struct field names
* Rename Price to PriceFeed to be consistent with SDK
* Replace PythGetters.latestPriceInfo with Pyth.queryPriceFeed in public API
* p2w-terra-relay: Add a query() EVM call and Tilt boilerplate
commit-id:f97d0c16
* Clarify test comments
* Add health probe (#107)
* Rename PythProxy to PythUpgradable
* p2w-evm-relay: Backport the proxy address change from debug session
commit-id:55b63ed5
* p2w-terra-relay -> p2w-relay, split EVM relay into new service
commit-id:36d0db6e
* Tiltfile: typo
commit-id:3bbba986
* p2w-evm-relay.yaml: typo
commit-id:35c87c79
* p2w-evm-relay.yaml: typo 2: electric boogaloo
commit-id:40892265
* Add build folder to dockerignore
* Rename attestPriceBatch to updatePriceBatchFromVm
* Update comment on time check
* Trigger Build
* Tiltfile: Fix port forwards for p2w-evm-relay
commit-id:6e5e9c14
* p2w-relay: PythImplementation -> PythUpgradable
commit-id:bfea7eb5
* Remove unused Pyth Chain ID metadata
* Add the query() call
commit-id:02966ce5
* p2w-terra-relay: Fix evm.ts after contract rename
commit-id:87381bec
* Make truffle migrations directory configurable
* 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
* p2w-relay: Also implement the contract check in EVM relay()
commit-id:e28709e5
* evm.ts: Fix wording in changed/unchanged logs
commit-id:13c81625
* 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
* Update dockerfile to chown less files (#121)
* Update dockerfile to chown sooner
* p2w-relay: review nits
* p2w-evm-relay: make feed verification queries configurable
* p2w-relay: cache wormhole import
* p2w-relay: formatter, remove getcode() from relay(), add comments
commit-id:1a65c52c
* p2w-relay: typos and leftovers
commit-id:9b523b25
* 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
* Add unit test to Pyth Terra Contract (#123)
* Add unit test to the terra contract
- Refactors the code into multiple functions to make unit testing easier
- Adds build and test of terra contract to CI according to #73
* p2w-relay: harden exception handling, yell about uncaught stuff
commit-id:24e14835
* p2w-relay: Correct outdated comment
commit-id:d0b57d33
* p2w-evm-relay: s/async (e)/(e)/
commit-id:11b3a474
* Modify proto docker and tiltfile to stop creating unnecessary files (#144)
* Remove sdk/spydk from wasm and remove buf gen web yaml (#145)
* Remove wormhole contract from wasm generation (#160)
* pyth2wormhole: Add num_publishers to libraries and contracts
commit-id:f7263eed
* pyth2wormhole: add max_num_publishers to cross-chain metadata
commit-id:7550fa50
* Move p2w relayer parsing to p2w sdk js (#162)
* Move Price Attestation parsing logic to the sdk
* pyth2wormhole: Add contract testing boilerplate for attest()
commit-id:51949fbe
* Create p2w-api base (from p2w-relay) (#142)
* Create p2w-api base (from p2w-relay)
* Refactor project structure
* Rename p2w to pyth price service (#166)
* Abehjati/price-service-add-rest-layer (#167)
* Add rest api for latest vaa
Co-authored-by: Stan Drozd <stan@nexantic.com>
Co-authored-by: Eran Davidovich <edavidovich@jumptrading.com>
Co-authored-by: Eran Davidovich <erancx@users.noreply.github.com>
Co-authored-by: Tom Pointon <tom@teepeestudios.net>
Co-authored-by: Stan Drozd <drozdziak1@gmail.com>
2022-04-11 09:15:20 -07:00
|
|
|
labels = ["wasm"],
|
2022-02-13 18:47:38 -08:00
|
|
|
allow_parallel=True,
|
2021-12-08 08:40:05 -08:00
|
|
|
trigger_mode = trigger_mode,
|
2021-07-21 10:04:04 -07:00
|
|
|
)
|
|
|
|
|
2021-08-30 07:19:00 -07:00
|
|
|
def build_node_yaml():
|
2023-01-04 05:46:42 -08:00
|
|
|
node_yaml = read_yaml_stream("tilt-devnet/k8s/node.yaml")
|
2020-08-19 05:23:00 -07:00
|
|
|
|
2021-08-30 07:19:00 -07:00
|
|
|
for obj in node_yaml:
|
2020-08-20 09:56:35 -07:00
|
|
|
if obj["kind"] == "StatefulSet" and obj["metadata"]["name"] == "guardian":
|
|
|
|
obj["spec"]["replicas"] = num_guardians
|
|
|
|
container = obj["spec"]["template"]["spec"]["containers"][0]
|
|
|
|
if container["name"] != "guardiand":
|
2020-08-19 05:23:00 -07:00
|
|
|
fail("container 0 is not guardiand")
|
2020-10-28 14:41:38 -07:00
|
|
|
container["command"] += ["--devNumGuardians", str(num_guardians)]
|
2021-09-13 06:38:20 -07:00
|
|
|
|
2021-08-30 07:19:00 -07:00
|
|
|
return encode_yaml_stream(node_yaml)
|
2020-08-19 05:23:00 -07:00
|
|
|
|
2021-08-30 07:19:00 -07:00
|
|
|
k8s_yaml_with_ns(build_node_yaml())
|
2020-08-15 13:14:24 -07:00
|
|
|
|
2021-12-08 08:40:05 -08:00
|
|
|
k8s_resource(
|
|
|
|
"guardian",
|
2022-05-20 03:43:31 -07:00
|
|
|
resource_deps = ["eth-devnet", "eth-devnet2", "terra-terrad", "solana-devnet"],
|
2021-12-08 08:40:05 -08:00
|
|
|
port_forwards = [
|
|
|
|
port_forward(6060, name = "Debug/Status Server [:6060]", host = webHost),
|
|
|
|
port_forward(7070, name = "Public gRPC [:7070]", host = webHost),
|
|
|
|
port_forward(7071, name = "Public REST [:7071]", host = webHost),
|
|
|
|
port_forward(2345, name = "Debugger [:2345]", host = webHost),
|
|
|
|
],
|
2022-02-13 12:26:07 -08:00
|
|
|
labels = ["guardian"],
|
2021-12-08 08:40:05 -08:00
|
|
|
trigger_mode = trigger_mode,
|
|
|
|
)
|
2020-08-15 13:14:24 -07:00
|
|
|
|
2021-12-02 16:02:32 -08:00
|
|
|
# spy
|
2023-01-04 05:46:42 -08:00
|
|
|
k8s_yaml_with_ns("tilt-devnet/k8s/spy.yaml")
|
2021-12-02 16:02:32 -08:00
|
|
|
|
2021-12-08 08:40:05 -08:00
|
|
|
k8s_resource(
|
|
|
|
"spy",
|
2022-05-20 03:43:31 -07:00
|
|
|
resource_deps = ["guardian"],
|
2021-12-08 08:40:05 -08:00
|
|
|
port_forwards = [
|
|
|
|
port_forward(6061, container_port = 6060, name = "Debug/Status Server [:6061]", host = webHost),
|
|
|
|
port_forward(7072, name = "Spy gRPC [:7072]", host = webHost),
|
|
|
|
],
|
2022-02-13 12:26:07 -08:00
|
|
|
labels = ["guardian"],
|
2021-12-08 08:40:05 -08:00
|
|
|
trigger_mode = trigger_mode,
|
|
|
|
)
|
2021-12-02 16:02:32 -08:00
|
|
|
|
2021-07-20 13:39:32 -07:00
|
|
|
# solana client cli (used for devnet setup)
|
2020-08-15 13:14:24 -07:00
|
|
|
|
|
|
|
docker_build(
|
2021-08-04 04:46:07 -07:00
|
|
|
ref = "bridge-client",
|
2021-07-20 13:33:47 -07:00
|
|
|
context = ".",
|
2023-01-04 05:46:42 -08:00
|
|
|
dockerfile = "tilt-devnet/docker-images/Dockerfile.client",
|
2020-08-15 13:14:24 -07:00
|
|
|
)
|
2020-08-15 14:54:44 -07:00
|
|
|
|
2020-08-20 09:56:26 -07:00
|
|
|
# solana smart contract
|
|
|
|
|
|
|
|
docker_build(
|
|
|
|
ref = "solana-contract",
|
Merge Dev.v2 into main (#181)
* Move js sdk on p2w-sdk to js folder
Also modifies other dependencies to correct path
* Reversed removal of wasm build for nodejs
* Add newline to a file
* pyth2wormhole: Fix attestation validation bug
commit-id:567942d7
* Add p2w sdk
It uses Pyth clients structs and cleans some of definitions for Pyth2Wormhole structures.
* Add emitter type and add wasm function for it
- It requires solitaire and it requires nightly rust
- No logic is applied, code is from p2w solana contract. (Eventually will be removed from there)
* Add new line
* Move WASM gen docker to root
It is because wasm is going to be used for p2w-sdk too.
* Fix unchanged cache mount paths
* Move terra relayer into the repo
* Update readme
* p2w-client: Add lib target, make helpers into lib functions there
commit-id:3aeb9ee6
* pyth2wormhole-client: Implement retries
commit-id:462677a2
* Make p2w-sdk js use p2w-sdk rust wasm bindings (#65)
* Make p2w-sdk js use p2w-sdk rust wasm bindings (instead of solana contract bindings)
- Removes `wasm.rs` in solana contract too.
* p2w attester contract use p2w-sdk (#68)
* Make solana pyth2wormhole contract to use the sdk
* Use threadpool to set up price symbols (#69)
* Add solana feature flag for p2w sdk (#71)
* Pyth bridge terra contract support batch attestation + use p2w sdk (#72)
* Make terra contract to use pyth2wormhole-sdk and support batch attestation
* Update packages + code format
* Move terra dockerfile out to support third-party dependency
* pyth2wormhole-client: Add polling-based concurrent tx confirmation
commit-id:5d16d035
* chore: p2w spy guarding improve Dockerfile
* fix: p2w_autoattest don't die after initialization
also minimal formatting
* add P2W_EXIT_ON_ERROR
* set P2W_EXIT_ON_ERROR default to True
* Remove bool test
* hopefully this time.
* add tilt p2w-attest P2W_EXIT_ON_ERROR
* convert P2W_EXIT_ON_ERROR to "true"
* Fix pyth test publisher (#76)
* Fix test pyth publisher to actually publish price
- Uses newer pyth images and removes existing hacks for old versions. It essentially makes dockers cleaner.
- Also improve some adds in dockers to cache more efficiently
* Support Batch Price attestation for terra relay (#75)
* Support Batch Price attestation for terra relay
* Abehjati/update p2w sdk to pyth sdk (#83)
* Make p2w-sdk use pyth-sdk
* Correct test values to reflect .env.test
* update p2w sdk to use ema instead of twa (#84)
* Rename twa to ema in terra relay (#85)
* Bring PythStructs.PriceAttestation struct in line with new API
* Add ability to parse batch price attestations
* Pyth terra remove wormhole governance (#87)
* Pyth in terra: remove wormhole governance
* [WIP] p2w-relay-iface: Add NPM package with relayer interface PoC
commit-id:efcb9b34
* Define Pyth SDK Price struct
* Define internal PythStructs.PriceInfo struct
* Cache price updates in standardised PriceInfo format
* Cache price updates from batch attestations
* p2w-relay-iface -> p2w-relay-terra/src/relay/iface.ts
commit-id:ed9846e3
* p2w relay interface: remove config from Relay iface
commit-id:0359d886
* Remove now unnused parsePriceAttestation function
* Pyth terra bridge: add contract deployment script (#88)
* Add pyth deployment script
- Also updates build.sh to build pyth completely
- Add a readme for deployment guide
* Add test for partial update behaviour
* update p2w sdk to new pyth (#91)
* p2w-sdk/rust use pyth sdk solana v2
* Dockerfile.client: solana 1.8.1 -> 1.9.4
commit-id:643299d3
* p2w-terra-relay: ignore lib and node, own project dir in docker
commit-id:b084bc40
* p2w-terra-relay: iface.ts review nits, naive impl for Terra
commit-id:0ecbfdd6
* Terra contract public api (#79)
* Use pyth-sdk in terra contract
* Update terra contract according to agreed API
- Also adds v2 suffix to price_info key because this migration is breaking.
* p2w-terra-relay: apply review nits
commit-id:aec39c85
* p2w-terra-relay: make worker.ts generic w.r.t. Relay interface
commit-id:5937a08c
* terra.ts: add missing return statement
commit-id:ba0365e6
* Update worket to handle timeout in callback correctly (#97)
* Remove wormhole-based governance
* Remove now unused legacy governance state and variables
* Remove Pyth Implementation implementation
* p2w-terra-relay: run formatter
commit-id:df311e23
* p2w-terra-relay: apply review nits
commit-id:5034b061
* Run formatter to trigger CI
commit-id:7c643d79
* p2w-terra-relay: EVM boilerplate
commit-id:8ad73ded
* Remove old PythProxy inheritance hierarchy
* Remove now unnused initialized implementations map
* Remove old mock bridge implementation
* Remove dependency to wormhole sdk as path and cleanup wrong eth copies (#104)
* Dockerfile.pyth_relay: Fix lockfile issue in ethereum
This commit fixes a lockfile issue resulting from newer NPM in our
container.
Specifically, our Dockerfile is pinned, relaxes Ethereum's
lockfile (npm ci -> npm install) and hardens our lockfile (npm install
-> npm ci)
commit-id:3381c8ec
* p2w-terra-relay: Admit loss against mkdir -p
commit-id:3abdb58d
* 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
* 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)
* Remove unused solana contracts and their wasm creations (#110)
Removes token bridge, nft bridge, migration. Also removes them from deployments and docs.
* Add fee estimate for terra relay (#112)
* Removes directores which are not related to p2w (#111)
Removes
- audits
- dashboards (dashboard is removed from Tilt)
- event_database (all of it's dependencies are removed from Tilt and it's not for p2w)
- lp_ui: a project (pressumably liquidity pool) not related to p2w
- sdk: wormhole sdk, p2w depends on it's npm package and there is no dependency to rust one
- spydk: it's not anywhere in p2w
- staging/algorand: these are for alrogrand which is not used in p2w
- whitepapers: these are for wormhole
* Add and update openzeppelin packages
* Add initializer to Pyth contract
* Add upgradable PythProxy contract
* Update tests to work with new proxy setup
* Update migrate script to work with new proxy setup
* Add tests for new proxy setup
* Inline PythStorage.Provider struct
* Make Pyth.verifyPythVM function internal
* Fix struct field names
* Rename Price to PriceFeed to be consistent with SDK
* Replace PythGetters.latestPriceInfo with Pyth.queryPriceFeed in public API
* p2w-terra-relay: Add a query() EVM call and Tilt boilerplate
commit-id:f97d0c16
* Clarify test comments
* Add health probe (#107)
* Rename PythProxy to PythUpgradable
* p2w-evm-relay: Backport the proxy address change from debug session
commit-id:55b63ed5
* p2w-terra-relay -> p2w-relay, split EVM relay into new service
commit-id:36d0db6e
* Tiltfile: typo
commit-id:3bbba986
* p2w-evm-relay.yaml: typo
commit-id:35c87c79
* p2w-evm-relay.yaml: typo 2: electric boogaloo
commit-id:40892265
* Add build folder to dockerignore
* Rename attestPriceBatch to updatePriceBatchFromVm
* Update comment on time check
* Trigger Build
* Tiltfile: Fix port forwards for p2w-evm-relay
commit-id:6e5e9c14
* p2w-relay: PythImplementation -> PythUpgradable
commit-id:bfea7eb5
* Remove unused Pyth Chain ID metadata
* Add the query() call
commit-id:02966ce5
* p2w-terra-relay: Fix evm.ts after contract rename
commit-id:87381bec
* Make truffle migrations directory configurable
* 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
* p2w-relay: Also implement the contract check in EVM relay()
commit-id:e28709e5
* evm.ts: Fix wording in changed/unchanged logs
commit-id:13c81625
* 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
* Update dockerfile to chown less files (#121)
* Update dockerfile to chown sooner
* p2w-relay: review nits
* p2w-evm-relay: make feed verification queries configurable
* p2w-relay: cache wormhole import
* p2w-relay: formatter, remove getcode() from relay(), add comments
commit-id:1a65c52c
* p2w-relay: typos and leftovers
commit-id:9b523b25
* 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
* Add unit test to Pyth Terra Contract (#123)
* Add unit test to the terra contract
- Refactors the code into multiple functions to make unit testing easier
- Adds build and test of terra contract to CI according to #73
* p2w-relay: harden exception handling, yell about uncaught stuff
commit-id:24e14835
* p2w-relay: Correct outdated comment
commit-id:d0b57d33
* p2w-evm-relay: s/async (e)/(e)/
commit-id:11b3a474
* Modify proto docker and tiltfile to stop creating unnecessary files (#144)
* Remove sdk/spydk from wasm and remove buf gen web yaml (#145)
* Remove wormhole contract from wasm generation (#160)
* pyth2wormhole: Add num_publishers to libraries and contracts
commit-id:f7263eed
* pyth2wormhole: add max_num_publishers to cross-chain metadata
commit-id:7550fa50
* Move p2w relayer parsing to p2w sdk js (#162)
* Move Price Attestation parsing logic to the sdk
* pyth2wormhole: Add contract testing boilerplate for attest()
commit-id:51949fbe
* Create p2w-api base (from p2w-relay) (#142)
* Create p2w-api base (from p2w-relay)
* Refactor project structure
* Rename p2w to pyth price service (#166)
* Abehjati/price-service-add-rest-layer (#167)
* Add rest api for latest vaa
Co-authored-by: Stan Drozd <stan@nexantic.com>
Co-authored-by: Eran Davidovich <edavidovich@jumptrading.com>
Co-authored-by: Eran Davidovich <erancx@users.noreply.github.com>
Co-authored-by: Tom Pointon <tom@teepeestudios.net>
Co-authored-by: Stan Drozd <drozdziak1@gmail.com>
2022-04-11 09:15:20 -07:00
|
|
|
context = ".",
|
2023-01-04 05:46:42 -08:00
|
|
|
dockerfile = "tilt-devnet/docker-images/Dockerfile.solana",
|
2020-08-20 09:56:26 -07:00
|
|
|
)
|
|
|
|
|
2020-08-15 14:54:44 -07:00
|
|
|
# solana local devnet
|
|
|
|
|
2023-01-04 05:46:42 -08:00
|
|
|
k8s_yaml_with_ns("tilt-devnet/k8s/solana-devnet.yaml")
|
2020-08-15 14:54:44 -07:00
|
|
|
|
2021-08-26 03:56:10 -07:00
|
|
|
k8s_resource(
|
|
|
|
"solana-devnet",
|
|
|
|
port_forwards = [
|
2021-12-02 08:41:33 -08:00
|
|
|
port_forward(8899, name = "Solana RPC [:8899]", host = webHost),
|
|
|
|
port_forward(8900, name = "Solana WS [:8900]", host = webHost),
|
|
|
|
port_forward(9000, name = "Solana PubSub [:9000]", host = webHost),
|
2021-08-26 03:56:10 -07:00
|
|
|
],
|
2022-02-13 12:26:07 -08:00
|
|
|
labels = ["solana"],
|
2021-12-08 08:40:05 -08:00
|
|
|
trigger_mode = trigger_mode,
|
2021-08-26 03:56:10 -07:00
|
|
|
)
|
2020-08-15 16:38:10 -07:00
|
|
|
|
|
|
|
# eth devnet
|
|
|
|
|
|
|
|
docker_build(
|
|
|
|
ref = "eth-node",
|
2022-09-20 09:24:57 -07:00
|
|
|
context = "./",
|
2023-01-04 05:46:42 -08:00
|
|
|
dockerfile = "tilt-devnet/docker-images/Dockerfile.ethereum",
|
2020-08-17 07:31:48 -07:00
|
|
|
|
|
|
|
# sync external scripts for incremental development
|
|
|
|
# (everything else needs to be restarted from scratch for determinism)
|
|
|
|
#
|
|
|
|
# This relies on --update-mode=exec to work properly with a non-root user.
|
|
|
|
# https://github.com/tilt-dev/tilt/issues/3708
|
|
|
|
live_update = [
|
|
|
|
sync("./ethereum/src", "/home/node/app/src"),
|
|
|
|
],
|
2020-08-15 16:38:10 -07:00
|
|
|
)
|
|
|
|
|
2022-10-11 06:15:34 -07:00
|
|
|
# pyth autopublisher
|
|
|
|
docker_build(
|
|
|
|
ref = "pyth",
|
|
|
|
context = ".",
|
|
|
|
dockerfile = "third_party/pyth/Dockerfile.pyth",
|
|
|
|
)
|
2023-01-04 05:46:42 -08:00
|
|
|
k8s_yaml_with_ns("./tilt-devnet/k8s/pyth.yaml")
|
2022-10-11 06:15:34 -07:00
|
|
|
|
|
|
|
k8s_resource(
|
2022-11-24 05:14:29 -08:00
|
|
|
"pyth",
|
|
|
|
resource_deps = ["solana-devnet"],
|
2022-10-11 06:15:34 -07:00
|
|
|
labels = ["pyth"],
|
|
|
|
trigger_mode = trigger_mode,
|
|
|
|
)
|
|
|
|
|
|
|
|
# pyth2wormhole client autoattester
|
|
|
|
docker_build(
|
|
|
|
ref = "p2w-attest",
|
|
|
|
context = ".",
|
|
|
|
dockerfile = "./third_party/pyth/Dockerfile.p2w-attest",
|
|
|
|
)
|
|
|
|
|
2023-01-04 05:46:42 -08:00
|
|
|
k8s_yaml_with_ns("tilt-devnet/k8s/p2w-attest.yaml")
|
2022-10-11 06:15:34 -07:00
|
|
|
k8s_resource(
|
|
|
|
"p2w-attest",
|
|
|
|
resource_deps = ["solana-devnet", "pyth", "guardian"],
|
2022-11-25 07:35:32 -08:00
|
|
|
port_forwards = [port_forward(3000, name = "metrics", host = webHost)],
|
2022-10-11 06:15:34 -07:00
|
|
|
labels = ["pyth"],
|
|
|
|
trigger_mode = trigger_mode,
|
|
|
|
)
|
|
|
|
|
2022-12-06 09:57:43 -08:00
|
|
|
# attestations checking script
|
|
|
|
docker_build(
|
|
|
|
ref = "check-attestations",
|
|
|
|
context = ".",
|
|
|
|
only = ["./third_party"],
|
|
|
|
dockerfile = "./third_party/pyth/Dockerfile.check-attestations",
|
|
|
|
)
|
|
|
|
|
2023-01-04 05:46:42 -08:00
|
|
|
k8s_yaml_with_ns("tilt-devnet/k8s/check-attestations.yaml")
|
2022-12-06 09:57:43 -08:00
|
|
|
k8s_resource(
|
|
|
|
"check-attestations",
|
|
|
|
resource_deps = ["pyth-price-service", "pyth", "p2w-attest"],
|
|
|
|
labels = ["pyth"],
|
|
|
|
trigger_mode = trigger_mode,
|
|
|
|
)
|
|
|
|
|
2022-10-11 06:15:34 -07:00
|
|
|
# Pyth2wormhole relay
|
|
|
|
docker_build(
|
|
|
|
ref = "p2w-relay",
|
|
|
|
context = ".",
|
|
|
|
dockerfile = "third_party/pyth/p2w-relay/Dockerfile.pyth_relay",
|
|
|
|
)
|
2023-01-04 05:46:42 -08:00
|
|
|
k8s_yaml_with_ns("tilt-devnet/k8s/p2w-terra-relay.yaml")
|
2022-10-11 06:15:34 -07:00
|
|
|
k8s_resource(
|
|
|
|
"p2w-terra-relay",
|
|
|
|
resource_deps = ["pyth", "p2w-attest", "spy", "terra-terrad", "wasm-gen"],
|
|
|
|
port_forwards = [
|
|
|
|
port_forward(4200, name = "Rest API (Status + Query) [:4200]", host = webHost),
|
|
|
|
port_forward(8081, name = "Prometheus [:8081]", host = webHost)],
|
|
|
|
labels = ["pyth"]
|
|
|
|
)
|
|
|
|
|
2023-01-04 05:46:42 -08:00
|
|
|
k8s_yaml_with_ns("tilt-devnet/k8s/p2w-evm-relay.yaml")
|
2022-10-11 06:15:34 -07:00
|
|
|
k8s_resource(
|
|
|
|
"p2w-evm-relay",
|
|
|
|
resource_deps = ["pyth", "p2w-attest", "spy", "eth-devnet", "wasm-gen"],
|
|
|
|
port_forwards = [
|
|
|
|
port_forward(4201, container_port = 4200, name = "Rest API (Status + Query) [:4201]", host = webHost),
|
|
|
|
port_forward(8082, container_port = 8081, name = "Prometheus [:8082]", host = webHost)],
|
|
|
|
labels = ["pyth"]
|
|
|
|
)
|
|
|
|
|
|
|
|
# Pyth Price service
|
|
|
|
docker_build(
|
|
|
|
ref = "pyth-price-service",
|
|
|
|
context = ".",
|
|
|
|
dockerfile = "third_party/pyth/price-service/Dockerfile.price_service",
|
|
|
|
)
|
2023-01-04 05:46:42 -08:00
|
|
|
k8s_yaml_with_ns("tilt-devnet/k8s/pyth-price-service.yaml")
|
2022-10-11 06:15:34 -07:00
|
|
|
k8s_resource(
|
|
|
|
"pyth-price-service",
|
|
|
|
resource_deps = ["pyth", "p2w-attest", "spy", "eth-devnet", "wasm-gen"],
|
|
|
|
port_forwards = [
|
|
|
|
port_forward(4202, container_port = 4200, name = "Rest API (Status + Query) [:4202]", host = webHost),
|
|
|
|
port_forward(6202, container_port = 6200, name = "WSS API [:6202]", host = webHost),
|
|
|
|
port_forward(8083, container_port = 8081, name = "Prometheus [:8083]", host = webHost)],
|
|
|
|
labels = ["pyth"]
|
|
|
|
)
|
|
|
|
|
|
|
|
# Pyth EVM Watcher
|
|
|
|
docker_build(
|
|
|
|
ref = "pyth-evm-watcher",
|
|
|
|
context = "third_party/pyth/evm-watcher/",
|
|
|
|
dockerfile = "third_party/pyth/evm-watcher/Dockerfile",
|
|
|
|
)
|
2023-01-04 05:46:42 -08:00
|
|
|
k8s_yaml_with_ns("tilt-devnet/k8s/pyth-evm-watcher.yaml")
|
2022-10-11 06:15:34 -07:00
|
|
|
k8s_resource(
|
|
|
|
"pyth-evm-watcher",
|
|
|
|
resource_deps = ["eth-devnet"],
|
|
|
|
labels = ["pyth"]
|
|
|
|
)
|
2022-07-15 08:37:58 -07:00
|
|
|
|
2022-04-13 01:28:30 -07:00
|
|
|
|
2023-01-04 05:46:42 -08:00
|
|
|
k8s_yaml_with_ns("tilt-devnet/k8s/eth-devnet.yaml")
|
2020-08-15 16:38:10 -07:00
|
|
|
|
2021-12-08 08:40:05 -08:00
|
|
|
k8s_resource(
|
|
|
|
"eth-devnet",
|
|
|
|
port_forwards = [
|
|
|
|
port_forward(8545, name = "Ganache RPC [:8545]", host = webHost),
|
|
|
|
],
|
2022-02-13 12:26:07 -08:00
|
|
|
labels = ["evm"],
|
2021-12-08 08:40:05 -08:00
|
|
|
trigger_mode = trigger_mode,
|
|
|
|
)
|
2020-11-10 10:39:32 -08:00
|
|
|
|
2021-12-08 08:40:05 -08:00
|
|
|
k8s_resource(
|
|
|
|
"eth-devnet2",
|
|
|
|
port_forwards = [
|
|
|
|
port_forward(8546, name = "Ganache RPC [:8546]", host = webHost),
|
|
|
|
],
|
2022-02-13 12:26:07 -08:00
|
|
|
labels = ["evm"],
|
2021-12-08 08:40:05 -08:00
|
|
|
trigger_mode = trigger_mode,
|
|
|
|
)
|
2021-09-28 02:26:31 -07:00
|
|
|
|
2021-05-25 00:51:49 -07:00
|
|
|
|
2020-11-16 04:28:07 -08:00
|
|
|
# terra devnet
|
|
|
|
|
2020-11-30 03:34:31 -08:00
|
|
|
docker_build(
|
|
|
|
ref = "terra-image",
|
2023-01-04 05:46:42 -08:00
|
|
|
context = "./target-chains/cosmwasm/devnet",
|
|
|
|
dockerfile = "./target-chains/cosmwasm/devnet/Dockerfile",
|
2020-12-03 05:37:23 -08:00
|
|
|
)
|
|
|
|
|
|
|
|
docker_build(
|
2022-07-19 07:26:41 -07:00
|
|
|
ref = "cosmwasm-contracts",
|
Merge Dev.v2 into main (#181)
* Move js sdk on p2w-sdk to js folder
Also modifies other dependencies to correct path
* Reversed removal of wasm build for nodejs
* Add newline to a file
* pyth2wormhole: Fix attestation validation bug
commit-id:567942d7
* Add p2w sdk
It uses Pyth clients structs and cleans some of definitions for Pyth2Wormhole structures.
* Add emitter type and add wasm function for it
- It requires solitaire and it requires nightly rust
- No logic is applied, code is from p2w solana contract. (Eventually will be removed from there)
* Add new line
* Move WASM gen docker to root
It is because wasm is going to be used for p2w-sdk too.
* Fix unchanged cache mount paths
* Move terra relayer into the repo
* Update readme
* p2w-client: Add lib target, make helpers into lib functions there
commit-id:3aeb9ee6
* pyth2wormhole-client: Implement retries
commit-id:462677a2
* Make p2w-sdk js use p2w-sdk rust wasm bindings (#65)
* Make p2w-sdk js use p2w-sdk rust wasm bindings (instead of solana contract bindings)
- Removes `wasm.rs` in solana contract too.
* p2w attester contract use p2w-sdk (#68)
* Make solana pyth2wormhole contract to use the sdk
* Use threadpool to set up price symbols (#69)
* Add solana feature flag for p2w sdk (#71)
* Pyth bridge terra contract support batch attestation + use p2w sdk (#72)
* Make terra contract to use pyth2wormhole-sdk and support batch attestation
* Update packages + code format
* Move terra dockerfile out to support third-party dependency
* pyth2wormhole-client: Add polling-based concurrent tx confirmation
commit-id:5d16d035
* chore: p2w spy guarding improve Dockerfile
* fix: p2w_autoattest don't die after initialization
also minimal formatting
* add P2W_EXIT_ON_ERROR
* set P2W_EXIT_ON_ERROR default to True
* Remove bool test
* hopefully this time.
* add tilt p2w-attest P2W_EXIT_ON_ERROR
* convert P2W_EXIT_ON_ERROR to "true"
* Fix pyth test publisher (#76)
* Fix test pyth publisher to actually publish price
- Uses newer pyth images and removes existing hacks for old versions. It essentially makes dockers cleaner.
- Also improve some adds in dockers to cache more efficiently
* Support Batch Price attestation for terra relay (#75)
* Support Batch Price attestation for terra relay
* Abehjati/update p2w sdk to pyth sdk (#83)
* Make p2w-sdk use pyth-sdk
* Correct test values to reflect .env.test
* update p2w sdk to use ema instead of twa (#84)
* Rename twa to ema in terra relay (#85)
* Bring PythStructs.PriceAttestation struct in line with new API
* Add ability to parse batch price attestations
* Pyth terra remove wormhole governance (#87)
* Pyth in terra: remove wormhole governance
* [WIP] p2w-relay-iface: Add NPM package with relayer interface PoC
commit-id:efcb9b34
* Define Pyth SDK Price struct
* Define internal PythStructs.PriceInfo struct
* Cache price updates in standardised PriceInfo format
* Cache price updates from batch attestations
* p2w-relay-iface -> p2w-relay-terra/src/relay/iface.ts
commit-id:ed9846e3
* p2w relay interface: remove config from Relay iface
commit-id:0359d886
* Remove now unnused parsePriceAttestation function
* Pyth terra bridge: add contract deployment script (#88)
* Add pyth deployment script
- Also updates build.sh to build pyth completely
- Add a readme for deployment guide
* Add test for partial update behaviour
* update p2w sdk to new pyth (#91)
* p2w-sdk/rust use pyth sdk solana v2
* Dockerfile.client: solana 1.8.1 -> 1.9.4
commit-id:643299d3
* p2w-terra-relay: ignore lib and node, own project dir in docker
commit-id:b084bc40
* p2w-terra-relay: iface.ts review nits, naive impl for Terra
commit-id:0ecbfdd6
* Terra contract public api (#79)
* Use pyth-sdk in terra contract
* Update terra contract according to agreed API
- Also adds v2 suffix to price_info key because this migration is breaking.
* p2w-terra-relay: apply review nits
commit-id:aec39c85
* p2w-terra-relay: make worker.ts generic w.r.t. Relay interface
commit-id:5937a08c
* terra.ts: add missing return statement
commit-id:ba0365e6
* Update worket to handle timeout in callback correctly (#97)
* Remove wormhole-based governance
* Remove now unused legacy governance state and variables
* Remove Pyth Implementation implementation
* p2w-terra-relay: run formatter
commit-id:df311e23
* p2w-terra-relay: apply review nits
commit-id:5034b061
* Run formatter to trigger CI
commit-id:7c643d79
* p2w-terra-relay: EVM boilerplate
commit-id:8ad73ded
* Remove old PythProxy inheritance hierarchy
* Remove now unnused initialized implementations map
* Remove old mock bridge implementation
* Remove dependency to wormhole sdk as path and cleanup wrong eth copies (#104)
* Dockerfile.pyth_relay: Fix lockfile issue in ethereum
This commit fixes a lockfile issue resulting from newer NPM in our
container.
Specifically, our Dockerfile is pinned, relaxes Ethereum's
lockfile (npm ci -> npm install) and hardens our lockfile (npm install
-> npm ci)
commit-id:3381c8ec
* p2w-terra-relay: Admit loss against mkdir -p
commit-id:3abdb58d
* 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
* 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)
* Remove unused solana contracts and their wasm creations (#110)
Removes token bridge, nft bridge, migration. Also removes them from deployments and docs.
* Add fee estimate for terra relay (#112)
* Removes directores which are not related to p2w (#111)
Removes
- audits
- dashboards (dashboard is removed from Tilt)
- event_database (all of it's dependencies are removed from Tilt and it's not for p2w)
- lp_ui: a project (pressumably liquidity pool) not related to p2w
- sdk: wormhole sdk, p2w depends on it's npm package and there is no dependency to rust one
- spydk: it's not anywhere in p2w
- staging/algorand: these are for alrogrand which is not used in p2w
- whitepapers: these are for wormhole
* Add and update openzeppelin packages
* Add initializer to Pyth contract
* Add upgradable PythProxy contract
* Update tests to work with new proxy setup
* Update migrate script to work with new proxy setup
* Add tests for new proxy setup
* Inline PythStorage.Provider struct
* Make Pyth.verifyPythVM function internal
* Fix struct field names
* Rename Price to PriceFeed to be consistent with SDK
* Replace PythGetters.latestPriceInfo with Pyth.queryPriceFeed in public API
* p2w-terra-relay: Add a query() EVM call and Tilt boilerplate
commit-id:f97d0c16
* Clarify test comments
* Add health probe (#107)
* Rename PythProxy to PythUpgradable
* p2w-evm-relay: Backport the proxy address change from debug session
commit-id:55b63ed5
* p2w-terra-relay -> p2w-relay, split EVM relay into new service
commit-id:36d0db6e
* Tiltfile: typo
commit-id:3bbba986
* p2w-evm-relay.yaml: typo
commit-id:35c87c79
* p2w-evm-relay.yaml: typo 2: electric boogaloo
commit-id:40892265
* Add build folder to dockerignore
* Rename attestPriceBatch to updatePriceBatchFromVm
* Update comment on time check
* Trigger Build
* Tiltfile: Fix port forwards for p2w-evm-relay
commit-id:6e5e9c14
* p2w-relay: PythImplementation -> PythUpgradable
commit-id:bfea7eb5
* Remove unused Pyth Chain ID metadata
* Add the query() call
commit-id:02966ce5
* p2w-terra-relay: Fix evm.ts after contract rename
commit-id:87381bec
* Make truffle migrations directory configurable
* 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
* p2w-relay: Also implement the contract check in EVM relay()
commit-id:e28709e5
* evm.ts: Fix wording in changed/unchanged logs
commit-id:13c81625
* 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
* Update dockerfile to chown less files (#121)
* Update dockerfile to chown sooner
* p2w-relay: review nits
* p2w-evm-relay: make feed verification queries configurable
* p2w-relay: cache wormhole import
* p2w-relay: formatter, remove getcode() from relay(), add comments
commit-id:1a65c52c
* p2w-relay: typos and leftovers
commit-id:9b523b25
* 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
* Add unit test to Pyth Terra Contract (#123)
* Add unit test to the terra contract
- Refactors the code into multiple functions to make unit testing easier
- Adds build and test of terra contract to CI according to #73
* p2w-relay: harden exception handling, yell about uncaught stuff
commit-id:24e14835
* p2w-relay: Correct outdated comment
commit-id:d0b57d33
* p2w-evm-relay: s/async (e)/(e)/
commit-id:11b3a474
* Modify proto docker and tiltfile to stop creating unnecessary files (#144)
* Remove sdk/spydk from wasm and remove buf gen web yaml (#145)
* Remove wormhole contract from wasm generation (#160)
* pyth2wormhole: Add num_publishers to libraries and contracts
commit-id:f7263eed
* pyth2wormhole: add max_num_publishers to cross-chain metadata
commit-id:7550fa50
* Move p2w relayer parsing to p2w sdk js (#162)
* Move Price Attestation parsing logic to the sdk
* pyth2wormhole: Add contract testing boilerplate for attest()
commit-id:51949fbe
* Create p2w-api base (from p2w-relay) (#142)
* Create p2w-api base (from p2w-relay)
* Refactor project structure
* Rename p2w to pyth price service (#166)
* Abehjati/price-service-add-rest-layer (#167)
* Add rest api for latest vaa
Co-authored-by: Stan Drozd <stan@nexantic.com>
Co-authored-by: Eran Davidovich <edavidovich@jumptrading.com>
Co-authored-by: Eran Davidovich <erancx@users.noreply.github.com>
Co-authored-by: Tom Pointon <tom@teepeestudios.net>
Co-authored-by: Stan Drozd <drozdziak1@gmail.com>
2022-04-11 09:15:20 -07:00
|
|
|
context = ".",
|
2023-01-04 05:46:42 -08:00
|
|
|
dockerfile = "tilt-devnet/docker-images/Dockerfile.cosmwasm",
|
2020-11-30 03:34:31 -08:00
|
|
|
)
|
|
|
|
|
2023-01-04 05:46:42 -08:00
|
|
|
k8s_yaml_with_ns("tilt-devnet/k8s/terra-devnet.yaml")
|
2020-11-16 04:28:07 -08:00
|
|
|
|
2020-11-27 16:33:57 -08:00
|
|
|
k8s_resource(
|
|
|
|
"terra-terrad",
|
2021-10-04 04:52:11 -07:00
|
|
|
port_forwards = [
|
2021-12-02 08:41:33 -08:00
|
|
|
port_forward(26657, name = "Terra RPC [:26657]", host = webHost),
|
|
|
|
port_forward(1317, name = "Terra LCD [:1317]", host = webHost),
|
2021-10-04 04:52:11 -07:00
|
|
|
],
|
2022-02-13 12:26:07 -08:00
|
|
|
labels = ["terra"],
|
|
|
|
trigger_mode = trigger_mode,
|
|
|
|
)
|
|
|
|
|
|
|
|
k8s_resource(
|
|
|
|
"terra-postgres",
|
|
|
|
labels = ["terra"],
|
2021-12-08 08:40:05 -08:00
|
|
|
trigger_mode = trigger_mode,
|
2020-11-27 16:33:57 -08:00
|
|
|
)
|
2021-07-27 04:46:36 -07:00
|
|
|
|
|
|
|
k8s_resource(
|
|
|
|
"terra-fcd",
|
2022-02-13 12:26:07 -08:00
|
|
|
resource_deps = ["terra-terrad", "terra-postgres"],
|
2021-12-02 08:41:33 -08:00
|
|
|
port_forwards = [port_forward(3060, name = "Terra FCD [:3060]", host = webHost)],
|
2022-02-13 12:26:07 -08:00
|
|
|
labels = ["terra"],
|
2021-12-08 08:40:05 -08:00
|
|
|
trigger_mode = trigger_mode,
|
2021-07-30 15:12:28 -07:00
|
|
|
)
|
2022-11-25 07:35:32 -08:00
|
|
|
|
|
|
|
docker_build(
|
|
|
|
ref = "prometheus",
|
|
|
|
context = ".",
|
2023-01-04 05:46:42 -08:00
|
|
|
dockerfile = "tilt-devnet/docker-images/Dockerfile.prometheus",
|
2022-11-25 07:35:32 -08:00
|
|
|
)
|
|
|
|
|
2023-01-04 05:46:42 -08:00
|
|
|
k8s_yaml_with_ns("tilt-devnet/k8s/prometheus.yaml")
|
2022-11-25 07:35:32 -08:00
|
|
|
|
|
|
|
k8s_resource(
|
|
|
|
"prometheus",
|
|
|
|
port_forwards = [port_forward(9090, name = "Prometheus dashboard", host = webHost)],
|
|
|
|
labels = ["prometheus"],
|
|
|
|
trigger_mode = trigger_mode,
|
|
|
|
)
|
2022-12-13 05:05:06 -08:00
|
|
|
|
|
|
|
docker_build(
|
|
|
|
ref = "multisig",
|
|
|
|
context = ".",
|
2023-01-04 05:46:42 -08:00
|
|
|
dockerfile = "tilt-devnet/docker-images/Dockerfile.multisig",
|
2022-12-13 05:05:06 -08:00
|
|
|
)
|
|
|
|
|
2023-01-04 05:46:42 -08:00
|
|
|
k8s_yaml_with_ns("tilt-devnet/k8s/multisig.yaml")
|
2022-12-13 05:05:06 -08:00
|
|
|
|
|
|
|
k8s_resource(
|
|
|
|
"multisig",
|
|
|
|
resource_deps = ["solana-devnet"],
|
|
|
|
labels = ["solana"],
|
|
|
|
trigger_mode = trigger_mode,
|
|
|
|
)
|