Commit Graph

63 Commits

Author SHA1 Message Date
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
66ffbc42d4 Unify the terminology for approval screens between ERC-721 & 1155 2022-02-15 10:39:34 +01:00
Alexandre Paillier
6bc99e8b98 Removed NFT transactions unused screens & fixed ERC-1155 setApproveForAll number of screens 2022-02-15 10:39:33 +01:00
Alexandre Paillier
4232a8925b Fix crash when signing NFT transactions with no NFT information APDU received 2022-02-15 10:39:29 +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
TamtamHero
0d45d2e2d0 Update some prototypes to use chainId value instead of chainConfig structure 2021-08-30 11:02:55 +02:00
TamtamHero
3e25f04d05 Refactoring helper to get printable eth address from hex 2021-08-30 11:00:51 +02:00
pscott
ee4a865144 Use strlcpy instead of strncpy 2021-07-27 12:24:05 +02:00
pscott
b7110eafe0 update plugin sdk 2021-07-27 12:11:56 +02:00
Jean-Baptiste Bédrune
cd78581ffd Fix all the defects identified by Clang Static Analyzer
Some fixes are dirty, but it is a start to enforce scan-build on
every commit.

Signed-off-by: pscott <scott.piriou@ledger.fr>
2021-07-27 12:09:22 +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
Edouard Merle
6d0f09b4c7 adding missing comma in contract names 2021-07-26 16:15:48 +02:00
pscott
4b42d69b3e Add Lido contracts 2021-07-16 11:50:52 +02:00
pscott
b646cf1b28 Fix compilation warnings (#159)
* Fix easy warnings for sdk 2.0

* Add attribute unused to bagl_elemt_t in callback functions

* Add attribute unused to io_event function

* Clang-format

* Use elfs from CI in tests (#167)

* Add Nano X build

* Use CI's build artifacts for CI's tests

* 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>

Co-authored-by: Jean P <10632523+TamtamHero@users.noreply.github.com>
2021-07-05 11:01:51 +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
8592a22542 Clang-format 2021-06-08 10:24:51 +02:00
TamtamHero
f6a4c61f3c Make erc20 approval for known contracts more generic and simple
+ No need to provide additional ERC20 definition anymore
+ Simpler code
+ More generic
= Still not scalable
- Takes a bit more space than the previous solution
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
ebc28881f7 bytes to bytes 2021-05-04 23:49:03 +02:00
pscott
3a1cd33f74 Fix segv 2021-05-04 13:41:43 +02:00
pscott
0547bc8a02 Clang format 2021-05-04 13:28:10 +02:00
pscott
76d982a539 Merge branch 'fix_security_and_display_issues' of github.com:LedgerHQ/app-ethereum into fix_security_and_display_issues 2021-05-04 12:15:08 +02:00
pscott
a88ed3de5d Do not used global sha3 for future-proofness 2021-05-04 12:11:18 +02:00
pscott
257ff60b9b Fix typo 2021-05-04 12:06:16 +02:00
pscott
653e5e667b Update INDEX_MAX to 2^16 2021-04-27 18:00:38 +02:00
pscott
0af10691eb Verify return value of plugin 2021-04-23 19:15:30 +02:00
pscott
fe2aab08a1 Add comment regarding arbitrary value of INDEX_MAX 2021-04-22 15:53:09 +02:00
pscott
d4bd5cac89 Fix compilation error 2021-04-22 15:06:12 +02:00
pscott
550fc86ba8 Remove INDEX_MAX from withdrawal_index.h ; set limit to 2^19 2021-04-22 14:57:30 +02:00
pscott
18822f9462 Move deposit_address to eth2_deposit_parameters_t 2021-04-22 14:39:46 +02:00
pscott
e76a7aa5ca Clang please 2021-04-22 14:08:02 +02:00
pscott
31ad5e3431 Remove comments 2021-04-22 14:04:09 +02:00
pscott
a4dcec436f Clang-format 2021-04-22 14:01:52 +02:00
pscott
b899edfaaf Display validator address 2021-04-22 13:57:09 +02:00
pscott
d1f5cd0286 Fix destinationLen computing 2021-04-22 11:40:12 +02:00
pscott
4c067f2a43 Add check for deposit contract address 2021-04-22 11:38:21 +02:00
pscott
6ff2172f1b Add upper bound for withdrawal index 2021-04-22 10:08:05 +02:00
TamtamHero
41ab56db7a Apply clang-format 2021-04-16 10:05:49 +02:00
BTChip github
c7e3bfda08 Add Deversifi proxy support 2021-04-05 14:56:56 +02:00
pscott
75861077a3 Apply clang-format to compound_plugin 2021-03-25 10:44:58 +01:00
pscott
013538e9fe Apply clang-format 2021-03-25 10:43:59 +01:00
pscott
9a798e3662 Fix warnings for nanox sdk 2021-03-24 16:32:08 +01:00
TamtamHero
17bd07a346 Apply clang-format 2020-12-01 16:20:13 +01:00
TamtamHero
b6731d030b Conditionnaly comment Starkware some missing logic for altcoins 2020-11-30 18:45:54 +01:00
BTChip github
1a311684a2 Replace memset by expilcit_bzero for critical data 2020-11-30 18:22:21 +01:00
BTChip github
251f565664 Update contract information for DeversiFi contracts 2020-11-30 18:22:20 +01:00
BTChip github
3313cb8949 Fix Deposit ETH amount display 2020-11-30 18:22:19 +01:00