Commit Graph

822 Commits

Author SHA1 Message Date
Stan Drozd a341c2a5b5 nix/: Exile remote nix scripts into nix/scripts.nix, update deps
Change-Id: I51ae917fb1e57375a84224f1da3d5df7b173e5bf
2021-06-29 15:35:14 +00:00
Stan Drozd 5e7e4d4e48 Solitaire: Enforce the "client" feature in dependees
Change-Id: I55da10bde41f84e91c5754a89eb4239967117e67
2021-06-29 15:35:14 +00:00
Hendrik Hofstadt 79d846eed1 Update guardian software chain watcher and VAA submitter
Change-Id: I10c05c57e934662ff005e6b50067195502d23c0f
2021-06-29 13:55:44 +02:00
Hendrik Hofstadt b177c94737 Add sequence to terra wormhole
Change-Id: Ic8aa508402b3c07334e059ed1b8973ccf1c1dc6d
2021-06-28 12:45:41 +00:00
Hendrik Hofstadt 3a20ec9b0d Clean up terra program
Change-Id: I2a323e80dc4d72c0405f50eaaf23e04b1e875246
2021-06-28 12:31:01 +00:00
valentin 2be6f90314 remove payload length from vm
Change-Id: I89ae8530de8f43a2d2a1813d1d050413338b45d0
2021-06-28 13:45:45 +02:00
valentin 7032d6fba9 add sequence to vm
Change-Id: I0ec81979153c940a8d557ffdd67dec723c09f22c
2021-06-28 11:25:26 +00:00
Stan Drozd 79d82d1226 Solitaire: use "client" as superset of "no-entrypoint", logging
Change-Id: Ie846b9abd783fe041f2cfa9aeda962003ffe1441
2021-06-28 13:01:43 +02:00
Stan Drozd 60a1acf351 solitaire: Wrap for Info, auto Wrap for data_wrapper()
Change-Id: I5cc0ba7870e140a2acf77b8fc8814ee953f56b51
2021-06-28 13:00:41 +02:00
Hendrik Hofstadt 9d35ec242e Correct the VAA spec
This matches the original VAA design and actually allows for parsing

Change-Id: Ic0415f83202314d4adfc48c152db8ded26ee6c22
2021-06-28 06:14:06 +00:00
Reisen 118bc13bcb Fix all warnings in the bridge program.
- Allowed non snake case globals for const generic names.
- Left feature warning on as these are valuable to others during cargo
  build, where you might want to spot what projects are using unstable
  features when pulling dependencies.

Change-Id: I595253513554c441284def7e354bb4e4e2df550e
2021-06-25 07:55:55 +00:00
Reisen 8cb2675c85 Rework integration tests around exposed instructions
Change-Id: Id796e31de90b1d59a43e9ae1cce85d84cd264558
2021-06-24 13:55:31 +00:00
Reisen e99b597ee3 Fix Signature Calculation
Change-Id: Ia0fa7f86f09360d792dbfebd8928f9a444ac3368
2021-06-24 10:02:15 +00:00
Hendrik Hofstadt ece0de4bef Fix bridge fee and implement CLI
Change-Id: Ib17b335e05359fd4baf614d0b4eaae459814b04d
2021-06-23 15:10:06 +00:00
Hendrik Hofstadt d677311d70 Fix build caching and initial devnet setup steps
Change-Id: I6df841c90f93585f0146b0de65883dd101e45bc9
2021-06-23 17:06:11 +02:00
Reisen 89ddc95a78 Add Instruction helpers to core program
Change-Id: I38d958c57aef02a5328075cd1010fb2a6a564b0b
2021-06-23 12:38:43 +00:00
Reisen 16f7e156ae Fix Derivation issues for PostVAA accounts.
Change-Id: Ia08003dc8aadfe3963598c81745813e6e09e5d3a
2021-06-23 11:02:42 +00:00
Reisen a28540de0d Test VerifySignatures.
Change-Id: I430b4676706371bbcf61368a83ff4946d9db2202
2021-06-23 11:02:42 +00:00
Reisen c2c2e7f13d Integration Test for PostVAA without working Signatures
Change-Id: Ib5c93986cdac88678657b254522422ab5231a856
2021-06-23 11:02:42 +00:00
Reisen 8173f0997a Add integration test PostVAA step
Change-Id: I44d00afc728557d2556a8a2e62f378a3f2e61db7
2021-06-23 11:02:42 +00:00
Reisen 692da33d0c Add integration test around PostMessage
Change-Id: I8c41db5f3d110ee445ed66d2599d87afb42fde7e
2021-06-23 11:02:42 +00:00
Reisen c3151728f5 Add integration test setup with Initialize filled in
Change-Id: Ie7cbb1a2a72b88e2752065b65d76da9cda9b1c0f
2021-06-23 11:02:42 +00:00
Reisen 146b368fc0 Fix accounts required for calling Initialize/PostMessage
Change-Id: Ide3fa8401bac6b1b05bc4c5ec1f552a98178ad06
2021-06-23 11:02:42 +00:00
Leo de31d0d381 README.md: bump Tilt and Minikube
The Tilt release fixed the bug that used to require --update-mode
and has a number of nice usability improvements.

Minikube brings in a more recent k8s version.

Change-Id: I3a549328e4993ae284443224124a590311c3e5d2
2021-06-22 18:21:49 +00:00
Hendrik Hofstadt 22373b9943 Fix eth and solana deployment in tilt devnet
Change-Id: Iee032e92373c56d876e6fc1626b0f1af54046834
2021-06-22 18:17:18 +00:00
Leo c1d0f165d6 Merge branch 'main' into dev.v2
# Conflicts:
#	bridge/pkg/solana/submitter.go

Change-Id: I45b6e8f398b879915793987c5db38c839e8d1cc9
2021-06-22 18:54:15 +02:00
Hendrik Hofstadt 02d7257ff5 Implement PostedMessage fetching in the client
Change-Id: I8b59cdbfaf37212e187257cf46674086ad96d19d
2021-06-18 18:50:06 +02:00
Leo b9780afe2a tools: add build tag on tools.go to fix IJ error
Change-Id: I26eef5fb4275a240be06c829a193fd41694d7465
2021-06-08 14:20:25 +02:00
Hendrik Hofstadt d84b61fda5 Implement token bridge
Change-Id: Ibb9cdf6ed5a18a576691bcad96b4fe6dfd72b981
2021-06-07 09:04:23 +02:00
Hendrik Hofstadt aa909c218f Restructure workspace
This will make is easier to separate modules and solitaire in the future.
We also get rid of the old bridge code.

Change-Id: I4d663c36739dfec77cd5d3f1ed6b51f422fe0c91
2021-06-21 10:24:52 +02:00
Hendrik Hofstadt 5eb7d0b7d0 Various token bridge and solitaire improvements
Derive message accounts from nonce and data vs sequence because sequence can lead to collision with parallel tx submission

Change-Id: I82d5b3a3c7fd96b5a6c74933c773a32e1c58bdd4
2021-06-18 14:34:31 +02:00
Leo 00a92b0278 README.md: add mini FAQ
Change-Id: Id0379f56f1fcdaea3a58cf719d8593e799ddd55a
2021-06-04 14:42:50 +02:00
jschuldt 0e602ed91d Add explorer web app and web proto codegen
- update buf to latest to support ts-proto plugin

- add NodeJS dev dependency for web-proto codegen

Change-Id: I881f9da7461d5d4ff28a64304a2adc33037598d1
2021-06-02 16:05:16 +00:00
Justin Schuldt 3b294c586a Use full import path in proto's go_package
Change-Id: I1f3592512804ad92506914eda67d9ce59effdc0e
2021-06-01 19:04:49 +00:00
Leo 4f306fdb8b solana/agent: always submit signature verify transactions
The first transaction acquires a pseudo-lock by setting
initial_creation = true, which will fail if a signature account
already exists. However, this is unsafe since the operation
consists of multiple operations and is not atomic - if the first
validator fails to submit a full set of signature transactions,
other guardians will not retry submitting signature verification txs.

We disable this mechanism to never set initial_creation, which
causes guardians to spend more fees in exchange for fault tolerance.

Instead of failing with an AlreadyExists error, duplicate transactions
will now succeed as a no-op and all nodes will attempt to submit
the full series of signature transactions.

Co-authored-by: Hendrik Hofstadt <hendrik@nexantic.com>
Change-Id: I0c418497f19cc97c9ae7a11b206035d6e70c1b66
2021-05-31 13:33:47 +00:00
Leo 79cc6a9f46 bridge: allow specifying skip_preflight in debug VAA submission
This allows forcibly submitting a failing VAA on-chain in cases where
the preflight check would hinder debugging.

It does not change behavior of guardiand.

Co-authored-by: Hendrik Hofstadt <hendrik@nexantic.com>
Change-Id: I63df22049ad27f659dc0638190edd20628b7a338
2021-05-31 13:33:43 +00:00
Leo c1c2c7ae49 solana/agent: add extra context to SubmitVAA errors
Co-authored-by: Hendrik Hofstadt <hendrik@nexantic.com>
Change-Id: I5e2b9120e0626ba4e5021f3012802e2d3978584e
2021-05-31 13:33:40 +00:00
Leo a2ff5ca73c bridge/debug: add post-vaa-solana command
Co-authored-by: Hendrik Hofstadt <hendrik@nexantic.com>
Change-Id: I482487f39eae1a3aebd1c7fdbe10e5b9c2dd44ad
2021-05-31 13:33:36 +00:00
Leo 45639b18fb bridge/pkg/solana: fix package name and remove unused lockChan
Increase VAA submission timeout.
Change-Id: I5e774f2930e2f0d865d733eee2f0bb01da1b82f3
2021-05-31 13:33:32 +00:00
Leo b04dd1cc2f bridge/debug: refactor
Move the debug command out of vaa.go in preparation for adding
additional comments.
Change-Id: Id387eace5d488952331f5d7f16c43b235676df24
2021-05-31 13:27:34 +00:00
valentin c3fa835196 ethereum generalized messaging & governance
Change-Id: I412111a10749050ca095458f2fcfe81ce0fe189c
2021-05-27 16:01:49 +02:00
Alwin 2025efd50a switch terra contracts over to using governance packet structure
Change-Id: I10b53cb0cfdb86ca2aa57cab20ec375a26fd252e
2021-06-01 17:10:34 -04:00
Alwin 08ca466a40 clean up error messages, duplicated files, fix bug where asset can be attested multiple times
Change-Id: I95655968d3582e837a28eddc34d15d4ca55a488b
2021-05-31 18:04:12 -04:00
Alwin 16cc520187 initial terra contracts for wormhole v2
Change-Id: Ie28f1e7ce381fcbf33de609bc6c8465679cd2a43
2021-05-31 09:13:59 -04:00
Stan Drozd e1c2f73e29 Implement Wrap for solitaire::Sysvar<...>
Change-Id: I066e425d1e1549ea296a4b54ef019872064a8acd
2021-06-16 12:09:06 +02:00
Hendrik Hofstadt 834b26b773 Implement Derivation context
Change-Id: I18d69b60e23aa262efc2f182bdad5770a5c3de60
2021-06-14 18:58:12 +02:00
Stan Drozd e51503b4f7 solitaire, macros.rs: stop panicking in dispatch()
Change-Id: I12df1318c56799209821ad92d491e55810fe820f
2021-06-14 15:16:09 +02:00
Hendrik Hofstadt b3b083b08a Implement account persistence
Accounts with data will now be persisted at the end of the program execution

Change-Id: I1dd29f521f5c659ced5758203acf532b645f3b44
2021-06-11 17:14:21 +02:00
Hendrik Hofstadt c3829b9266 Fix seed derivation and implement proper dependency system
Seeds currently did not account for the requirements of PDAs not being on the curve. This change
uses the `find_program_address` method to also be able to derive "bumped seeds" from types implementing
the Seeded trait. This is now also used for account creation.

Also the way we originally planned to pass through dependencies in Peel is not compatible with the client as some
of the context is not given there. I introduced a new method named "deps" with the same "chaining mechanic" that
can provide deps that are appended to the accounts passed into the instruction.

Change-Id: I116c8a3611e54b5a7fe5285310e4bc047119d656
2021-06-11 14:01:31 +02:00
Stan Drozd 388743fa6c Implement Wrap for Data, fix solitaire version string
Change-Id: I28dcfc334995572ab2c864d045334d124aca1e31
2021-06-11 14:29:43 +02:00