Commit Graph

38 Commits

Author SHA1 Message Date
valentin a055af1416 move EVM state setup into a seperate contract
Change-Id: Ie000dd042c4ebbd7084511d38d87a7555c5d8048
2021-08-19 10:19:26 +00:00
valentin c3fa835196 ethereum generalized messaging & governance
Change-Id: I412111a10749050ca095458f2fcfe81ce0fe189c
2021-05-27 16:01:49 +02:00
Hendrik Hofstadt c405ec9f98 Ethereum refactor
This splits the Ethereum contract into a generic Wormhole and a
purpose-specific token transfer module that uses the main contract
for verification.

This acts as a draft for this structure.

Change-Id: I59e133dd7558d5e046045e464e4740241c696d5f
2021-04-20 09:51:07 +00:00
Hendrik Hofstadt f4a7e705c9
Refactor VAA parsing into public view method (#153)
* refactor VAA parsing into public view method
2021-01-18 20:14:00 +01:00
Hendrik Hofstadt dadb287220
bridge: fix quorum calculation (#69) 2020-10-28 21:22:15 +01:00
Hendrik Hofstadt 8d7a35683e
bridge: fix quorum (#56) 2020-10-25 08:57:04 +01:00
Hendrik Hofstadt b4b0c61dfc bridge: require single step guardian set index changes 2020-08-31 09:25:41 +02:00
Hendrik Hofstadt 3e88ed023e ethereum: properly realign transfer decimals, handle decimals on ETH transfers, don't allow same-chain transfers
Co-authored-by: Valentin von Albrecht <valentinvonalbrecht@yahoo.de>
2020-08-30 19:25:31 +02:00
Hendrik Hofstadt 4871022fee ethereum: prevent invalid guardian sets or same signer signatures
Co-authored-by: valentin <valentinvonalbrecht@yahoo.de>
2020-08-30 17:30:43 +02:00
Hendrik Hofstadt a2bd5fbb11 ethereum: truncate decimals to 9 2020-08-30 11:21:45 +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 a9dee7da99 ethereum: use create2 for wrapped assets 2020-08-28 08:35:00 +02:00
Leo 5a72d9029a VAA guardian devnet submission 2020-08-27 17:46:40 +02:00
Hendrik Hofstadt e0533c70c5 ethereum: make sure quorum calculation is done in the right order 2020-08-22 01:11:03 +02:00
Hendrik Hofstadt 9b3f7999ba ethereum: add nonce to transfer input 2020-08-20 20:11:45 +02:00
Hendrik Hofstadt 085af1d6b7 Add reentrancy protection 2020-08-20 16:58:03 +02:00
Hendrik Hofstadt 59449a30b3 Update VAA structure 2020-08-19 16:41:25 +02:00
Leo 69d8125c67 ethereum: emit guardian set IDs in LogGuardianSetChanged
go-ethereum is having trouble parsing a log with structs.
2020-08-19 11:47:29 +02:00
Leo 8b34a3c534 ethereum: add getGuardianSet accessor 2020-08-18 16:19:28 +02:00
Leo 7903402fa6 Deterministic hashes for ETH lockups
We're missing a nonce for truly unique hashes - for now, two
identical transfers will only be executed once.
2020-08-17 19:29:25 +02:00
Leo e548bbbee3 devnet: add send-lockups.js truffle script to generate test lockups 2020-08-17 16:31:48 +02:00
Hendrik Hofstadt 6e5a3fa118 Update ETH smart contract for new signature schema 2020-08-15 00:09:48 +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 9749044c25 make wrapped asset check public on eth 2020-08-09 21:16:18 +02:00
Hendrik Hofstadt c2673c109a prevent old guardians from updating the set 2020-08-07 11:12:46 +02:00
Hendrik Hofstadt 7add58bef5 clean up contract 2020-08-06 23:36:49 +02:00
Hendrik Hofstadt 6e0fe64937 Add smart contract tests 2020-08-06 23:32:31 +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 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
Leo 71c0e29dcf solana: note lack of clock reliability 2020-08-04 19:52:41 +02:00
Leo f06c4fc50d eth: fix typo 2020-08-04 19:52:41 +02:00
Hendrik Hofstadt 20a67604fd
Implement full bridge in Solidity (#5) 2020-08-03 15:09:40 +02:00
Hendrik Hofstadt ec7f7565da ethereum: remove admin key change feature
Allowing a guardian to change the admin key will enable them to cast multiple votes
2020-07-28 15:17:36 +02:00
Hendrik Hofstadt d4fab1190c chore: restructure for monorepo 2020-07-28 12:39:38 +02:00