Skip to content

Commit d274965

Browse files
committed
node relying partner
1 parent cd11dc0 commit d274965

File tree

3 files changed

+16
-7
lines changed

3 files changed

+16
-7
lines changed

bindings_node/src/consent_state.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,7 @@ impl Client {
155155
return Err(ErrorWrapper::from(MissingRequired::IdentifierKind))?;
156156
};
157157
let ident = match kind {
158-
ConsentIdentityKind::Passkey => PublicIdentifier::passkey_str(&entity),
158+
ConsentIdentityKind::Passkey => PublicIdentifier::passkey_str(&entity, None),
159159
ConsentIdentityKind::Ethereum => PublicIdentifier::eth(&entity),
160160
}
161161
.map_err(ErrorWrapper::from)?;

bindings_node/src/identity.rs

+11-2
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ use xmtp_id::associations::{ident, PublicIdentifier as XMTPPublicIdentifier};
88
pub struct PublicIdentifier {
99
pub identifier: String,
1010
pub identifier_kind: PublicIdentifierKind,
11+
pub relying_partner: Option<String>,
1112
}
1213

1314
#[napi]
@@ -26,6 +27,7 @@ pub enum PublicIdentifierKind {
2627
pub struct RootIdentifier {
2728
pub identifier: String,
2829
pub identifier_kind: RootIdentifierKind,
30+
pub relying_partner: Option<String>,
2931
}
3032
#[napi]
3133
pub enum RootIdentifierKind {
@@ -44,6 +46,7 @@ impl From<RootIdentifier> for PublicIdentifier {
4446
Self {
4547
identifier: ident.identifier,
4648
identifier_kind: ident.identifier_kind.into(),
49+
relying_partner: ident.relying_partner,
4750
}
4851
}
4952
}
@@ -52,6 +55,7 @@ impl From<PublicIdentifier> for RootIdentifier {
5255
Self {
5356
identifier: ident.identifier,
5457
identifier_kind: ident.identifier_kind.into(),
58+
relying_partner: ident.relying_partner,
5559
}
5660
}
5761
}
@@ -79,10 +83,15 @@ impl From<XMTPPublicIdentifier> for PublicIdentifier {
7983
XMTPPublicIdentifier::Ethereum(ident::Ethereum(addr)) => Self {
8084
identifier: addr,
8185
identifier_kind: PublicIdentifierKind::Ethereum,
86+
relying_partner: None,
8287
},
83-
XMTPPublicIdentifier::Passkey(ident::Passkey(key)) => Self {
88+
XMTPPublicIdentifier::Passkey(ident::Passkey {
89+
key,
90+
relying_partner,
91+
}) => Self {
8492
identifier: hex::encode(key),
8593
identifier_kind: PublicIdentifierKind::Passkey,
94+
relying_partner,
8695
},
8796
}
8897
}
@@ -93,7 +102,7 @@ impl TryFrom<PublicIdentifier> for XMTPPublicIdentifier {
93102
fn try_from(ident: PublicIdentifier) -> Result<Self, Self::Error> {
94103
let ident = match ident.identifier_kind {
95104
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)?,
97106
};
98107
Ok(ident)
99108
}

xmtp_id/src/associations/member.rs

+4-4
Original file line numberDiff line numberDiff line change
@@ -127,12 +127,12 @@ impl PublicIdentifier {
127127
}
128128

129129
pub fn passkey_str(
130-
key: impl AsRef<str>,
131-
relying_partner: Option<impl ToString>,
130+
key: &str,
131+
relying_partner: Option<String>,
132132
) -> Result<Self, IdentifierValidationError> {
133133
Ok(Self::Passkey(ident::Passkey {
134-
key: hex::decode(key.as_ref())?,
135-
relying_partner: relying_partner.map(|rp| rp.to_string()),
134+
key: hex::decode(key)?,
135+
relying_partner: relying_partner,
136136
}))
137137
}
138138

0 commit comments

Comments
 (0)