Commit Graph

70 Commits

Author SHA1 Message Date
Alexandre Paillier
fb28efc012 Removed the helper getNftContractAddress helper function and some NULL checks
Useless since we don't allow NFT signing without the NFT metadata anymore
2022-03-09 16:40:45 +01:00
Alexandre Paillier
a26da165df Now prevents NFT signatures without NFT metadata 2022-03-09 16:40:42 +01:00
Alexandre Paillier
7e1c8b14d4 Small refactoring on number of NFT selectors 2022-03-09 15:23:55 +01: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
Jean-Baptiste Bédrune
89fddf3ef8 Set const qualifiers in few fields used by the plugin interface 2022-02-21 23:46:54 +01:00
Alexandre Paillier
ce2df92741 New common function to get the NFT contract address 2022-02-15 14:33:55 +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
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