Add ETH 2 deposit handling

This commit is contained in:
BTChip github
2020-10-27 11:16:50 +01:00
committed by TamtamHero
parent 832294334f
commit 7e53de8897
17 changed files with 544 additions and 14 deletions

View File

@@ -18,6 +18,7 @@ Application version 1.5.0 - 25th of September 2020
## 1.5.0
- Add SIGN ETH EIP 712
- Add GET ETH2 PUBLIC KEY
## About
@@ -315,6 +316,79 @@ This command has been supported since firmware version 1.5.0
| s | 32
|==============================================================================================================================
### GET ETH2 PUBLIC KEY
#### Description
This command returns an Ethereum 2 BLS12-381 public key derived following EIP 2333 specification (https://eips.ethereum.org/EIPS/eip-2333)
This command has been supported since firmware version 1.5.0
#### Coding
'Command'
[width="80%"]
|==============================================================================================================================
| *CLA* | *INS* | *P1* | *P2* | *Lc* | *Le*
| E0 | 0E | 00 : return public key
01 : display public key and confirm before returning
| 00 | variable | variable
|==============================================================================================================================
'Input data'
[width="80%"]
|==============================================================================================================================
| *Description* | *Length*
| Number of BIP 32 derivations to perform (max 10) | 1
| First derivation index (big endian) | 4
| ... | 4
| Last derivation index (big endian) | 4
|==============================================================================================================================
'Output data'
[width="80%"]
|==============================================================================================================================
| *Description* | *Length*
| Public key | 48
|==============================================================================================================================
### SET ETH2 WITHDRAWAL INDEX
#### Description
This command sets the index of the Withdrawal key used as withdrawal credentials in an ETH2 deposit contract call signature. The path of the Withdrawal key starts with 12381/3600/0 according to EIP 2333 (https://eips.ethereum.org/EIPS/eip-2333)
The default index used is 0 if this method isn't called before the deposit contract transaction is sent to the device to be signed
This command has been supported since firmware version 1.5.0
#### Coding
'Command'
[width="80%"]
|==============================================================================================================================
| *CLA* | *INS* | *P1* | *P2* | *Lc* | *Le*
| E0 | 10 | 00
| 00 | variable | variable
|==============================================================================================================================
'Input data'
[width="80%"]
|==============================================================================================================================
| *Description* | *Length*
| Withdrawal key index (big endian) | 4
|==============================================================================================================================
'Output data'
None
## Transport protocol
### General transport description