Skip to content

Commit aeff5fd

Browse files
authored
Merge pull request #48 from Zondax/dev
Upgrading to v1.5.0
2 parents 0c658b1 + 1eff116 commit aeff5fd

129 files changed

Lines changed: 37355 additions & 21706 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.circleci/config.yml

Lines changed: 96 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ jobs:
66
steps:
77
- checkout
88
- run: git submodule update --init --recursive
9-
- run: cmake -DDISABLE_DOCKER_BUILDS=ON -DCMAKE_BUILD_TYPE=Debug . && make
9+
- run: cmake -DCMAKE_BUILD_TYPE=Debug . && make
1010
# Unfortunately need to disable leak sanitizer https://github.com/google/sanitizers/issues/916
1111
# Still run all other ASAN components
1212
- run: GTEST_COLOR=1 ASAN_OPTIONS=detect_leaks=0 ctest -VV
@@ -22,12 +22,35 @@ jobs:
2222
# Docker entrypoint is not considered
2323
- run: git submodule update --init --recursive
2424
- run:
25-
name: Build
25+
name: Build Standard app
2626
command: |
2727
source /home/zondax/.cargo/env
2828
cd /home/zondax/project
2929
make
3030
31+
build_ledger_val:
32+
docker:
33+
- image: zondax/builder-bolos:latest
34+
environment:
35+
- BOLOS_SDK=/home/zondax/project/deps/nanos-secure-sdk
36+
- BOLOS_ENV=/opt/bolos
37+
steps:
38+
- checkout
39+
# Docker entrypoint is not considered
40+
- run: git submodule update --init --recursive
41+
- run:
42+
name: Clean
43+
command: |
44+
source /home/zondax/.cargo/env
45+
cd /home/zondax/project
46+
make clean
47+
- run:
48+
name: Build Validator app
49+
command: |
50+
source /home/zondax/.cargo/env
51+
cd /home/zondax/project
52+
COIN=oasis_validator make
53+
3154
test_zemu:
3255
machine:
3356
image: ubuntu-1604:201903-01
@@ -53,11 +76,42 @@ jobs:
5376
nvm use 13.12.0
5477
make zemu_install
5578
- run:
56-
name: Run zemu tests
79+
name: Run zemu tests for Consumer app
5780
command: |
5881
nvm use 13.12.0
5982
make zemu_test
6083
84+
test_zemu_val:
85+
machine:
86+
image: ubuntu-1604:201903-01
87+
working_directory: ~/repo
88+
environment:
89+
BASH_ENV: "/opt/circleci/.nvm/nvm.sh"
90+
steps:
91+
- checkout
92+
- run: git submodule update --init --recursive
93+
- run:
94+
name: Install node + yarn
95+
command: |
96+
nvm install 13.12.0
97+
nvm use 13.12.0
98+
npm install -g yarn
99+
- run:
100+
name: Build/Install build js deps
101+
command: |
102+
nvm use 13.12.0
103+
make zemu_install
104+
- run:
105+
name: Build Ledger Validator app
106+
command: |
107+
COIN=oasis_validator make
108+
cp /home/circleci/repo/app/bin/app.elf /home/circleci/repo/app/bin/app_val.elf
109+
- run:
110+
name: Run zemu tests for Validator app
111+
command: |
112+
nvm use 13.12.0
113+
make zemu_val_test
114+
61115
build_package:
62116
docker:
63117
- image: zondax/builder-bolos:latest
@@ -73,9 +127,30 @@ jobs:
73127
source /home/zondax/.cargo/env
74128
cd /home/zondax/project
75129
make
76-
- store_artifacts:
77-
path: /home/zondax/project/app/pkg/zxtool.sh
78-
- run: /home/zondax/go/bin/ghr -t ${GITHUB_TOKEN} -u ${CIRCLE_PROJECT_USERNAME} -r ${CIRCLE_PROJECT_REPONAME} -c ${CIRCLE_SHA1} -delete $(/home/zondax/project/app/pkg/zxtool.sh version) /home/zondax/project/app/pkg/zxtool.sh
130+
- run:
131+
name: Rename installer
132+
command: cp /home/zondax/project/app/pkg/zxtool.sh /home/zondax/project/app/pkg/install_consumer_app.sh
133+
- run: /home/zondax/go/bin/ghr -t ${GITHUB_TOKEN} -u ${CIRCLE_PROJECT_USERNAME} -r ${CIRCLE_PROJECT_REPONAME} -c ${CIRCLE_SHA1} -replace $(/home/zondax/project/app/pkg/zxtool.sh version) /home/zondax/project/app/pkg/install_consumer_app.sh
134+
135+
build_package_validator:
136+
docker:
137+
- image: zondax/builder-bolos:latest
138+
environment:
139+
- BOLOS_SDK=/home/zondax/project/deps/nanos-secure-sdk
140+
- BOLOS_ENV=/opt/bolos
141+
steps:
142+
- checkout
143+
- run: git submodule update --init --recursive
144+
- run:
145+
name: Build
146+
command: |
147+
source /home/zondax/.cargo/env
148+
cd /home/zondax/project
149+
COIN=oasis_validator make
150+
- run:
151+
name: Rename installer
152+
command: cp /home/zondax/project/app/pkg/zxtool.sh /home/zondax/project/app/pkg/install_validator_app.sh
153+
- run: /home/zondax/go/bin/ghr -t ${GITHUB_TOKEN} -u ${CIRCLE_PROJECT_USERNAME} -r ${CIRCLE_PROJECT_REPONAME} -c ${CIRCLE_SHA1} -replace $(/home/zondax/project/app/pkg/zxtool.sh version) /home/zondax/project/app/pkg/install_validator_app.sh
79154

80155
workflows:
81156
version: 2
@@ -84,12 +159,27 @@ workflows:
84159
jobs:
85160
- build
86161
- build_ledger
162+
- build_ledger_val
87163
- test_zemu
164+
- test_zemu_val
88165
- build_package:
89166
requires:
90167
- build
91168
- build_ledger
169+
- build_ledger_val
170+
- test_zemu
171+
- test_zemu_val
172+
filters:
173+
branches:
174+
only:
175+
- master
176+
- build_package_validator:
177+
requires:
178+
- build
179+
- build_ledger
180+
- build_ledger_val
92181
- test_zemu
182+
- test_zemu_val
93183
filters:
94184
branches:
95185
only:

.gdbinit

Lines changed: 0 additions & 11 deletions
This file was deleted.

CMakeLists.txt

Lines changed: 61 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#*******************************************************************************
2-
#* (c) 2018 ZondaX GmbH
2+
#* (c) 2018 Zondax GmbH
33
#*
44
#* Licensed under the Apache License, Version 2.0 (the "License");
55
#* you may not use this file except in compliance with the License.
@@ -35,28 +35,51 @@ file(GLOB_RECURSE TINYCBOR_SRC
3535
)
3636

3737
file(GLOB_RECURSE LIB_SRC
38-
${CMAKE_CURRENT_SOURCE_DIR}/deps/ledger-zxlib/src/hexutils.c
39-
${CMAKE_CURRENT_SOURCE_DIR}/deps/ledger-zxlib/src/bignum.c
40-
${CMAKE_CURRENT_SOURCE_DIR}/deps/ledger-zxlib/src/zxmacros.c
38+
${CMAKE_CURRENT_SOURCE_DIR}/deps/ledger-zxlib/src/*.c
39+
${CMAKE_CURRENT_SOURCE_DIR}/deps/sha512/sha512.c
4140
#########
4241
${CMAKE_CURRENT_SOURCE_DIR}/app/src/parser.c
43-
${CMAKE_CURRENT_SOURCE_DIR}/app/src/parser_impl.c
44-
${CMAKE_CURRENT_SOURCE_DIR}/deps/ledger-zxlib/src/bech32.c
45-
${CMAKE_CURRENT_SOURCE_DIR}/deps/ledger-zxlib/src/segwit_addr.c
46-
${CMAKE_CURRENT_SOURCE_DIR}/deps/sha512/sha512.c
42+
${CMAKE_CURRENT_SOURCE_DIR}/app/src/crypto.c
43+
${CMAKE_CURRENT_SOURCE_DIR}/app/src/consumer/parser_consumer.c
44+
${CMAKE_CURRENT_SOURCE_DIR}/app/src/consumer/parser_impl_con.c
45+
)
46+
47+
file(GLOB_RECURSE LIB_VAL_SRC
48+
${CMAKE_CURRENT_SOURCE_DIR}/deps/ledger-zxlib/src/*.c
49+
#########
50+
${CMAKE_CURRENT_SOURCE_DIR}/app/src/parser.c
51+
${CMAKE_CURRENT_SOURCE_DIR}/app/src/crypto.c
52+
${CMAKE_CURRENT_SOURCE_DIR}/app/src/validator/parser_validator.c
53+
${CMAKE_CURRENT_SOURCE_DIR}/app/src/validator/parser_impl_val.c
54+
${CMAKE_CURRENT_SOURCE_DIR}/app/src/validator/vote_fsm.c
55+
${CMAKE_CURRENT_SOURCE_DIR}/app/src/validator/vote.c
4756
)
4857

4958
add_library(app_lib STATIC
5059
${LIB_SRC}
5160
${TINYCBOR_SRC}
5261
)
62+
add_library(app_val_lib STATIC
63+
${LIB_VAL_SRC}
64+
)
65+
66+
target_compile_definitions(app_lib PRIVATE APP_CONSUMER)
67+
target_compile_definitions(app_val_lib PRIVATE APP_VALIDATOR)
5368

5469
target_include_directories(app_lib PUBLIC
5570
${CMAKE_CURRENT_SOURCE_DIR}/deps/ledger-zxlib/include
5671
${CMAKE_CURRENT_SOURCE_DIR}/deps/tinycbor/src
5772
${CMAKE_CURRENT_SOURCE_DIR}/deps/sha512
5873
${CMAKE_CURRENT_SOURCE_DIR}/app/src
59-
${CMAKE_CURRENT_SOURCE_DIR}/app/src/lib
74+
${CMAKE_CURRENT_SOURCE_DIR}/app/src/consumer
75+
${CMAKE_CURRENT_SOURCE_DIR}/app/src/common
76+
)
77+
78+
target_include_directories(app_val_lib PUBLIC
79+
${CMAKE_CURRENT_SOURCE_DIR}/deps/ledger-zxlib/include
80+
${CMAKE_CURRENT_SOURCE_DIR}/deps/sha512
81+
${CMAKE_CURRENT_SOURCE_DIR}/app/src
82+
${CMAKE_CURRENT_SOURCE_DIR}/app/src/validator
6083
${CMAKE_CURRENT_SOURCE_DIR}/app/src/common
6184
)
6285

@@ -68,14 +91,34 @@ file(GLOB_RECURSE TESTS_SRC
6891
${CMAKE_CURRENT_SOURCE_DIR}/tests/utils/*.cpp
6992
)
7093

94+
file(GLOB_RECURSE TESTS_VAL_SRC
95+
${CMAKE_CURRENT_SOURCE_DIR}/tests/cpp_val/*.cpp
96+
)
97+
7198
add_executable(unittests ${TESTS_SRC})
99+
target_compile_definitions(unittests PRIVATE APP_CONSUMER=1)
100+
add_executable(unittests_val ${TESTS_VAL_SRC})
101+
target_compile_definitions(unittests_val PRIVATE APP_VALIDATOR=1)
102+
72103
target_include_directories(unittests PUBLIC
73104
${gtest_SOURCE_DIR}/include
74105
${gmock_SOURCE_DIR}/include
75106
${CONAN_INCLUDE_DIRS_FMT}
76107
${CONAN_INCLUDE_DIRS_JSONCPP}
77108
${CMAKE_CURRENT_SOURCE_DIR}/deps/tinycbor/src
78109
${CMAKE_CURRENT_SOURCE_DIR}/tests/utils
110+
${CMAKE_CURRENT_SOURCE_DIR}/deps/ledger-zxlib/include
111+
)
112+
113+
target_include_directories(unittests_val PUBLIC
114+
${gtest_SOURCE_DIR}/include
115+
${gmock_SOURCE_DIR}/include
116+
${CONAN_INCLUDE_DIRS_FMT}
117+
${CONAN_INCLUDE_DIRS_JSONCPP}
118+
${CMAKE_CURRENT_SOURCE_DIR}/deps/ledger-zxlib/include
119+
${CMAKE_CURRENT_SOURCE_DIR}/app/src/common
120+
${CMAKE_CURRENT_SOURCE_DIR}/app/src/validator
121+
${CMAKE_CURRENT_SOURCE_DIR}/app/src
79122
)
80123

81124
target_link_libraries(unittests PRIVATE
@@ -84,19 +127,14 @@ target_link_libraries(unittests PRIVATE
84127
CONAN_PKG::fmt
85128
CONAN_PKG::jsoncpp)
86129

130+
target_link_libraries(unittests_val PRIVATE
131+
gtest_main
132+
app_val_lib
133+
CONAN_PKG::fmt
134+
CONAN_PKG::jsoncpp)
135+
87136
add_test(unittests ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/unittests)
88-
set_tests_properties(unittests PROPERTIES WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/tests)
137+
add_test(unittests_val ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/unittests_val)
89138

90-
###############################################################
91-
# Force tests to depend from app compiling
92-
###############################################################
93-
94-
#set(DISABLE_DOCKER_BUILDS OFF CACHE BOOL "Disables Docker Builds")
95-
#
96-
#if (NOT DISABLE_DOCKER_BUILDS)
97-
# add_custom_target(ledger_app
98-
# COMMAND make build
99-
# WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
100-
# )
101-
# add_dependencies(unittests ledger_app)
102-
#endif()
139+
set_tests_properties(unittests PROPERTIES WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/tests)
140+
set_tests_properties(unittests_val PROPERTIES WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/tests)

Makefile

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,16 +14,27 @@
1414
#* limitations under the License.
1515
#********************************************************************************
1616

17-
# We use BOLOS_SDK to determine the develoment environment that is being used
17+
# We use BOLOS_SDK to determine the development environment that is being used
1818
# BOLOS_SDK IS DEFINED We use the plain Makefile for Ledger
1919
# BOLOS_SDK NOT DEFINED We use a containerized build approach
2020

21+
TESTS_ZEMU_JS_PACKAGE = "@zondax/ledger-oasis"
22+
TESTS_ZEMU_JS_DIR = $(CURDIR)/js
23+
2124
ifeq ($(BOLOS_SDK),)
25+
2226
include $(CURDIR)/deps/ledger-zxlib/dockerized_build.mk
27+
2328
else
29+
2430
default:
2531
$(MAKE) -C app
2632
%:
2733
$(info "Calling app Makefile for target $@")
28-
$(MAKE) -C app $@
34+
COIN=$(COIN) $(MAKE) -C app $@
35+
2936
endif
37+
38+
build_val: COIN=oasis_validator
39+
build_val: build
40+
cp $(CURDIR)/app/bin/app.elf $(CURDIR)/app/bin/app_val.elf

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ This repository contains:
99
- Ledger Nano S/X BOLOS app
1010
- Specs / Documentation
1111
- C++ unit tests
12-
- Rust unit test
12+
- Rust unit tests
1313
- Zemu tests
1414

1515
## ATTENTION

0 commit comments

Comments
 (0)