@@ -8,6 +8,7 @@ use xmtp_id::associations::{ident, PublicIdentifier as XMTPPublicIdentifier};
8
8
pub struct PublicIdentifier {
9
9
pub identifier : String ,
10
10
pub identifier_kind : PublicIdentifierKind ,
11
+ pub relying_partner : Option < String > ,
11
12
}
12
13
13
14
#[ napi]
@@ -26,6 +27,7 @@ pub enum PublicIdentifierKind {
26
27
pub struct RootIdentifier {
27
28
pub identifier : String ,
28
29
pub identifier_kind : RootIdentifierKind ,
30
+ pub relying_partner : Option < String > ,
29
31
}
30
32
#[ napi]
31
33
pub enum RootIdentifierKind {
@@ -44,6 +46,7 @@ impl From<RootIdentifier> for PublicIdentifier {
44
46
Self {
45
47
identifier : ident. identifier ,
46
48
identifier_kind : ident. identifier_kind . into ( ) ,
49
+ relying_partner : ident. relying_partner ,
47
50
}
48
51
}
49
52
}
@@ -52,6 +55,7 @@ impl From<PublicIdentifier> for RootIdentifier {
52
55
Self {
53
56
identifier : ident. identifier ,
54
57
identifier_kind : ident. identifier_kind . into ( ) ,
58
+ relying_partner : ident. relying_partner ,
55
59
}
56
60
}
57
61
}
@@ -79,10 +83,15 @@ impl From<XMTPPublicIdentifier> for PublicIdentifier {
79
83
XMTPPublicIdentifier :: Ethereum ( ident:: Ethereum ( addr) ) => Self {
80
84
identifier : addr,
81
85
identifier_kind : PublicIdentifierKind :: Ethereum ,
86
+ relying_partner : None ,
82
87
} ,
83
- XMTPPublicIdentifier :: Passkey ( ident:: Passkey ( key) ) => Self {
88
+ XMTPPublicIdentifier :: Passkey ( ident:: Passkey {
89
+ key,
90
+ relying_partner,
91
+ } ) => Self {
84
92
identifier : hex:: encode ( key) ,
85
93
identifier_kind : PublicIdentifierKind :: Passkey ,
94
+ relying_partner,
86
95
} ,
87
96
}
88
97
}
@@ -93,7 +102,7 @@ impl TryFrom<PublicIdentifier> for XMTPPublicIdentifier {
93
102
fn try_from ( ident : PublicIdentifier ) -> Result < Self , Self :: Error > {
94
103
let ident = match ident. identifier_kind {
95
104
PublicIdentifierKind :: Ethereum => Self :: eth ( ident. identifier ) ?,
96
- PublicIdentifierKind :: Passkey => Self :: passkey_str ( & ident. identifier ) ?,
105
+ PublicIdentifierKind :: Passkey => Self :: passkey_str ( & ident. identifier , ident . relying_partner ) ?,
97
106
} ;
98
107
Ok ( ident)
99
108
}
0 commit comments