Commit Graph

54 Commits

Author SHA1 Message Date
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 08fddb7d54 Update specs 2020-08-15 00:31:26 +02:00
Hendrik Hofstadt 6e5a3fa118 Update ETH smart contract for new signature schema 2020-08-15 00:09:48 +02:00
Hendrik Hofstadt 2a096790d3 new VAA format in Golang 2020-08-14 22:45:45 +02:00
Hendrik Hofstadt ca4e4a3243 WIP SPL token integration 2020-08-14 21:33:46 +02:00
Hendrik Hofstadt 0e69aa4ddc remove requirement for half_q on pub key x
Schnorr signatures don't have the ecdsa malleability vulnerability, also we protect against malleable signatures by tracking consumed VAAs using their body hash.
The check was implemented because the author assumed that ecrecover in the EVM does not accept s < HALF_Q values for malleability protection. There were 2 misconceptions:
1. pubkey_x is passed in as r and not s, 2. the check is not enforced in the precompiled evm instruction.
2020-08-10 21:08:57 +02:00
Hendrik Hofstadt f54fc43118 update claimed vaa doc 2020-08-10 08:48:25 +02:00
Hendrik Hofstadt 47464d7600 basic ETH interaction; WIP Solana interaction 2020-08-10 00:01:18 +02:00
Hendrik Hofstadt 70a1f24220 add rudimentary VAA sending 2020-08-10 00:00:36 +02:00
Hendrik Hofstadt 9749044c25 make wrapped asset check public on eth 2020-08-09 21:16:18 +02:00
Hendrik Hofstadt f5f62e8b3e update protocol spec for foreign -> root transfers 2020-08-09 18:46:11 +02:00
Hendrik Hofstadt 8167285560 update bridge doc 2020-08-09 18:26:58 +02:00
Hendrik Hofstadt c1d0f4dd2d add web skeleton 2020-08-09 18:16:52 +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
Hendrik Hofstadt c2673c109a prevent old guardians from updating the set 2020-08-07 11:12:46 +02:00
Hendrik Hofstadt 6aa9c874cf extend tests on contract 2020-08-06 23:41:26 +02:00
Hendrik Hofstadt 7add58bef5 clean up contract 2020-08-06 23:36:49 +02:00
Hendrik Hofstadt f52ba57eff Add source reference 2020-08-06 23:34:15 +02:00
Hendrik Hofstadt 6e0fe64937 Add smart contract tests 2020-08-06 23:32:31 +02:00
Hendrik Hofstadt 9a4e1f396d Track confirmations in watcher 2020-08-06 19:14:31 +02:00
Hendrik Hofstadt 90b9d403e6 Optimize contract 2020-08-06 18:59:58 +02:00
Hendrik Hofstadt 5368c26332 Remove outdated comment 2020-08-06 16:28:28 +02:00
Hendrik Hofstadt 8f7b4917fa Support fee-charging ERC20 tokens 2020-08-06 16:26:25 +02:00
Hendrik Hofstadt c23f8103de Fix wrapped asset proxy 2020-08-06 16:17:41 +02:00
Hendrik Hofstadt b6c85217b6 Add ETH tracking 2020-08-06 15:43:45 +02:00
Hendrik Hofstadt be2a51b447 Optimize ETH contract 2020-08-06 13:38:25 +02:00
Hendrik Hofstadt bb2e3be463 Update Wormhole solidity contract 2020-08-05 22:44:28 +02:00
Hendrik Hofstadt b3832ab8c7 Fully implement U256; add source_address to transfer VAA 2020-08-05 13:12:54 +02:00
Hendrik Hofstadt dece1a6a90 Fix protocol compatibility and increase VAA test coverage 2020-08-05 12:28:44 +02:00
Hendrik Hofstadt a1ba223361 Remove duplicate CL libraries, add signing logic to VAA 2020-08-05 10:48:43 +02:00
Hendrik Hofstadt 90e75b3d22 Add token CLI copy that can create a bridge 2020-08-05 10:08:25 +02:00
Hendrik Hofstadt 8f333ba0fd Fix chainlink key generation/validation 2020-08-04 23:52:39 +02:00
Hendrik Hofstadt 7993a72dea Add VAA serialization logic 2020-08-04 23:43:16 +02:00
Leo 540e39296a bridge: README stub 2020-08-04 19:52:41 +02:00
Leo 2a81b445b1 Import Chainlink's Distributed Schnorr implementation
Unmodified except for imports and addition of license files.
2020-08-04 19:52:41 +02:00
Leo 71c0e29dcf solana: note lack of clock reliability 2020-08-04 19:52:41 +02:00
Leo d81d916b5e Remove reclaim mechanism from docs 2020-08-04 19:52:41 +02:00
Leo f06c4fc50d eth: fix typo 2020-08-04 19:52:41 +02:00
Leo a7d17cf5aa Add persistent keys and bootstrap peer
This connects all nodes to a full mesh.
2020-08-04 12:15:51 +02:00
Leo b8c2efdf86 Simple local devnet for development 2020-08-04 12:15:51 +02:00
Leo dd8b2ade81 libp2p stub that can find peers on a private network
Test Plan:

    go run github.com/certusone/wormhole/bridge/cmd/guardiand -network wormhole-dev -port 9000 &
    go run github.com/certusone/wormhole/bridge/cmd/guardiand -network wormhole-dev -bootstrap /ip4/127.0.0.1/udp/9000/quic/p2p/<id> -port 9001
2020-08-04 12:15:51 +02:00
Leo 39eb919aaa Import supervision tree from internal SignOS repo
Once SignOS is public, we can un-vendor this.
2020-08-04 12:15:51 +02:00
Hendrik Hofstadt 20a67604fd
Implement full bridge in Solidity (#5) 2020-08-03 15:09:40 +02:00
Hendrik Hofstadt 7ddf910faa
Implement initial solana program (#3)
* add rust program

* update rust program

* first VAA actions

* implement full transfer

* remove token copy

* restructure and copy
2020-08-03 14:55:58 +02:00
Hendrik Hofstadt 72cbb2aec2
Implement initial spec (#2)
* docs: Upgraded design doc

* update formatting

* update set change VAA

* typo fix

* Update protocol.md

* wording and typos

* Update protocol.md

* clarify use of MultiSig and data-availability

* nits in the protocol

* fix typo

* update solana program for new spec

* track executed VAAs

* finalize initial spec

Co-authored-by: Leopold Schabel <leo@certus.one>
2020-07-31 19:51:07 +02:00