Commit Graph

53 Commits

Author SHA1 Message Date
Ryo Onodera 2ba9381066
Add/Clarify comments (#187) 2021-02-26 13:48:44 +01:00
Hendrik Hofstadt 8478735ea7
don't subsidize guardian set creation (#172)
* don't subsidize guardian set creation

This works around https://github.com/solana-labs/solana/issues/9711 which causes issues when the guardian set creation is subsidized and another CPI call is done subsequently
2021-02-02 21:20:48 +01:00
Hendrik Hofstadt 2b30a30601
upgrade solana sdk version (#166)
* upgrade solana sdk version

Commitment levels were deprecated and the fastest confirmation level is `Processed`.

Also the upgradeable loader now requires the program to be writeable.

* Add deprecation comment

* update agent commitment level
2021-01-28 17:44:54 +01:00
Hendrik Hofstadt a5380b8ab1
Fix rent calculation and hardening (#163)
* use proper account for min balance calculation

* check bridge key in sig verify

* check bridge key in VAA processor
2021-01-25 15:11:38 +01:00
Leo 108f050c0e Clarify public keys vs public key's hashes in comments and docs 2021-01-21 00:59:50 +01:00
Hendrik Hofstadt 82fd4293e2
Fix guardian set expiration on Solana (#155)
* fix guardian set expiration on Solana
2021-01-19 16:44:48 +01:00
Hendrik Hofstadt efa03ef73c
Implement upgradeability (#151)
* Implement contract upgrade VAA action

* naming and (╯°□°)╯︵ ┻━┻

* Carefully unflip table and replace broken cutlery ┬─┬ノ( ◕◡◕ ノ)

* fix and automate upgradeability

* document contract upgrade call

* Update comments

* Exhaustiveness check in VAA payload switch

* Fix typo

Co-authored-by: Leo <leo@certus.one>
2021-01-19 13:01:45 +01:00
Hendrik Hofstadt 274bb7c97d
Owner and sysvar check hardening (#154)
* owner and sysvar check hardening
2021-01-12 23:21:30 +01:00
Hendrik Hofstadt 03ef5e1017
Don't evict governance VAA signatures (#137)
* don't evict governance VAA signatures

They need to persist for data availability (to be cross-submitted to other chains)
2020-12-17 11:27:46 +01:00
Hendrik Hofstadt bec598b41a
Fix subsidization and fees (#127)
* Revert "solana: partially revert #82 subsidization changes"

This reverts commit 2967653e

* fix subsidization

* fix deleted grpc tag dependency

* revert devnet changes

* verify system instruction action

* ┬─┬ノ(ಠ_ಠノ)
2020-11-30 11:09:08 +01:00
Leo 2967653e06 solana: partially revert #82 subsidization changes
... while keeping the borrowing fixes. Please review carefully whether
any of the remaining changes should've been reverted as well.

Fails due to account ownership check for debits, new tests caught it.
2020-11-29 17:07:15 +01:00
Hendrik Hofstad 3e57f475e1 solana: fix borrow issues 2020-11-20 14:23:05 +01:00
Hendrik Hofstadt 8510140165
subsidize guardian transactions using fees (#82)
* subsidize guardian transactions using fees

* reuse transfer function

* evict signature state on inbound transfers

* fix mutability issues due to copying

* add fee refund

* unify fee calculation

* add fee documentation

* Unflip tables

* type annotation
2020-11-19 22:47:09 +01:00
Leo fdc2be10b3 solana: verify that new guardian set isn't empty
ghstack-source-id: 4fc1d94152
Pull Request resolved: https://github.com/certusone/wormhole/pull/101
2020-11-19 12:57:21 +01:00
Hendrik Hofstadt cee28540bd
Upgrade SDK; add balance rpc call (#80) 2020-11-13 14:14:56 +01:00
Leo f3107ebed4 solana: add uncommitted Cargo.lock files
If there's a reason they are missing, then I didn't realize :-)

Ref #29

ghstack-source-id: 9052f64e76
Pull Request resolved: https://github.com/certusone/wormhole/pull/68
2020-10-28 22:47:12 +01:00
Hendrik Hofstadt dadb287220
bridge: fix quorum calculation (#69) 2020-10-28 21:22:15 +01:00
Hendrik Hofstadt cf90bbec0d cli: create_wrapped command, deterministic generation 2020-10-28 20:37:06 +01:00
Hendrik Hofstadt 8d7a35683e
bridge: fix quorum (#56) 2020-10-25 08:57:04 +01:00
Hendrik Hofstadt e266bf1a7c
Implement assistant & Reimplement wrapped asset precreation (#42)
* all: readd early wrapped meta creation; initial transfer wizard

* web: complete transfer assistant

* web: allow multiple accounts per wrapped mint
2020-10-14 11:49:13 +02:00
Hendrik Hofstadt ddd2c901bd solana: create sig verify account in instruction
This allows multiple guardians to submit the signatures in parallel without causing costs with all transactions because conflicting txs won't be mined.
2020-10-03 21:20:24 +02:00
Hendrik Hofstadt 25533f0264
bridge: add secp check instruction (#41)
* bridge: add secp check instruction

* solana: update to secp solana upstream

* solana: iteration on secp

* solana: fix secp instruction

serialization indices were off and secp ix data was serialized twice

* solana: optimize ix serialization

* agent: send multiple chunks of signatures

* doc: update protocol spec

* solana: store signatures in siginfo; reconstruct signed VAA in webinterface

* solana: reformat

* solana: add rustfmt config
2020-10-01 16:42:45 +02:00
Hendrik Hofstadt 4ba7885c62 solana: add retry/poking mechanism
Closes #6
2020-08-31 21:05:38 +02:00
Hendrik Hofstadt 941220bc85 bridge: optimize VAA claim derivation
Instead of hashing the body manually, we pass the body to the address derivation syscall.
2020-08-31 20:09:06 +02:00
Hendrik Hofstadt 45a25e0386 bridge: prevent multiple signatures from single guardian 2020-08-31 09:26:38 +02:00
Hendrik Hofstadt b4b0c61dfc bridge: require single step guardian set index changes 2020-08-31 09:25:41 +02:00
Hendrik Hofstadt f6750a3762 all: consider decimals on wrapped assets, fix VAA posting, fix solana account parsing 2020-08-28 15:10:42 +02:00
Hendrik Hofstadt 8e6dc495dc bridge: remove VAA timeout
Closes #35
2020-08-28 08:49:46 +02:00
Hendrik Hofstadt ed0a6d4b2e bridge: use proper source address 2020-08-28 08:36:33 +02:00
Hendrik Hofstadt 042ff4a14b bridge: properly handle VAA submissions 2020-08-24 12:56:19 +02:00
Hendrik Hofstadt 738967c8d0 bridge: fix quorum checks 2020-08-22 01:10:45 +02:00
Hendrik Hofstadt 6b113853bd solana: fix missing transfer info and cli checks 2020-08-21 23:41:54 +02:00
Hendrik Hofstadt e3dcc654fb bridge: simplify lockup serialization 2020-08-21 22:56:21 +02:00
Hendrik Hofstadt 549f7ad69c solana: track time on lockups 2020-08-21 19:51:45 +02:00
Hendrik Hofstadt 6a548e5695 bridge: use constant for max guardians 2020-08-21 15:02:02 +02:00
Hendrik Hofstadt 1d960405d1 bridge: check quorum 2020-08-21 12:45:40 +02:00
Hendrik Hofstadt 59449a30b3 Update VAA structure 2020-08-19 16:41:25 +02:00
Hendrik Hofstadt 5cd3db9a14 Working solana transfers from webui 2020-08-18 22:54:18 +02:00
Hendrik Hofstadt f8e70efb0b Fixes for actual CPI usage and variable VAA size 2020-08-17 21:02:04 +02:00
Hendrik Hofstadt e040449197 Working transfer in 2020-08-17 17:06:21 +02:00
Hendrik Hofstadt 49d2872d9c Update devnet and Solana program 2020-08-16 13:21:39 +02:00
Leo d8c9b41a01 Add builds for protos and the Solana agent
- Build buf and protoc-gen-go and use it to build Go proto packages
- Rename agent proto package to agent.v1 (to prevent namespace collisions and conform to buf's standards)
- Default to DOCKER_BUILDKIT=1 for CI setup
- Add incremental Docker build for solana/agent
- Move build machinery to top level
2020-08-15 22:15:26 +02:00
Hendrik Hofstadt f54fc43118 update claimed vaa doc 2020-08-10 08:48:25 +02:00
Hendrik Hofstadt 8167285560 update bridge doc 2020-08-09 18:26:58 +02:00
Hendrik Hofstadt f158bb4b5f add watch-only version of the rust agent 2020-08-08 21:34:25 +02:00
Hendrik Hofstadt 3b96e0cc6d track meta of wrapped assets; update SDK 2020-08-08 12:35:24 +02:00
Hendrik Hofstadt 3aaba4b5bc add create wrapped step to initial inbound transfers 2020-08-07 22:11:19 +02:00
Hendrik Hofstadt 30666fd7ff track wrapped asset meta, test CLI with acc creation 2020-08-07 21:48:22 +02:00
Hendrik Hofstadt ff0b4766ae add instruction constructors 2020-08-07 16:10:30 +02:00
Hendrik Hofstadt 86dd02e0e6 Rework accounts in solana programs 2020-08-07 13:38:09 +02:00