Commit Graph

56 Commits

Author SHA1 Message Date
Charles-Edouard de la Vergne
aa38ee9959 Code improvements / Fix warnings
- Fix CodeQL warnings
- Port lots of improvements/fixes from PR #225
- replace 'array_hexstr' and '%*H' format by sdk function 'format_hex'
- Add 'noreturn' attribute in 'main.c'
2024-04-26 11:09:18 +02:00
Alexandre Paillier
ea1709b0ea Completely remove old Starkware internal "plugin" 2024-02-14 09:37:11 +01:00
Francois Beutin
5bf5023e35 Merge nft and tokens into a single asset header 2024-02-02 11:23:31 +01:00
Francois Beutin
ca9d5c9c77 Remove data needed by plugins from shared_context file 2024-02-02 11:23:29 +01:00
Francois Beutin
60d1d97667 Return to Exchange when failing to sign in swap mode 2023-12-01 19:50:07 +01:00
Alexandre Paillier
ad0b953fe8 Fix incorrect assumption on max possible chain ID size 2023-11-15 16:13:49 +01:00
Francois Beutin
02cdc23751 Rename called_from_swap to G_called_from_swap 2023-06-30 14:05:46 +02:00
Alexandre Paillier
8361e349b7 Now has a separate struct for caller app name & icon
- New home screen wording
- Removed duplicate RUN_APPLICATION macro
2023-05-16 11:42:30 +02:00
Clement Bouvet
0414a043c8 rework plugin start so name and icon can be passed to eth 2023-05-16 11:42:30 +02:00
Alexandre Paillier
504747aba2 Improve finalizeParsing() checking in swap context
Simplify code in logic_signTx.c
2023-04-24 11:27:13 +02:00
Alexandre Paillier
ceacee00a7 Provide domain name APDU implementation 2023-03-29 18:09:42 +02:00
Alexandre Paillier
0d09d31dba Small reordering to save 4 bytes on tokenContext_t struct padding 2022-12-01 15:09:53 +01:00
Alexandre Paillier
3e750e8419 Fix device crash caused by improper memory alignment of the plugin context buffer 2022-12-01 15:09:51 +01:00
Benjyskan
071c96ea13 change dataContext.tokenContext.fieldIndex to uint16_t to avoid plugin's 'context->parameterOffset' overflow on large tx (#228) 2022-11-23 14:25:49 +01:00
Alexandre Paillier
c803322f3c Review fixes 2022-10-17 11:57:16 +02:00
Alexandre Paillier
de9e895ad9 EIP-712 code linting 2022-08-05 18:15:59 +02:00
Alexandre Paillier
8dcb4bc74f New EIP-712 verbose in-app setting + small refactoring & naming unification 2022-08-05 18:15:42 +02:00
Alexandre Paillier
895c37e1fa Change apdu payload length to proper size (8 bits) 2022-08-05 17:52:20 +02:00
Jorge Martins
2811917658 Mark pointer to databuffer/workbuffer as const 2022-07-15 12:33:19 +02:00
Jorge Martins
e0218520d8 Fix multiple vulnerabilities 2022-07-08 11:12:50 +02:00
Alexandre Paillier
8bc541b994 Increased display value buffer size for LNX & LNS+ 2022-06-08 11:45:20 +02:00
Alexandre Paillier
23202f6a63 Minimize includes in header files to what they depend on 2022-03-09 15:23:53 +01:00
Alexandre Paillier
c548aba364 Unify the include guards accross all header files 2022-03-09 11:52:03 +01:00
Alexandre Paillier
2e63a428b2 Removed useless header include in shared_context.h
Could easily create a circular header dependency
2022-02-15 14:13:55 +01:00
Alexandre Paillier
eb531de5d2 [clean] Linting pass 2022-01-14 17:33:20 +01:00
Jean P
a53a2428cc Fix nft transactions (#229)
* Removed pluginType "hack"

* Fix some ERC 721 & 1155 function signature hashes

* Fix UI for ERC721 operations

* Explicit Batch Transfer UI with ERC1155

* Unified some ERC721 & 1155 non-static functions naming

* Fix UI for ERC1155 operations

* Added missing pin-lock check when signing transactions

* Fix the shell script that builds the elf files for testing

* Add tests dependency ethers

* Removed the space in the test filename

* Tests build script refactoring

* Now works when called from anywhere (not just the script's directory)
* Now handles LNS & LNX builds together (less duplicated code)

* Temporarily disable Nano X tests

Until Zemu supports Nano X 2.0 SDK

* Tests now start with blind signing disabled

Makes it closer to reality & very few of them requires it

* Update to the latest sdk version

* make eth_plugin_perform_init() readable

Introduce 2 functions.

* Now properly parses the apdu and displays the total quantity of NFT IDs transferred in ERC1155 batch transfer

* Add NFT prod public keys

* Added extra checks for the chain ID handling

Following the security review

* NFTs now only supported by LNS

* Version bump

Co-authored-by: Alexandre Paillier <alexandre.paillier@ledger.fr>
Co-authored-by: greenknot <greenknot@users.noreply.github.com>
2021-12-17 12:04:51 +01:00
apaillier-ledger
fcc3dd6d31 Add support for ERC-721 and ERC-1155 (v3) (#218)
* First draft for erc721 token allowance

* Split ui and provide parameters into their own files

* Print txtype when not supported

* fix compilation for erc721

* Use pluginType

* Add debug statement in compound plugin

* add debug error msg in plugin error

* Add parameter parsing for all methods

* Remove debug logs

* Add SET_APPROVAL_FOR_ALL; Add correct parsing method on contract init

* Add dst_size parameter to copy functions

* Add query contract id code

* format

* Add UIs

* update ethapp.asc

* Change setExternalPlugin to setPlugin; Add support for ERC721

* clang-format

* Fix typo Unconsistent -> Inconsistent

* Add support for 721; use extraInfo

* Add extraInfo to ethpluginQueryConractUI

* Rename extraInfo to item

* Add txFromEtherscan to tests

* Add nft key and temp padding

* Remove comments around HAVE_BYPASS_SIGNATURES

* Rename TESTING_KEY to NFT_TESTING_KEY

* Add comments regarding value of queryContractUI->item

* Fix comment regarding method selector

* Rename provideToken to provideInfo; Update plugin doc

* fix caps of eth_plugin_prepare_provide_info

* fix caps of handle_provide_info

* Use verificationFn insead of hardcoded cx_ecdsa_verify

* Add comments about nftInfo_t and tokenDefinition_t

* Add erc721 test

* Remove comment from plugin interface version

* Fix network_ticker duplicate

* Add setPlugin and provideNFTInfo to doc.asc

* Add back setExternalPlugin; implement new setPlugin

* Update plugin sdk

* Call setPlugin instead of setExternalPlugin

* setPlugin work without checking sig

* Remove printf of displayed fees

* Add working 721 test

* Finalize ERC721 and add simple test

* Display NFT address on set approval and operator

* Support set approval for all for erc721

* Finish UI for set approval for all erc721

* Move copy_parameter and copy_address to eth_plugin_internal; Add tests for erc721

* update plugin sdk

* Add erc1155 plugin and 1155 tests placeholder

* Add restriction for AWS key and setPlugin

* Add NOT_OLD_INTERNAL variant; Add erc_1155_plugin_call

* Fixed compilation warnings (function pointer casting)

Co-authored-by: pscott <scott.piriou@ledger.fr>
2021-11-22 14:39:36 +01:00
Jean P
fb7204fb6c Fix fees overwrite in starkware plugin (#198)
* increase display buffer size to handle Starkware master key and control size when using snprintf

* Bump version 1.9.6

* Fix broken tests

* Add first starkware tests

* Add some constants for starkware

* Update CHANGELOG.md
2021-09-29 18:39:10 +02:00
pscott
ef91934b23 Update NETWORK_STRING_MAX_SIZE 2021-08-26 13:21:10 +02:00
pscott
24541034c6 Merge branch 'master' into support_eip1559 2021-08-03 12:01:58 +02:00
Jean-Baptiste Bédrune
c27d59d792 Fix last compilation warnings
Signed-off-by: pscott <scott.piriou@ledger.fr>
2021-07-27 12:09:22 +02:00
pscott
a2d9a8068a Add network display (#152)
* Add network name display instead of chainID

* Add display of correct ticker along with network

* Add FTM

* Clang-format

* Add comment in python script

* Rename SIZE_MAX to MAX_SIZE

* Change %u to %d in printf

* Remove needless PIC

* Update comment about get_chain_id()

* Update example script to follow EIP155

* Remove unused PIC calls

* Add whitespace between ticker and amount when using EIP155

* Remove decimal config per network, set back 18 everywhere

* Adapt u32_from_BE to swith cases

* Remove chainid from signTx.py

* Switch to switch in stead of if in get_chain_id

* Revert "Remove chainid from signTx.py"

This reverts commit 454e09f280ec3e3ec1c7d7cc0027247ef4390088.

* Change Ethereum chainid to 1

* Rename chainid_step to network_step

* Adapt finalizeParsing to new chainid for Ethereum

* Update snapshots

* clang-format

* Fix network display logic for clones

* Fix tests

* Add clone tests

Co-authored-by: TamtamHero <10632523+TamtamHero@users.noreply.github.com>
2021-07-02 18:46:23 +02:00
pscott
0294c5e60f Remove detailed fees display 2021-06-29 16:04:38 +02:00
pscott
0bff1de52c Add setting to display detailed fees 2021-06-29 16:04:38 +02:00
pscott
b651f530be Put externalPluginIsSet as its own global; initialize it at launch 2021-06-08 10:24:51 +02:00
pscott
5fe6eb1d94 Add defines for SHARED_CTX_FIELD 1 and 2 2021-06-08 10:24:51 +02:00
TamtamHero
e2fa7ccaf9 Increase size allocate to plugin context from 96 to 160 bytes 2021-06-08 10:24:51 +02:00
pscott
5fd27ff5ca Use INT256_LENGTH and ADDRESS_LENGTH define 2021-06-08 10:24:51 +02:00
TamtamHero
f096e91690 Add contract address and selector to setExternalPlugin 2021-06-08 10:24:50 +02:00
TamtamHero
b821c0d8a7 Add setExternalPlugin command 2021-06-08 10:24:50 +02:00
pscott
f250865bcb Merge branch 'master' of github.com:LedgerHQ/app-ethereum into fix_security_and_display_issues 2021-05-04 12:14:44 +02:00
pscott
0af10691eb Verify return value of plugin 2021-04-23 19:15:30 +02:00
pscott
970f0355dd Add support for EIP2718 (enveloppe) and EIP2930 (acess list tx); Display chain ID when different from 1 (ethereum mainnet) 2021-04-21 16:56:17 +02:00
TamtamHero
a96caadc4f Fix swap issue with nonce update, save a few bytes and improve settings switch feedback 2021-02-12 11:53:41 +01:00
pscott
4cbcdc0be0 Apply clang-format 2021-02-05 17:58:21 +01:00
pscott
b2d5b85a2f Add nonce display settings ; nonce is always displayed 2021-02-05 17:36:54 +01:00
TamtamHero
17bd07a346 Apply clang-format 2020-12-01 16:20:13 +01:00
BTChip github
9854d12753 Starkex v2 integration 2020-11-30 18:22:16 +01:00
BTChip github
7e53de8897 Add ETH 2 deposit handling 2020-11-17 10:31:15 +01:00
TamtamHero
dd5fc505fa Remove unused code 2020-11-16 17:06:45 +01:00