1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
use {num_derive::FromPrimitive, thiserror::Error};
#[derive(Error, Debug, Clone, FromPrimitive, PartialEq, Eq)]
pub enum LedgerError {
#[error("Safecoin app not open on Ledger device")]
NoAppResponse = 0x6700,
#[error("Ledger sdk exception")]
SdkException = 0x6801,
#[error("Ledger invalid parameter")]
SdkInvalidParameter = 0x6802,
#[error("Ledger overflow")]
SdkExceptionOverflow = 0x6803,
#[error("Ledger security exception")]
SdkExceptionSecurity = 0x6804,
#[error("Ledger invalid CRC")]
SdkInvalidCrc = 0x6805,
#[error("Ledger invalid checksum")]
SdkInvalidChecksum = 0x6806,
#[error("Ledger invalid counter")]
SdkInvalidCounter = 0x6807,
#[error("Ledger operation not supported")]
SdkNotSupported = 0x6808,
#[error("Ledger invalid state")]
SdkInvalidState = 0x6809,
#[error("Ledger timeout")]
SdkTimeout = 0x6810,
#[error("Ledger PIC exception")]
SdkExceptionPic = 0x6811,
#[error("Ledger app exit exception")]
SdkExceptionAppExit = 0x6812,
#[error("Ledger IO overflow exception")]
SdkExceptionIoOverflow = 0x6813,
#[error("Ledger IO header exception")]
SdkExceptionIoHeader = 0x6814,
#[error("Ledger IO state exception")]
SdkExceptionIoState = 0x6815,
#[error("Ledger IO reset exception")]
SdkExceptionIoReset = 0x6816,
#[error("Ledger CX port exception")]
SdkExceptionCxPort = 0x6817,
#[error("Ledger system exception")]
SdkExceptionSystem = 0x6818,
#[error("Ledger out of space")]
SdkNotEnoughSpace = 0x6819,
#[error("Ledger invalid counter")]
NoApduReceived = 0x6982,
#[error("Ledger operation rejected by the user")]
UserCancel = 0x6985,
#[error("Ledger received invalid Safecoin message")]
SafecoinInvalidMessage = 0x6a80,
#[error("Safecoin summary finalization failed on Ledger device")]
SafecoinSummaryFinalizeFailed = 0x6f00,
#[error("Safecoin summary update failed on Ledger device")]
SafecoinSummaryUpdateFailed = 0x6f01,
#[error("Ledger received unimplemented instruction")]
UnimplementedInstruction = 0x6d00,
#[error("Ledger received invalid CLA")]
InvalidCla = 0x6e00,
}