@@ -211,6 +211,7 @@ func (device *Device) ETHSign(
211211}
212212
213213// ETHSignEIP1559 signs an ethereum EIP1559 transaction. It returns a 65 byte signature (R, S, and 1 byte recID).
214+ // If paymentRequest is provided, firmware v9.26.0 or newer is required.
214215func (device * Device ) ETHSignEIP1559 (
215216 chainID uint64 ,
216217 keypath []uint32 ,
@@ -221,11 +222,16 @@ func (device *Device) ETHSignEIP1559(
221222 recipient [20 ]byte ,
222223 value * big.Int ,
223224 data []byte ,
224- recipientAddressCase messages.ETHAddressCase ) ([]byte , error ) {
225+ recipientAddressCase messages.ETHAddressCase ,
226+ paymentRequest * messages.BTCPaymentRequestRequest ,
227+ ) ([]byte , error ) {
225228
226229 if ! device .version .AtLeast (semver .NewSemVer (9 , 16 , 0 )) {
227230 return nil , UnsupportedError ("9.16.0" )
228231 }
232+ if paymentRequest != nil && ! device .version .AtLeast (semver .NewSemVer (9 , 26 , 0 )) {
233+ return nil , UnsupportedError ("9.26.0" )
234+ }
229235
230236 hostNonceCommitment , hostNonce , err := handleHostNonceCommitment ()
231237 if err != nil {
@@ -246,6 +252,7 @@ func (device *Device) ETHSignEIP1559(
246252 Data : data ,
247253 HostNonceCommitment : hostNonceCommitment ,
248254 AddressCase : recipientAddressCase ,
255+ PaymentRequest : paymentRequest ,
249256 },
250257 },
251258 }
0 commit comments