2
.github/ISSUE_TEMPLATE/bug_report.md
vendored
@@ -15,7 +15,7 @@ Describe your issue in as much detail as possible here.
|
||||
|
||||
* OS and version
|
||||
* branch that causes this issue
|
||||
* Device (Nano S, Nano X, Ledger Blue)
|
||||
* Device (Nano S, Nano S Plus, Nano X, Ledger Blue)
|
||||
|
||||
## Steps to reproduce
|
||||
|
||||
|
||||
2
.github/ISSUE_TEMPLATE/feature_request.md
vendored
@@ -15,4 +15,4 @@ Describe your issue in as much detail as possible here.
|
||||
|
||||
* OS and version
|
||||
* branch that causes this issue
|
||||
* Device (Nano S, Nano X, Ledger Blue)
|
||||
* Device (Nano S, Nano S Plus, Nano X, Ledger Blue)
|
||||
|
||||
5
.github/workflows/ci-workflow.yml
vendored
@@ -128,6 +128,7 @@ jobs:
|
||||
jobs-e2e-speculos-tests:
|
||||
name: Speculos tests
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
model: ["nanosp", "nanos", "nanox"]
|
||||
|
||||
@@ -153,7 +154,7 @@ jobs:
|
||||
run: |
|
||||
cd tests/speculos
|
||||
sudo apt-get update && sudo apt-get install -y qemu-user-static
|
||||
pip install --extra-index-url https://test.pypi.org/simple/ -r requirements.txt
|
||||
pip install -r requirements.txt
|
||||
|
||||
- name: Run speculos tests
|
||||
run: |
|
||||
@@ -171,7 +172,6 @@ jobs:
|
||||
with:
|
||||
upload_app_binaries_artifact: "ragger_elfs"
|
||||
flags: "DEBUG=1 CAL_CI_KEY=1 DOMAIN_NAME_TEST_KEY=1"
|
||||
run_for_devices: '["nanos", "nanox", "nanosp"]'
|
||||
|
||||
jobs-ragger-tests:
|
||||
name: Run Ragger tests
|
||||
@@ -180,4 +180,3 @@ jobs:
|
||||
with:
|
||||
download_app_binaries_artifact: "ragger_elfs"
|
||||
test_dir: tests/ragger
|
||||
run_for_devices: '["nanos", "nanox", "nanosp"]'
|
||||
|
||||
16
.github/workflows/swap-ci-workflow.yml
vendored
Normal file
@@ -0,0 +1,16 @@
|
||||
name: Swap functional tests
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- develop
|
||||
pull_request:
|
||||
|
||||
jobs:
|
||||
job_functional_tests:
|
||||
uses: LedgerHQ/app-exchange/.github/workflows/reusable_swap_functional_tests.yml@develop
|
||||
with:
|
||||
branch_for_ethereum: ${{ github.ref }}
|
||||
test_filter: '"ETH or eth or Ethereum or ethereum"'
|
||||
1
.gitignore
vendored
@@ -5,6 +5,7 @@ bin/
|
||||
debug/
|
||||
dep/
|
||||
obj/
|
||||
build/
|
||||
|
||||
# Python
|
||||
*.pyc
|
||||
|
||||
27
CHANGELOG.md
@@ -5,6 +5,33 @@ All notable changes to this project will be documented in this file.
|
||||
The format is based on [Keep a Changelog](http://keepachangelog.com/)
|
||||
and this project adheres to [Semantic Versioning](http://semver.org/).
|
||||
|
||||
## [1.10.3](https://github.com/ledgerhq/app-ethereum/compare/1.10.2...1.10.3) - 2023-07-27
|
||||
|
||||
### Added
|
||||
|
||||
- (network) LUKSO mainnet & testnet
|
||||
- (network) Chiado
|
||||
- (network) PulseChain
|
||||
- (network) Neon EVM mainnet & devnet
|
||||
- (network) Venidium
|
||||
- (network) Telos EVM mainnet
|
||||
- (network) OKBChain mainnet
|
||||
- (network) Polygon zkEVM
|
||||
- (network) Base
|
||||
- (network) Sepolia
|
||||
- ENS on chains that share the Ethereum derivation path
|
||||
- Ledger Stax support
|
||||
|
||||
### Changed
|
||||
|
||||
- (network) xDai renamed to Gnosis
|
||||
|
||||
### Fixed
|
||||
|
||||
- Missing context cleanup between plugin calls
|
||||
- Miscellaneous swap issues
|
||||
- Improper EIP-712 array handling
|
||||
|
||||
## [1.10.2](https://github.com/ledgerhq/app-ethereum/compare/1.10.1...1.10.2) - 2023-04-24
|
||||
|
||||
### Added
|
||||
|
||||
45
Makefile
@@ -34,7 +34,7 @@ APP_LOAD_PARAMS += --path "1517992542'/1101353413'"
|
||||
|
||||
APPVERSION_M=1
|
||||
APPVERSION_N=10
|
||||
APPVERSION_P=2
|
||||
APPVERSION_P=3
|
||||
APPVERSION=$(APPVERSION_M).$(APPVERSION_N).$(APPVERSION_P)
|
||||
APP_LOAD_FLAGS= --appFlags 0xa40 --dep Ethereum:$(APPVERSION)
|
||||
|
||||
@@ -54,6 +54,7 @@ include ./makefile_conf/chain/$(CHAIN).mk
|
||||
else
|
||||
$(error Unsupported CHAIN - use $(SUPPORTED_CHAINS))
|
||||
endif
|
||||
CFLAGS += -DAPPNAME=\"$(APPNAME)\"
|
||||
|
||||
#########
|
||||
# Other #
|
||||
@@ -65,6 +66,12 @@ DEFINES += $(DEFINES_LIB)
|
||||
#prepare hsm generation
|
||||
ifeq ($(TARGET_NAME),TARGET_NANOS)
|
||||
ICONNAME=icons/nanos_app_$(CHAIN).gif
|
||||
else ifeq ($(TARGET_NAME),TARGET_STAX)
|
||||
ICONNAME=icons/stax_app_$(CHAIN).gif
|
||||
DEFINES += ICONGLYPH=C_stax_$(CHAIN)_64px
|
||||
DEFINES += ICONBITMAP=C_stax_$(CHAIN)_64px_bitmap
|
||||
DEFINES += ICONGLYPH_SMALL=C_stax_$(CHAIN)
|
||||
GLYPH_FILES += $(ICONNAME)
|
||||
else
|
||||
ICONNAME=icons/nanox_app_$(CHAIN).gif
|
||||
endif
|
||||
@@ -79,9 +86,10 @@ all: default
|
||||
############
|
||||
|
||||
DEFINES += OS_IO_SEPROXYHAL
|
||||
DEFINES += HAVE_BAGL HAVE_SPRINTF HAVE_SNPRINTF_FORMAT_U
|
||||
DEFINES += HAVE_SPRINTF HAVE_SNPRINTF_FORMAT_U
|
||||
DEFINES += HAVE_IO_USB HAVE_L4_USBLIB IO_USB_MAX_ENDPOINTS=4 IO_HID_EP_LENGTH=64 HAVE_USB_APDU
|
||||
DEFINES += LEDGER_MAJOR_VERSION=$(APPVERSION_M) LEDGER_MINOR_VERSION=$(APPVERSION_N) LEDGER_PATCH_VERSION=$(APPVERSION_P)
|
||||
DEFINES += BUILD_YEAR=\"$(shell date +%Y)\"
|
||||
|
||||
# U2F
|
||||
DEFINES += HAVE_U2F HAVE_IO_U2F
|
||||
@@ -90,30 +98,41 @@ DEFINES += USB_SEGMENT_SIZE=64
|
||||
DEFINES += BLE_SEGMENT_SIZE=32 #max MTU, min 20
|
||||
DEFINES += UNUSED\(x\)=\(void\)x
|
||||
DEFINES += APPVERSION=\"$(APPVERSION)\"
|
||||
DEFINES += HAVE_UX_FLOW
|
||||
|
||||
#WEBUSB_URL = www.ledgerwallet.com
|
||||
#DEFINES += HAVE_WEBUSB WEBUSB_URL_SIZE_B=$(shell echo -n $(WEBUSB_URL) | wc -c) WEBUSB_URL=$(shell echo -n $(WEBUSB_URL) | sed -e "s/./\\\'\0\\\',/g")
|
||||
|
||||
DEFINES += HAVE_WEBUSB WEBUSB_URL_SIZE_B=0 WEBUSB_URL=""
|
||||
|
||||
ifeq ($(TARGET_NAME),TARGET_NANOX)
|
||||
ifneq (,$(filter $(TARGET_NAME),TARGET_NANOX TARGET_STAX))
|
||||
DEFINES += HAVE_BLE BLE_COMMAND_TIMEOUT_MS=2000
|
||||
DEFINES += HAVE_BLE_APDU # basic ledger apdu transport over BLE
|
||||
SDK_SOURCE_PATH += lib_blewbxx lib_blewbxx_impl
|
||||
endif
|
||||
|
||||
ifeq ($(TARGET_NAME),TARGET_NANOS)
|
||||
DEFINES += IO_SEPROXYHAL_BUFFER_SIZE_B=72
|
||||
DEFINES += HAVE_WALLET_ID_SDK
|
||||
DEFINES += IO_SEPROXYHAL_BUFFER_SIZE_B=128
|
||||
else
|
||||
DEFINES += IO_SEPROXYHAL_BUFFER_SIZE_B=300
|
||||
endif
|
||||
|
||||
ifeq ($(TARGET_NAME),TARGET_STAX)
|
||||
DEFINES += NBGL_QRCODE
|
||||
else
|
||||
DEFINES += HAVE_BAGL
|
||||
DEFINES += HAVE_UX_FLOW
|
||||
ifeq ($(TARGET_NAME),TARGET_NANOS)
|
||||
DEFINES += HAVE_WALLET_ID_SDK
|
||||
DEFINES += BAGL_WIDTH=128 BAGL_HEIGHT=32
|
||||
else
|
||||
DEFINES += HAVE_GLO096
|
||||
DEFINES += HAVE_BAGL BAGL_WIDTH=128 BAGL_HEIGHT=64
|
||||
DEFINES += BAGL_WIDTH=128 BAGL_HEIGHT=64
|
||||
DEFINES += HAVE_BAGL_ELLIPSIS # long label truncation feature
|
||||
DEFINES += HAVE_BAGL_FONT_OPEN_SANS_REGULAR_11PX
|
||||
DEFINES += HAVE_BAGL_FONT_OPEN_SANS_EXTRABOLD_11PX
|
||||
DEFINES += HAVE_BAGL_FONT_OPEN_SANS_LIGHT_16PX
|
||||
endif
|
||||
endif
|
||||
|
||||
# Enables direct data signing without having to specify it in the settings. Useful when testing with speculos.
|
||||
ALLOW_DATA:=0
|
||||
@@ -167,7 +186,6 @@ endif
|
||||
endif
|
||||
|
||||
# Enabling debug PRINTF
|
||||
DEBUG:=0
|
||||
ifneq ($(DEBUG),0)
|
||||
DEFINES += HAVE_STACK_OVERFLOW_CHECK
|
||||
ifeq ($(TARGET_NAME),TARGET_NANOS)
|
||||
@@ -204,13 +222,11 @@ endif
|
||||
|
||||
CC := $(CLANGPATH)clang
|
||||
|
||||
#CFLAGS += -O0
|
||||
CFLAGS += -Oz -Wno-format-invalid-specifier -Wno-format-extra-args
|
||||
CFLAGS += -Wno-format-invalid-specifier -Wno-format-extra-args
|
||||
|
||||
AS := $(GCCPATH)arm-none-eabi-gcc
|
||||
|
||||
LD := $(GCCPATH)arm-none-eabi-gcc
|
||||
LDFLAGS += -O3 -Os
|
||||
LDLIBS += -lm -lgcc -lc
|
||||
|
||||
# import rules to compile glyphs(/pone)
|
||||
@@ -219,11 +235,12 @@ include $(BOLOS_SDK)/Makefile.glyphs
|
||||
### variables processed by the common makefile.rules of the SDK to grab source files and include dirs
|
||||
APP_SOURCE_PATH += src_common src src_features src_plugins
|
||||
SDK_SOURCE_PATH += lib_stusb lib_stusb_impl lib_u2f
|
||||
ifeq ($(TARGET_NAME),TARGET_STAX)
|
||||
APP_SOURCE_PATH += src_nbgl
|
||||
else
|
||||
SDK_SOURCE_PATH += lib_ux
|
||||
ifeq ($(TARGET_NAME),TARGET_NANOX)
|
||||
SDK_SOURCE_PATH += lib_blewbxx lib_blewbxx_impl
|
||||
endif
|
||||
APP_SOURCE_PATH += src_bagl
|
||||
endif
|
||||
|
||||
### initialize plugin SDK submodule if needed, rebuild it, and warn if a difference is noticed
|
||||
ifeq ($(CHAIN),ethereum)
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
<h1 align="center">app-ethereum</h1>
|
||||
|
||||
<p align="center">
|
||||
Ethereum wallet application for Ledger Blue, Nano S and Nano X
|
||||
Ethereum wallet application for Ledger Blue, Nano S, Nano S Plus and Nano X
|
||||
<br />
|
||||
<a href="https://github.com/LedgerHQ/app-ethereum/tree/master/doc"><strong>« Explore the docs »</strong></a>
|
||||
<br />
|
||||
@@ -42,7 +42,7 @@
|
||||
|
||||
## About the project
|
||||
|
||||
Ethereum wallet application framework for Nano S and Nano X.
|
||||
Ethereum wallet application framework for Nano S, Nano S Plus and Nano X.
|
||||
Ledger Blue is not maintained anymore, but the app can still be compiled for this target using the branch [`blue-final-release`](https://github.com/LedgerHQ/app-ethereum/tree/blue-final-release).
|
||||
|
||||
## Documentation
|
||||
|
||||
|
Before Width: | Height: | Size: 339 B |
|
Before Width: | Height: | Size: 727 B |
|
Before Width: | Height: | Size: 347 B |
|
Before Width: | Height: | Size: 560 B |
|
Before Width: | Height: | Size: 823 B |
|
Before Width: | Height: | Size: 523 B |
|
Before Width: | Height: | Size: 430 B |
|
Before Width: | Height: | Size: 347 B |
|
Before Width: | Height: | Size: 347 B |
|
Before Width: | Height: | Size: 347 B |
|
Before Width: | Height: | Size: 769 B |
|
Before Width: | Height: | Size: 595 B |
|
Before Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 365 B |
|
Before Width: | Height: | Size: 434 B |
|
Before Width: | Height: | Size: 347 B |
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 372 B |
|
Before Width: | Height: | Size: 679 B |
|
Before Width: | Height: | Size: 347 B |
|
Before Width: | Height: | Size: 347 B |
|
Before Width: | Height: | Size: 347 B |
|
Before Width: | Height: | Size: 347 B |
|
Before Width: | Height: | Size: 271 B |
|
Before Width: | Height: | Size: 579 B |
|
Before Width: | Height: | Size: 386 B |
|
Before Width: | Height: | Size: 592 B |
|
Before Width: | Height: | Size: 791 B |
|
Before Width: | Height: | Size: 74 B |
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 225 B |
|
Before Width: | Height: | Size: 227 B |
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 118 B |
|
Before Width: | Height: | Size: 117 B |
|
Before Width: | Height: | Size: 56 B |
|
Before Width: | Height: | Size: 91 B |
|
Before Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 854 B |
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 71 B |
|
Before Width: | Height: | Size: 856 B |
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 53 B |
|
Before Width: | Height: | Size: 84 B |
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 607 B |
|
Before Width: | Height: | Size: 79 B |
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 87 B |
|
Before Width: | Height: | Size: 170 B |
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 68 B |
BIN
glyphs/stax_akroma_64px.gif
Normal file
|
After Width: | Height: | Size: 886 B |
BIN
glyphs/stax_apothemnetwork_64px.gif
Normal file
|
After Width: | Height: | Size: 815 B |
BIN
glyphs/stax_artis_sigma1_64px.gif
Normal file
|
After Width: | Height: | Size: 997 B |
BIN
glyphs/stax_artis_tau1_64px.gif
Normal file
|
After Width: | Height: | Size: 985 B |
BIN
glyphs/stax_astar_64px.gif
Normal file
|
After Width: | Height: | Size: 1019 B |
BIN
glyphs/stax_atheios_64px.gif
Normal file
|
After Width: | Height: | Size: 584 B |
BIN
glyphs/stax_bsc_64px.gif
Normal file
|
After Width: | Height: | Size: 885 B |
BIN
glyphs/stax_bttc_64px.gif
Normal file
|
After Width: | Height: | Size: 1.0 KiB |
BIN
glyphs/stax_callisto_64px.gif
Normal file
|
After Width: | Height: | Size: 773 B |
BIN
glyphs/stax_conflux_espace_64px.gif
Normal file
|
After Width: | Height: | Size: 641 B |
BIN
glyphs/stax_cube_64px.gif
Normal file
|
After Width: | Height: | Size: 966 B |
BIN
glyphs/stax_dexon_64px.gif
Normal file
|
After Width: | Height: | Size: 914 B |
BIN
glyphs/stax_ellaism_64px.gif
Normal file
|
After Width: | Height: | Size: 639 B |
BIN
glyphs/stax_energywebchain_64px.gif
Normal file
|
After Width: | Height: | Size: 836 B |
BIN
glyphs/stax_ether1_64px.gif
Normal file
|
After Width: | Height: | Size: 622 B |
BIN
glyphs/stax_ethereum_64px.gif
Normal file
|
After Width: | Height: | Size: 569 B |
BIN
glyphs/stax_ethereum_classic_64px.gif
Normal file
|
After Width: | Height: | Size: 618 B |
BIN
glyphs/stax_ethergem_64px.gif
Normal file
|
After Width: | Height: | Size: 649 B |
BIN
glyphs/stax_ethersocial_64px.gif
Normal file
|
After Width: | Height: | Size: 265 B |