pub struct IsIntermediary(pub bool);Expand description
Indicates whether Coinbase is acting as the intermediary Virtual Asset Service Provider (VASP), and your organization is acting as an originating VASP on behalf of your own end customer.
**Background:**
The Travel Rule (FATF Recommendation 16) requires VASPs to collect and share certain information about virtual asset transfers. If your organization is a VASP, and you are acting on behalf of your end customer, you must provide additional Travel Rule data to satisfy compliance requirements.
**Set to `true` when** your organization is itself a VASP acting on behalf of your own end customer (the true originator).
**Set to `false` (or omit) when** your organization is not itself a VASP acting on behalf of an end customer — for example, if the virtual assets involved are your organization's own funds.
**Impact on required fields:**
When `isIntermediary` is `true`, you must provide the `originator` object with the following details:
- The originator's (i.e. your end customer's) name
- The originator's address
- Your organization's VASP information (`virtualAssetServiceProvider` object with `identifier`, `name`, and `address`)
In certain jurisdictions, `personalId` and `dateOfBirth` must also reflect the **original sender's** identity — not your organization's. These fields will not be auto-populated from any internal KYC data when `isIntermediary` is `true`.JSON schema
{
"description": "Indicates whether **Coinbase is acting as the intermediary Virtual Asset Service Provider (VASP)**, and your organization is acting as an originating VASP on behalf of your own end customer.\n\n**Background:**\n\nThe Travel Rule (FATF Recommendation 16) requires VASPs to collect and share certain information about virtual asset transfers. If your organization is a VASP, and you are acting on behalf of your end customer, you must provide additional Travel Rule data to satisfy compliance requirements.\n\n**Set to `true` when** your organization is itself a VASP acting on behalf of your own end customer (the true originator).\n\n**Set to `false` (or omit) when** your organization is not itself a VASP acting on behalf of an end customer — for example, if the virtual assets involved are your organization's own funds.\n\n**Impact on required fields:**\n\nWhen `isIntermediary` is `true`, you must provide the `originator` object with the following details:\n- The originator's (i.e. your end customer's) name\n- The originator's address\n- Your organization's VASP information (`virtualAssetServiceProvider` object with `identifier`, `name`, and `address`)\n\nIn certain jurisdictions, `personalId` and `dateOfBirth` must also reflect the **original sender's** identity — not your organization's. These fields will not be auto-populated from any internal KYC data when `isIntermediary` is `true`.\n",
"examples": [
true
],
"type": "boolean"
}Tuple Fields§
§0: boolMethods from Deref<Target = bool>§
1.62.0 · Sourcepub fn then_some<T>(self, t: T) -> Option<T>
pub fn then_some<T>(self, t: T) -> Option<T>
Returns Some(t) if the bool is true,
or None otherwise.
Arguments passed to then_some are eagerly evaluated; if you are
passing the result of a function call, it is recommended to use
then, which is lazily evaluated.
§Examples
assert_eq!(false.then_some(0), None);
assert_eq!(true.then_some(0), Some(0));let mut a = 0;
let mut function_with_side_effects = || { a += 1; };
true.then_some(function_with_side_effects());
false.then_some(function_with_side_effects());
// `a` is incremented twice because the value passed to `then_some` is
// evaluated eagerly.
assert_eq!(a, 2);1.50.0 · Sourcepub fn then<T, F>(self, f: F) -> Option<T>where
F: FnOnce() -> T,
pub fn then<T, F>(self, f: F) -> Option<T>where
F: FnOnce() -> T,
Returns Some(f()) if the bool is true,
or None otherwise.
§Examples
assert_eq!(false.then(|| 0), None);
assert_eq!(true.then(|| 0), Some(0));let mut a = 0;
true.then(|| { a += 1; });
false.then(|| { a += 1; });
// `a` is incremented once because the closure is evaluated lazily by
// `then`.
assert_eq!(a, 1);1.98.0 · Sourcepub fn ok_or<E>(self, err: E) -> Result<(), E>
pub fn ok_or<E>(self, err: E) -> Result<(), E>
Returns Ok(()) if the bool is true,
or Err(err) otherwise.
Arguments passed to ok_or are eagerly evaluated; if you are
passing the result of a function call, it is recommended to use
ok_or_else, which is lazily evaluated.
§Examples
assert_eq!(false.ok_or(0), Err(0));
assert_eq!(true.ok_or(0), Ok(()));let mut a = 0;
let mut function_with_side_effects = || { a += 1; };
assert!(true.ok_or(function_with_side_effects()).is_ok());
assert!(false.ok_or(function_with_side_effects()).is_err());
// `a` is incremented twice because the value passed to `ok_or` is
// evaluated eagerly.
assert_eq!(a, 2);1.98.0 · Sourcepub fn ok_or_else<E, F>(self, f: F) -> Result<(), E>where
F: FnOnce() -> E,
pub fn ok_or_else<E, F>(self, f: F) -> Result<(), E>where
F: FnOnce() -> E,
Returns Ok(()) if the bool is true,
or Err(f()) otherwise.
§Examples
assert_eq!(false.ok_or_else(|| 0), Err(0));
assert_eq!(true.ok_or_else(|| 0), Ok(()));let mut a = 0;
assert!(true.ok_or_else(|| { a += 1; }).is_ok());
assert!(false.ok_or_else(|| { a += 1; }).is_err());
// `a` is incremented once because the closure is evaluated lazily by
// `ok_or_else`.
assert_eq!(a, 1);Trait Implementations§
Source§impl Clone for IsIntermediary
impl Clone for IsIntermediary
Source§impl Debug for IsIntermediary
impl Debug for IsIntermediary
Source§impl Deref for IsIntermediary
impl Deref for IsIntermediary
Source§impl<'de> Deserialize<'de> for IsIntermediary
impl<'de> Deserialize<'de> for IsIntermediary
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl Display for IsIntermediary
impl Display for IsIntermediary
Source§impl From<&IsIntermediary> for IsIntermediary
impl From<&IsIntermediary> for IsIntermediary
Source§fn from(value: &IsIntermediary) -> Self
fn from(value: &IsIntermediary) -> Self
Source§impl From<IsIntermediary> for bool
impl From<IsIntermediary> for bool
Source§fn from(value: IsIntermediary) -> Self
fn from(value: IsIntermediary) -> Self
Source§impl From<bool> for IsIntermediary
impl From<bool> for IsIntermediary
Source§impl FromStr for IsIntermediary
impl FromStr for IsIntermediary
Source§impl Serialize for IsIntermediary
impl Serialize for IsIntermediary
Source§impl TryFrom<&String> for IsIntermediary
impl TryFrom<&String> for IsIntermediary
Source§impl TryFrom<&str> for IsIntermediary
impl TryFrom<&str> for IsIntermediary
Auto Trait Implementations§
impl Freeze for IsIntermediary
impl RefUnwindSafe for IsIntermediary
impl Send for IsIntermediary
impl Sync for IsIntermediary
impl Unpin for IsIntermediary
impl UnsafeUnpin for IsIntermediary
impl UnwindSafe for IsIntermediary
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<T> ToStringFallible for Twhere
T: Display,
impl<T> ToStringFallible for Twhere
T: Display,
Source§fn try_to_string(&self) -> Result<String, TryReserveError>
fn try_to_string(&self) -> Result<String, TryReserveError>
ToString::to_string, but without panic on OOM.