Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
86 commits
Select commit Hold shift + click to select a range
b4e81c0
Utils for query parsing and validation
k1rill-fedoseev Nov 28, 2019
a998180
Utils for interaction with binance chain
k1rill-fedoseev Nov 28, 2019
bc2059b
Proxy component refactor
k1rill-fedoseev Nov 28, 2019
99f9af1
TSS-Sign component refactor
k1rill-fedoseev Nov 28, 2019
542e4cf
Binance watcher component refactor
k1rill-fedoseev Nov 28, 2019
caf7c8b
Removed unneeded dependencies from Dockerfiles
k1rill-fedoseev Nov 29, 2019
0f1ef68
Refactored shared folder usage, using same dir structure in docker
k1rill-fedoseev Nov 29, 2019
85e338e
Added changeThreshold / changeCloseEpoch methods description in DEMO.md
k1rill-fedoseev Nov 29, 2019
1b424d2
Fixed keygen cancellation. Added integration tests for cancelling key…
k1rill-fedoseev Nov 29, 2019
253f9d8
Test service for getting bridge actions history
k1rill-fedoseev Nov 29, 2019
bf92d48
Added possibility of getting validators for each message
k1rill-fedoseev Nov 29, 2019
33f5b51
Automatic update of shared db address in bridge history config
k1rill-fedoseev Dec 2, 2019
1286e3e
Included block number in bridge history report
k1rill-fedoseev Dec 2, 2019
6063a61
Possibility to specify explicit start block and message epoch
k1rill-fedoseev Dec 3, 2019
47d734e
Fixed Action names
k1rill-fedoseev Dec 3, 2019
4396a8c
Using tss v0.2.8, updated rust version to stable 1.39
k1rill-fedoseev Dec 3, 2019
32cf515
Updated Circle CI config. Get rid of unnecessary cache usage, docker …
k1rill-fedoseev Dec 4, 2019
496b2d6
Contract support for selecting responsible validator
k1rill-fedoseev Dec 19, 2019
b691bd9
Separate side chain watcher, choosing new messages for propagation
k1rill-fedoseev Dec 19, 2019
21d4d49
Dedicated eth sender service, with separate job queue
k1rill-fedoseev Dec 19, 2019
5ebed08
Removed side oracle from ethereum testnet
k1rill-fedoseev Dec 19, 2019
3b8d4a7
Updated oracle to use separate senders and side watcher
k1rill-fedoseev Dec 19, 2019
aacc2c1
Updated .env configs
k1rill-fedoseev Dec 19, 2019
a22efbc
Updated CI config, included linting in CI
k1rill-fedoseev Dec 19, 2019
e7fefa1
Renamed some oracle files
k1rill-fedoseev Dec 19, 2019
1d5386c
Moved to tss v0.2.9
k1rill-fedoseev Dec 19, 2019
f52d805
Updated oracle services names. Improved docker-compose files for oracle
k1rill-fedoseev Dec 19, 2019
9d944fb
Removed openzeppelin submodules, import as npm package
k1rill-fedoseev Dec 19, 2019
bb363ab
Refactored home contracts file structure
k1rill-fedoseev Dec 19, 2019
da61be7
Refactored deploy side contracts
k1rill-fedoseev Dec 19, 2019
6a1e1d2
Updated migration script
k1rill-fedoseev Dec 19, 2019
b2d8cb5
Linting npm scripts
k1rill-fedoseev Dec 20, 2019
660fe27
Npm script for e2e tests
k1rill-fedoseev Dec 20, 2019
93b1771
Engine version in package.json
k1rill-fedoseev Dec 20, 2019
fee79a7
Renamed contracts
k1rill-fedoseev Dec 21, 2019
17dafda
Reorganised dir structure
k1rill-fedoseev Dec 23, 2019
43c8b2d
Updated contracts paths in configs
k1rill-fedoseev Dec 23, 2019
2ce6a61
Npm scripts for testing, updated ci config to use npm scripts
k1rill-fedoseev Dec 23, 2019
fdc1a84
Couple of tests for home contracts
k1rill-fedoseev Dec 23, 2019
19eec84
Fixed ci config
k1rill-fedoseev Dec 23, 2019
916583f
Added sudo modifier
k1rill-fedoseev Dec 23, 2019
204dd2c
Added Migrations contract, updated ci configuration
k1rill-fedoseev Dec 23, 2019
a0bf09d
Fixed ci config
k1rill-fedoseev Dec 23, 2019
6e2b5d3
Side tests stub
k1rill-fedoseev Dec 23, 2019
a2cd72b
Fixes in configs and scripts
k1rill-fedoseev Dec 23, 2019
98c33f7
Added eslint-plugin-import in dependencies
k1rill-fedoseev Dec 23, 2019
b29ab8b
Fixed service names
k1rill-fedoseev Dec 23, 2019
5d8d875
Saving deploy logs
k1rill-fedoseev Dec 24, 2019
4f093d7
Specified dev dependencies, added npm scripts for testing, evaludatin…
k1rill-fedoseev Dec 26, 2019
cb9d1ae
Updated .*ignore configs
k1rill-fedoseev Dec 26, 2019
8b52e2e
Fixed solidity linting errors
k1rill-fedoseev Dec 26, 2019
4f68b7d
Script for running unit tests and coverage
k1rill-fedoseev Dec 26, 2019
1926b49
Removed unused part from signupSign
k1rill-fedoseev Dec 26, 2019
4cb299f
Updated migrations to support test and coverage networks
k1rill-fedoseev Dec 26, 2019
c667dbf
Updated bridge tests to cover full contracts
k1rill-fedoseev Dec 26, 2019
adefb91
Added solcover config, and specific coverage network in truffle config
k1rill-fedoseev Dec 26, 2019
89bdf84
Added coverage testing in circle ci config
k1rill-fedoseev Dec 26, 2019
dc019bc
Fixed solcover configs
k1rill-fedoseev Dec 29, 2019
cf54d9f
Added coverage config in truffle config
k1rill-fedoseev Dec 29, 2019
bdb196f
Fixed side tests coverage npm script
k1rill-fedoseev Dec 29, 2019
09d8f3c
Introduced side network tests
k1rill-fedoseev Dec 29, 2019
66d2ba5
Fixed dependency installation
k1rill-fedoseev Dec 30, 2019
5d97d29
Updated truffle-hdwallet-provider dependency
k1rill-fedoseev Dec 30, 2019
d71dc48
Use bash &> redirecting alias
k1rill-fedoseev Dec 30, 2019
2df6904
Updated DEMO.md
k1rill-fedoseev Dec 30, 2019
1c9d554
Coveralls support
k1rill-fedoseev Dec 31, 2019
7918129
Install only prod dependencies in deploy images
k1rill-fedoseev Dec 31, 2019
4a0c30f
Added events tracking in home chain tests
k1rill-fedoseev Dec 31, 2019
4a5c3f2
Added dockerignore to contracts deployment context
k1rill-fedoseev Jan 1, 2020
762b8cd
Storing foreign bridge address as bytes20, instead of storing the who…
k1rill-fedoseev Jan 2, 2020
338f023
Removed repeated docker builds
k1rill-fedoseev Jan 2, 2020
8bc27ff
Added dockerfile linting
k1rill-fedoseev Jan 3, 2020
8b9c254
Moved mocha dependency in tests package.json
k1rill-fedoseev Jan 3, 2020
c9dbc9e
Fixed typos
k1rill-fedoseev Jan 3, 2020
2040aca
Fixed funds_transfer
k1rill-fedoseev Jan 3, 2020
a56c817
Added ca-certificates in dockerfile
k1rill-fedoseev Jan 3, 2020
3571c07
Refactored home contracts
k1rill-fedoseev Jan 6, 2020
0218caa
Added coveralls badge
k1rill-fedoseev Jan 6, 2020
181a0ec
Updated solidity imports
k1rill-fedoseev Jan 6, 2020
3dfdbf1
More strict solidity linting
k1rill-fedoseev Jan 6, 2020
6e6062c
Home contracts support for changing of home/foreign limits at any tim…
k1rill-fedoseev Jan 7, 2020
dbec1cb
Unit tests coverage for new functionality
k1rill-fedoseev Jan 7, 2020
a36d586
Updated e2e tests for testing limits changing and range size updates
k1rill-fedoseev Jan 7, 2020
8251842
Updated oracle code to support new limits functionality
k1rill-fedoseev Jan 7, 2020
f3077bd
Added npm solidity compile scripts
k1rill-fedoseev Jan 8, 2020
2dec546
Removed epoch number in transfer action. Added a mechanism for requeu…
k1rill-fedoseev Jan 8, 2020
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
221 changes: 160 additions & 61 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,9 @@ version: 2.1
orbs:
bridge:
executors:
node-dev:
node:
docker:
- image: circleci/node:10.15
environment:
TARGET_NETWORK: development
commands:
fetch_repo:
description: "Checkout and init submodules"
Expand All @@ -15,19 +13,58 @@ orbs:
- run:
name: "Initialize submodules"
command: git submodule update --init
install_truffle:
description: "Install truffle"
steps:
- run:
name: "Install truffle"
command: npm install truffle
install_ganache:
description: "Install ganache-cli"
steps:
- run:
name: "Install ganache-cli"
command: npm install ganache-cli
install_linters:
description: "Install code linters"
steps:
- run:
name: "Install eslint"
command: |
npm install eslint
npm install eslint-config-airbnb
npm install eslint-plugin-node
npm install eslint-plugin-truffle
npm install eslint-plugin-import
- run:
name: "Install solhint"
command: npm install solhint
- run:
name: "Install hadolint"
command: |
sudo wget -O /bin/hadolint https://github.com/hadolint/hadolint/releases/download/v1.17.3/hadolint-Linux-x86_64
sudo chmod +x /bin/hadolint
install_solidity_coverage:
description: "Install solidity-coverage"
steps:
- run:
name: "Install solidity-coverage"
command: npm install solidity-coverage
install_coveralls:
description: "Install coveralls plugin and lcov merger"
steps:
- run:
name: "Install coveralls plugin"
command: npm install coveralls
- run:
name: "Install lcov merger"
command: npm install lcov-result-merger
setup_docker:
description: "Set up remote docker engine"
steps:
- setup_remote_docker:
version: 18.09.3
docker_layer_caching: true
restore_tss_image:
description: "Restores tss image from cache"
steps:
- restore_cache:
name: "Restore tss image from cache"
key: "tss-v1-{{ .Branch }}"
- load_tss
save_tss:
description: "Save tss image to workspace"
steps:
Expand All @@ -41,11 +78,6 @@ orbs:
root: ./workspace
paths:
- tss.tar.gz
- save_cache:
name: "Save tss image to cache"
paths:
- ./workspace/tss.tar.gz
key: "tss-v1-{{ .Branch }}"
load_tss:
description: "Load tss image from workspace"
steps:
Expand All @@ -63,13 +95,16 @@ orbs:
name: "Saving validator<< parameters.validator >> logs"
command: |
mkdir -p ./artifacts/logs/validator<< parameters.validator >>
docker logs validator<< parameters.validator >>_rabbitmq_1 > ./artifacts/logs/validator<< parameters.validator >>/rabbitmq.log
docker logs validator<< parameters.validator >>_redis_1 > ./artifacts/logs/validator<< parameters.validator >>/redis.log
docker logs validator<< parameters.validator >>_proxy_1 > ./artifacts/logs/validator<< parameters.validator >>/proxy.log
docker logs validator<< parameters.validator >>_eth-watcher_1 > ./artifacts/logs/validator<< parameters.validator >>/eth-watcher.log
docker logs validator<< parameters.validator >>_bnc-watcher_1 > ./artifacts/logs/validator<< parameters.validator >>/bnc-watcher.log
docker logs validator<< parameters.validator >>_signer_1 > ./artifacts/logs/validator<< parameters.validator >>/signer.log
docker logs validator<< parameters.validator >>_keygen_1 > ./artifacts/logs/validator<< parameters.validator >>/keygen.log
docker logs validator<< parameters.validator >>_rabbitmq_1 &> ./artifacts/logs/validator<< parameters.validator >>/rabbitmq.log
docker logs validator<< parameters.validator >>_redis_1 &> ./artifacts/logs/validator<< parameters.validator >>/redis.log
docker logs validator<< parameters.validator >>_proxy_1 &> ./artifacts/logs/validator<< parameters.validator >>/proxy.log
docker logs validator<< parameters.validator >>_home-watcher_1 &> ./artifacts/logs/validator<< parameters.validator >>/home-watcher.log
docker logs validator<< parameters.validator >>_side-watcher_1 &> ./artifacts/logs/validator<< parameters.validator >>/side-watcher.log
docker logs validator<< parameters.validator >>_bnc-watcher_1 &> ./artifacts/logs/validator<< parameters.validator >>/bnc-watcher.log
docker logs validator<< parameters.validator >>_sign-client_1 &> ./artifacts/logs/validator<< parameters.validator >>/sign-client.log
docker logs validator<< parameters.validator >>_keygen-client_1 &> ./artifacts/logs/validator<< parameters.validator >>/keygen-client.log
docker logs validator<< parameters.validator >>_side-sender_1 &> ./artifacts/logs/validator<< parameters.validator >>/side-sender.log
docker logs validator<< parameters.validator >>_home-sender_1 &> ./artifacts/logs/validator<< parameters.validator >>/home-sender.log
when: always
save_artifacts:
description: "Save and upload tests results, save validator logs to artifacts"
Expand All @@ -78,7 +113,7 @@ orbs:
name: "Save tests results"
command: |
mkdir -p ./artifacts/test_results/mocha
docker cp "tests:/tests/results.xml" "./artifacts/test_results/mocha/results.xml"
cp "./tests/results.xml" "./artifacts/test_results/mocha/results.xml"
when: always
- store_test_results:
path: ./artifacts/test_results/mocha
Expand All @@ -93,80 +128,144 @@ orbs:
name: "Save ethereum logs"
command: |
mkdir -p ./artifacts/logs/ethereum
docker logs ethereum-testnet_side-oracle_1 > ./artifacts/logs/ethereum/side-oracle.log
docker logs ethereum-testnet_ganache_home_1 > ./artifacts/logs/ethereum/ganache_home.log
docker logs ethereum-testnet_ganache_side_1 > ./artifacts/logs/ethereum/ganache_side.log
docker logs ethereum-testnet_ganache_home_1 &> ./artifacts/logs/ethereum/ganache_home.log
docker logs ethereum-testnet_ganache_side_1 &> ./artifacts/logs/ethereum/ganache_side.log
when: always
- run:
name: "Save binance logs"
command: |
mkdir -p ./artifacts/logs/binance
docker logs binance-testnet_node_1 > ./artifacts/logs/binance/node.log
docker logs binance-testnet_api-server_1 > ./artifacts/logs/binance/api-server.log
docker logs binance-testnet_http-api_1 > ./artifacts/logs/binance/http-api.log
docker logs binance-testnet_node_1 &> ./artifacts/logs/binance/node.log
docker logs binance-testnet_api-server_1 &> ./artifacts/logs/binance/api-server.log
docker logs binance-testnet_http-api_1 &> ./artifacts/logs/binance/http-api.log
when: always
- run:
name: "Save deploy logs"
command: |
mkdir -p ./artifacts/logs/deploy
docker logs deploy_token &> ./artifacts/logs/deploy/deploy_token.log
docker logs deploy_bridge &> ./artifacts/logs/deploy/deploy_bridge.log
docker logs deploy_db &> ./artifacts/logs/deploy/deploy_db.log
when: always
- store_artifacts:
path: ./artifacts
destination: artifacts
when: always
jobs:
init_tss:
executor: bridge/node-dev
executor: bridge/node
steps:
- bridge/fetch_repo
- bridge/setup_docker
- bridge/restore_tss_image
- run:
name: "Build tss image"
command: docker build --cache-from tss -t tss ./src/tss || docker build -t tss ./src/tss
command: docker build -t tss ./src/tss
- bridge/save_tss
run_tests:
executor: bridge/node-dev
tests_e2e:
executor: bridge/node
steps:
- bridge/fetch_repo
- bridge/setup_docker
- attach_workspace:
at: ./workspace
- bridge/load_tss
- run: npm run tests:e2e
- run:
name: "Check alive docker containers"
command: docker ps
when: always
- bridge/save_artifacts
lint:
executor: bridge/node
steps:
- bridge/fetch_repo
- bridge/install_linters
- run: npm run lint
tests_home:
executor: bridge/node
steps:
- bridge/fetch_repo
- bridge/install_ganache
- bridge/install_truffle
- run:
name: "Init tests environment"
name: "Install test dependencies"
command: |
BLOCK_TIME=3 ./demo/start-ethereum-environment.sh
./demo/start-binance-environment.sh
N=1 ./demo/validator-demo.sh -d
N=2 ./demo/validator-demo.sh -d
N=3 ./demo/validator-demo.sh -d
cd ./src/contracts/home
npm install
- run: npm run tests:home
tests_side:
executor: bridge/node
steps:
- bridge/fetch_repo
- bridge/install_ganache
- bridge/install_truffle
- run:
name: "Wait until validator nodes are ready"
name: "Install test dependencies"
command: |
docker run --network validator1_test_network --entrypoint ash appropriate/curl:latest -c "until curl -X GET http://proxy:8002/info > /dev/null 2>&1; do sleep 1; done"
docker run --network validator2_test_network --entrypoint ash appropriate/curl:latest -c "until curl -X GET http://proxy:8002/info > /dev/null 2>&1; do sleep 1; done"
docker run --network validator3_test_network --entrypoint ash appropriate/curl:latest -c "until curl -X GET http://proxy:8002/info > /dev/null 2>&1; do sleep 1; done"
no_output_timeout: 3m
cd ./src/contracts/side
npm install
- run: npm run tests:side
tests_home_coverage:
executor: bridge/node
steps:
- bridge/fetch_repo
- bridge/install_truffle
- bridge/install_solidity_coverage
- run:
name: "Build and prepare tests container"
name: "Install test dependencies"
command: |
docker build -t tests ./tests
docker create --env-file ./tests/.env --name tests tests
docker network connect binance_net tests
docker network connect ethereum_side_rpc_net tests
docker network connect ethereum_home_rpc_net tests
docker network connect validator1_test_network tests
docker network connect validator2_test_network tests
docker network connect validator3_test_network tests
cd ./src/contracts/home
npm install
- run: npm run tests:home:coverage
- persist_to_workspace:
name: "Save lcov.info"
root: ./src/contracts
paths:
- home/coverage/lcov.info
tests_side_coverage:
executor: bridge/node
steps:
- bridge/fetch_repo
- bridge/install_truffle
- bridge/install_solidity_coverage
- run:
name: "Run tests"
command: docker start -a tests
name: "Install test dependencies"
command: |
cd ./src/contracts/side
npm install
- run: npm run tests:side:coverage
- persist_to_workspace:
name: "Save lcov.info"
root: ./src/contracts
paths:
- side/coverage/lcov.info
upload_to_coveralls:
executor: bridge/node
steps:
- bridge/fetch_repo
- bridge/install_coveralls
- attach_workspace:
at: ./workspace
- run:
name: "Check alive docker containers"
command: docker ps
when: always
- bridge/save_artifacts
name: "Merge lcov files"
command: ./node_modules/.bin/lcov-result-merger './workspace/*/coverage/lcov.info' ./lcov.info
- run:
name: "Upload coveralls"
command: cat ./lcov.info | ./node_modules/.bin/coveralls
workflows:
version: 2
main:
jobs:
- lint
- init_tss
- run_tests:
- tests_e2e:
requires:
- init_tss
- tests_home
- tests_side
- tests_home_coverage
- tests_side_coverage
- upload_to_coveralls:
requires:
- tests_home_coverage
- tests_side_coverage
6 changes: 3 additions & 3 deletions .eslintignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ node_modules/
data/
demo/validator*/development
demo/validator*/staging
src/deploy/deploy/*/build
src/deploy/deploy-home/contracts/openzeppelin-solidity
src/deploy/deploy-test/contracts/openzeppelin-solidity
src/contracts/*/build
src/contracts/*/coverage
src/contracts/*/coverageEnv
src/tss/multi-party-ecdsa
2 changes: 2 additions & 0 deletions .eslintrc
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,9 @@
"rules": {
"semi": [1, "never"],
"comma-dangle": [1, "never"],
"import/no-extraneous-dependencies": [2, {"devDependencies": true}],
"node/no-missing-require": 0,
"node/no-unpublished-require": 0,
"import/no-unresolved": 0,
"no-return-await": 0,
"no-await-in-loop": 0,
Expand Down
6 changes: 4 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,10 @@ data/
demo/validator*/development
demo/validator*/staging
demo/validator*/.keys.staging
src/deploy/deploy*/build/
src/deploy/.keys.staging
src/contracts/*/build/
src/contracts/*/coverage/
src/contracts/*/coverage.json
src/contracts/.keys.staging
src/test-services/.keys.staging
src/test.js
tests/results.xml
Expand Down
6 changes: 0 additions & 6 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -1,9 +1,3 @@
[submodule "src/deploy/deploy-home/contracts/openzeppelin-solidity"]
path = src/deploy/deploy-home/contracts/openzeppelin-solidity
url = https://github.com/OpenZeppelin/openzeppelin-solidity.git
[submodule "src/deploy/deploy-test/contracts/openzeppelin-solidity"]
path = src/deploy/deploy-test/contracts/openzeppelin-solidity
url = https://github.com/OpenZeppelin/openzeppelin-solidity.git
[submodule "src/tss/multi-party-ecdsa"]
path = src/tss/multi-party-ecdsa
url = https://github.com/k1rill-fedoseev/multi-party-ecdsa.git
4 changes: 4 additions & 0 deletions .hadolint.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
ignored:
- DL3008
- DL3018
- DL3022
Loading