Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ETH connector #59

Merged
merged 119 commits into from
May 28, 2021
Merged
Show file tree
Hide file tree
Changes from 109 commits
Commits
Show all changes
119 commits
Select commit Hold shift + click to select a range
98b302a
Added prover & extended types
mrLSD Apr 2, 2021
97a3759
Mode Borsh args from types to parameters
mrLSD Apr 2, 2021
a889328
Merge branch 'master' of github.com:aurora-is-near/aurora-engine into…
mrLSD Apr 5, 2021
25154f0
Added fungible tokens
mrLSD Apr 5, 2021
a0942a2
Added eth-connector
mrLSD Apr 6, 2021
5876814
Modify assert for fee
mrLSD Apr 6, 2021
facc786
Fix formatting
mrLSD Apr 6, 2021
b055a54
Extend eth-conenctor with EVM token logic
mrLSD Apr 6, 2021
eb9e361
Changed eth-connector deposit logic
mrLSD Apr 6, 2021
fcc1332
Added changes for ETH deposit/withdraw and Engine changes
mrLSD Apr 6, 2021
978474b
Mint ETH-tokens
mrLSD Apr 7, 2021
041879e
Added: transfer_eth
mrLSD Apr 7, 2021
b5ffb23
ETH withdraw basic method
mrLSD Apr 7, 2021
a7e73f4
eth-withdraw validation structure & modified Deposit-eth fields
mrLSD Apr 8, 2021
45a5ca9
eth transfer and withdraw logic
mrLSD Apr 8, 2021
676a86c
eip712 message verifier - started encoding
mrLSD Apr 8, 2021
e345d71
added encode-packed
mrLSD Apr 9, 2021
de7f36d
virefy EIP712 message for withdraw
mrLSD Apr 9, 2021
f1f6479
Changed EIP712 message fields
mrLSD Apr 9, 2021
944b6e2
Modify logs for EIP712 messages
mrLSD Apr 9, 2021
1201a39
Test EIP712
mrLSD Apr 12, 2021
11dec10
Tests EIP712
mrLSD Apr 13, 2021
89f572c
Integration tests for encode_withdraw_eip712
mrLSD Apr 13, 2021
d6830ea
Integration tests for encode_withdraw_eip712
mrLSD Apr 13, 2021
dd1f8e1
EIP712-Withdraw: improvements and fixes.
sept-en Apr 14, 2021
96b3c0e
Extend tests for eth-connector
mrLSD Apr 14, 2021
348e5cc
Merge branch 'evm-deposit-withdraw' of github.com:aurora-is-near/auro…
mrLSD Apr 14, 2021
80f033b
eth-connector test deposit & balance & total_supply
mrLSD Apr 14, 2021
07251fd
Imporved tests
mrLSD Apr 15, 2021
2de5af8
FT tests
mrLSD Apr 15, 2021
e71d52a
Fixed verify_transfer_eip712
mrLSD Apr 16, 2021
09b79c1
Change test_withdraw_near
mrLSD Apr 16, 2021
f2e1f11
Tests for: ft_transfer, ft_transfer_call
mrLSD Apr 16, 2021
356ad42
test_eth_deposit_balance_total_supply
mrLSD Apr 16, 2021
6cae502
test and ifx: deposit_eth, withdraw_near
mrLSD Apr 17, 2021
d920662
References in fungible token (#29)
birchmd Apr 19, 2021
27f90ef
Fix: hide logging behind feature flag
birchmd Apr 19, 2021
3b8f0d5
Merge branch 'evm-deposit-withdraw' into improved-evm-token-logic
mrLSD Apr 21, 2021
1074daf
Remove eth-conenctor transfer methods and deposit for new design
mrLSD Apr 21, 2021
e2f3746
Integrate the ETH connector. (#24)
mrLSD Apr 21, 2021
5d26090
Completed Deposit logic
mrLSD Apr 21, 2021
628dfd8
Merge branch 'eth-connector' of github.com:aurora-is-near/aurora-engi…
mrLSD Apr 22, 2021
8b8043c
Fix clippy; added comments; improved ft_transfer_call
mrLSD Apr 22, 2021
41011e9
Extend external functions for eth-connector
mrLSD Apr 23, 2021
a4c1cc1
Added deploy_evm_token
mrLSD Apr 23, 2021
afb5291
Added ft_on_transfer logic
mrLSD Apr 23, 2021
a7b5d45
Changed ft_on_transfer & remove json depends
mrLSD Apr 23, 2021
886c7f9
Changed deposit logic and fixed transfers
mrLSD Apr 26, 2021
402223c
Added register relayer
mrLSD Apr 26, 2021
6c100d0
Added message coder for ft_transfer_call
mrLSD Apr 26, 2021
4217a5a
ft_on_transfer - added logic for erc20
mrLSD Apr 27, 2021
919f704
Impoved ft_on_transfer
mrLSD Apr 27, 2021
a662f50
ft_on_transfer: call erc20 contract adn send fee to Relayer. Added logs
mrLSD Apr 27, 2021
909b295
eth-connector: Removed unsued methods
mrLSD Apr 28, 2021
a0a02b1
tests: deposit & fixed init test
mrLSD Apr 28, 2021
c056e59
tests: depoist, withdraw
mrLSD Apr 29, 2021
9eac293
tests: fix test_withdraw_near
mrLSD Apr 29, 2021
253fb11
Eth-connector: never skip bridge call.
sept-en Apr 29, 2021
5b46752
Tests: fix ft_transfer_call
mrLSD Apr 29, 2021
1148981
ft_transfer_call - changed gas amountr
mrLSD Apr 29, 2021
fd7f31c
Fixed: test_eth_deposit_balance_total_supply, test_ft_transfer
mrLSD Apr 29, 2021
bae83f0
Merge branch 'improved-evm-token-logic' of github.com:aurora-is-near/…
mrLSD Apr 29, 2021
e97e7a8
Added: test_ft_transfer_call_near_eth
mrLSD Apr 29, 2021
f3f8e22
Clippy fix
mrLSD Apr 29, 2021
6bc6d3e
Added test_ft_transfer_call_erc20
mrLSD Apr 30, 2021
e98cd2b
Added test_ft_transfer_call_erc20
mrLSD Apr 30, 2021
da067eb
tests: ft_transfer_call for ERC20 changes
mrLSD Apr 30, 2021
95c80ff
Fix finish_deposit - promise flow when failed for ft_transfer_call
mrLSD May 1, 2021
8fbb523
added: test_deposit_with_same_proof
mrLSD May 3, 2021
cdf2e84
Improved EVM token master branch update (#50)
joshuajbouw May 5, 2021
5a0e427
Update src/connector.rs misspel
mrLSD May 5, 2021
79602e5
Update src/connector.rs change constants error
mrLSD May 5, 2021
d1cf4d7
Changed withdraw args
mrLSD May 5, 2021
8db04bc
Improved ETH connector logic (#36)
mrLSD May 5, 2021
81f935e
Merge branch 'impr2' into eth-connector
mrLSD May 5, 2021
0617912
Merge branch 'master' of github.com:aurora-is-near/aurora-engine into…
mrLSD May 5, 2021
9e4cbe5
Mint fee at ft_on_transfer for special case - self transfer
mrLSD May 5, 2021
61ae593
Fix tests
mrLSD May 5, 2021
c64d81a
Added check for fail promise result
mrLSD May 6, 2021
a2f7dd7
Remove ERC20-related functionality. Typo fixes.
sept-en May 6, 2021
8812294
Typo and comment fixes.
sept-en May 6, 2021
ee4add9
EthConnector: rename `new()` to `get_instance()`.
sept-en May 6, 2021
4a5624b
Fixed save contract and changed key for storage
mrLSD May 6, 2021
805971a
Merge branch 'master' of github.com:aurora-is-near/aurora-engine into…
mrLSD May 7, 2021
0df9382
Added doc for eth-connector, extended payable methods
mrLSD May 7, 2021
a9837cc
Make file changes, typo fix
mrLSD May 10, 2021
d14d045
Removed logs: withdraw. Fixed Makefile & tests
mrLSD May 10, 2021
8cfb9c5
Changed key-generation for eth-connector & fungible token
mrLSD May 10, 2021
5cb842d
Changed github action for tests
mrLSD May 10, 2021
530163c
Fix git action for tests
mrLSD May 10, 2021
46b1793
Fix git action for tests
mrLSD May 10, 2021
b9bb3ca
Merge branch 'master' of github.com:aurora-is-near/aurora-engine into…
mrLSD May 11, 2021
6a88507
return previous version test_deposit_with_same_proof
mrLSD May 11, 2021
e99e928
Extend test_withdraw_near
mrLSD May 11, 2021
c7b5579
Merge remote-tracking branch 'upstream/master' into eth-connector
joshuajbouw May 11, 2021
85fec05
Return actual panic
joshuajbouw May 11, 2021
735bd8c
Fix sanity tests in connector (#71)
birchmd May 11, 2021
92e3a20
Merge branch 'master' of github.com:aurora-is-near/aurora-engine into…
mrLSD May 12, 2021
05711e3
Merge branch 'master' of github.com:aurora-is-near/aurora-engine into…
mrLSD May 12, 2021
d50be39
Merge branch 'master' of github.com:aurora-is-near/aurora-engine into…
mrLSD May 12, 2021
4a009af
Merge branch 'develop' of github.com:aurora-is-near/aurora-engine int…
mrLSD May 13, 2021
87dfbf2
Precompiles: fix primise_create invocation
mrLSD May 13, 2021
5b0e843
Fix ft_on_transfer relayer fee mint
mrLSD May 13, 2021
f2a24fe
Early checking for ft_transfer_call message data
mrLSD May 13, 2021
d7298dd
Changed finish_deposit_near - asserts before save Proof hash
mrLSD May 13, 2021
3b3e2f2
Use storage::bytes_to_key in EthConnectorContract::get_contract_key
birchmd May 13, 2021
d7d902e
Added test_ft_transfer_call_without_relayer
mrLSD May 13, 2021
19fa058
Added test_ft_transfer_call_fee_greater_than_amount
mrLSD May 13, 2021
f180a08
Added overflow check: ft_transfer_call
mrLSD May 13, 2021
7fb4239
Eugene's Eth connector review (#97)
May 26, 2021
b4a5d1e
Fix tests for eth-connector
mrLSD May 26, 2021
edc8e1d
Eth-connector extended proof tests (#106)
mrLSD May 27, 2021
92f877d
EthConnector: make AdminControlled and pausable (#88)
sept-en May 27, 2021
ef24c7f
Eth-Connector tests: improvements and minor refactoring. (#108)
sept-en May 28, 2021
540ccb1
Eth-connector: merge `develop` branch (#109)
sept-en May 28, 2021
29785ce
EthConnector: restrict connector init to owner. (#112)
sept-en May 28, 2021
f86197d
Add compilation feature for exit precompiles. (#111)
sept-en May 28, 2021
ab69d39
Eth-connector:add the way to upgrade contract data. (#113)
sept-en May 28, 2021
60374b6
Merge branch 'develop' of https://github.com/aurora-is-near/aurora-en…
sept-en May 28, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
3 changes: 1 addition & 2 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,7 @@ jobs:
profile: minimal
toolchain: nightly-2021-03-25
override: true
- run: make release
- run: ls -lH release.wasm
- run: make test-build
- name: Run cargo test
uses: actions-rs/cargo@v1
with:
Expand Down
8 changes: 1 addition & 7 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 3 additions & 2 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ wee_alloc = { version = "0.4.5", default-features = false }
lunarity-lexer = { git = "https://github.com/ilblackdragon/lunarity", rev = "5201d9a76f7e491082b7f74af7e64049271e387f", default-features = false }
ethabi = { git = "https://github.com/darwinia-network/ethabi", branch = "xavier-no-std", default-features = false }
hex = { version = "0.4", default-features = false, features = ["alloc"] }
rjson = { version = "0.3.1", default-features = false }
byte-slice-cast = { version = "1.0", default-features = false }

[dev-dependencies]
bstr = "0.2"
Expand All @@ -73,6 +73,7 @@ git2 = "0.13"
[features]
default = ["sha2", "std"]
std = ["borsh/std", "evm/std", "primitive-types/std", "rlp/std", "sha3/std", "ethabi/std", "lunarity-lexer/std", "bn/std"]
testnet = []
contract = []
evm_bully = []
log = []
integration-test = ["log"]
12 changes: 9 additions & 3 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
CARGO = cargo
NEAR = near
FEATURES = contract
FEATURES = contract,log
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This shouldn't be on by default.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There was a discussion about this on Slack.

Summary is: if something goes wrong in production there's basically no way to know what happened without logging and it's not that expensive to have it (@mrLSD measured it to be ~0.5 Tgas which is much much less than any operation currently).


ifeq ($(evm-bully),yes)
FEATURES := $(FEATURES),evm_bully
Expand All @@ -15,6 +15,7 @@ release.wasm: target/wasm32-unknown-unknown/release/aurora_engine.wasm

target/wasm32-unknown-unknown/release/aurora_engine.wasm: Cargo.toml Cargo.lock $(wildcard src/*.rs)
RUSTFLAGS='-C link-arg=-s' $(CARGO) build --target wasm32-unknown-unknown --release --no-default-features --features=$(FEATURES) -Z avoid-dev-deps
ls -l target/wasm32-unknown-unknown/release/aurora_engine.wasm

debug: debug.wasm

Expand All @@ -24,6 +25,11 @@ debug.wasm: target/wasm32-unknown-unknown/debug/aurora_engine.wasm
target/wasm32-unknown-unknown/debug/aurora_engine.wasm: Cargo.toml Cargo.lock $(wildcard src/*.rs)
$(CARGO) build --target wasm32-unknown-unknown --no-default-features --features=$(FEATURES) -Z avoid-dev-deps

test-build:
RUSTFLAGS='-C link-arg=-s' $(CARGO) build --target wasm32-unknown-unknown --release --no-default-features --features=contract,integration-test -Z avoid-dev-deps
ln -sf target/wasm32-unknown-unknown/release/aurora_engine.wasm release.wasm
ls -l target/wasm32-unknown-unknown/release/aurora_engine.wasm

.PHONY: all release debug

deploy: release.wasm
Expand All @@ -35,10 +41,10 @@ check-format:
$(CARGO) fmt -- --check

check-clippy:
$(CARGO) +nightly clippy --no-default-features --features=$(FEATURES) -- -D warnings
$(CARGO) clippy --no-default-features --features=$(FEATURES) -- -D warnings
Comment on lines -38 to +44
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍
I always do this locally as well. Maybe worth adding a comment linking it with #34 (once that issue is resolved then nightly should work again)


# test depends on release since `tests/test_upgrade.rs` includes `release.wasm`
test: release
test: test-build
$(CARGO) test

format:
Expand Down
42 changes: 42 additions & 0 deletions doc/eth-connector.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
# ETH connector

## Build
1. For production set in the Makefile
```
FEATURES = contract
```
1.1. For **development and testing** set in the Makefile
```
FEATURES = contract,integration-test
```
2. Build release: `$ make release`
3. Run tests: `$ cargo test`
4. Deploying process is common for Aurora itself. Please reference [README.md](../README.md)

## Initialize eth-conenctor
With `near-cli` run:
```
$ near call <NEAR_ACC> new_eth_connector '{"prover_account": "<PROVER_NEAR_ACCOUNT>", "eth_custodian_address": "<ETH_ADDRESS>"}' --account-id <NEAR_ACC>

```

## ETH connector specific methods
* new_eth_connector (call once)
* deposit (mutable)
* withdraw (mutable, payable)
* finish_deposit_near (private, mutable)
* ft_total_supply (view)
* ft_total_supply_near (view)
* ft_total_supply_eth (view)
* ft_balance_of (view)
* ft_balance_of_eth (view)
* ft_transfer (mutable, payable)
* ft_resolve_transfer (private, mutable)
* ft_transfer_call (mutable, payable)
* ft_on_transfer (private, mutable)
* storage_deposit (mutable)
* storage_withdraw (mutable, payable)
* storage_balance_of (view)

## Ethereum specific flow
Follow by [this instruction](https://github.com/aurora-is-near/eth-connector/blob/master/README.md).