pub struct ContractEntrypointID { /* private fields */ }Expand description
8-byte identifier for a contract method (entrypoint).
Entrypoint IDs uniquely identify which method to invoke on a contract. A contract may use any 8 bytes; the protocol attaches no meaning to them. By default, the SDK derives them from the interface name, the major version of the interface, and the method name:
SHA256(name || "::" || major || "::" || method)[0..8]major is the semver compatibility prefix of the interface version: the
leading components up to and including the first nonzero one ("1" for
"1.4.2", "0.2" for "0.2.7", "0.0.3" for "0.0.3"). Versions that
share it therefore share entrypoint IDs, and the "::" separators keep
distinct (name, major, method) triples from concatenating to the same
preimage.
§Example
For an "ERC20" interface at version "1.0.0", transfer is
SHA256("ERC20::1::transfer")[0..8].
Interface IDs use the same prefix under a domain tag,
SHA256("thruput-interface::" || name || "::" || major)[0..8], so they
never coincide with an entrypoint ID.
Implementations§
Source§impl ContractEntrypointID
impl ContractEntrypointID
Sourcepub const fn from_u64(n: u64) -> ContractEntrypointID
pub const fn from_u64(n: u64) -> ContractEntrypointID
Builds an entrypoint ID from its numeric form, storing n as
the ID’s 8 big-endian bytes.
Sourcepub fn into_u64(self) -> u64
pub fn into_u64(self) -> u64
Returns the numeric form of this ID, reading its 8 bytes as a
big-endian u64. Inverse of Self::from_u64.
Source§impl ContractEntrypointID
impl ContractEntrypointID
pub fn into_inner(self) -> [u8; 8]
pub const fn new(_inner: [u8; 8]) -> ContractEntrypointID
Trait Implementations§
Source§impl AsRef<[u8]> for ContractEntrypointID
impl AsRef<[u8]> for ContractEntrypointID
Source§impl Clone for ContractEntrypointID
impl Clone for ContractEntrypointID
Source§fn clone(&self) -> ContractEntrypointID
fn clone(&self) -> ContractEntrypointID
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl ConstMaxSize for ContractEntrypointID
impl ConstMaxSize for ContractEntrypointID
Source§impl ConstMaxSize for ContractEntrypointID
impl ConstMaxSize for ContractEntrypointID
Source§impl ContractTypeRefSpec for ContractEntrypointID
impl ContractTypeRefSpec for ContractEntrypointID
Source§const INFO: ContractTypeInfo<'static>
const INFO: ContractTypeInfo<'static>
__THRUPUT_SPEC_ANCHOR_ROOT) and resolved by spec-tool.Source§const SIGNED_PREIMAGE: Option<&'static ContractTypeView<'static>> = _
const SIGNED_PREIMAGE: Option<&'static ContractTypeView<'static>> = _
ContractTypeView::SignedToken’s payload): the type itself by
default, or None for a type-erased payload (the SDK’s Opaque
overrides this).impl Copy for ContractEntrypointID
Source§impl Debug for ContractEntrypointID
impl Debug for ContractEntrypointID
Source§impl Default for ContractEntrypointID
impl Default for ContractEntrypointID
Source§fn default() -> ContractEntrypointID
fn default() -> ContractEntrypointID
Source§impl Deref for ContractEntrypointID
impl Deref for ContractEntrypointID
Source§impl DerefMut for ContractEntrypointID
impl DerefMut for ContractEntrypointID
Source§impl<'de> Deserialize<'de> for ContractEntrypointID
impl<'de> Deserialize<'de> for ContractEntrypointID
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<ContractEntrypointID, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<ContractEntrypointID, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
impl EncodesAs<ContractEntrypointID> for ContractEntrypointID
impl Eq for ContractEntrypointID
Source§impl Hash for ContractEntrypointID
impl Hash for ContractEntrypointID
Source§impl JsonSchema for ContractEntrypointID
Available on crate feature schema only.
impl JsonSchema for ContractEntrypointID
schema only.Source§fn json_schema(_gen: &mut SchemaGenerator) -> Schema
fn json_schema(_gen: &mut SchemaGenerator) -> Schema
Source§fn inline_schema() -> bool
fn inline_schema() -> bool
$ref keyword. Read moreSource§impl Ord for ContractEntrypointID
impl Ord for ContractEntrypointID
Source§fn cmp(&self, other: &ContractEntrypointID) -> Ordering
fn cmp(&self, other: &ContractEntrypointID) -> Ordering
1.21.0 (const: unstable) · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
1.21.0 (const: unstable) · Source§fn min(self, other: Self) -> Selfwhere
Self: Sized,
fn min(self, other: Self) -> Selfwhere
Self: Sized,
Source§impl PartialEq for ContractEntrypointID
impl PartialEq for ContractEntrypointID
Source§impl PartialOrd for ContractEntrypointID
impl PartialOrd for ContractEntrypointID
Source§impl<'_r> ReadXDR<'_r> for ContractEntrypointID
impl<'_r> ReadXDR<'_r> for ContractEntrypointID
Source§fn read_xdr<R>(r: &mut R) -> Result<ContractEntrypointID, ReadError>where
R: Reader<'_r>,
fn read_xdr<R>(r: &mut R) -> Result<ContractEntrypointID, ReadError>where
R: Reader<'_r>,
Source§fn read_xdr_in_place<R, '__xdrs_s>(
r: &mut R,
__xdrs_slot: Slot<'__xdrs_s, ContractEntrypointID>,
) -> Result<Init<'__xdrs_s, ContractEntrypointID>, ReadError>where
R: Reader<'_r>,
fn read_xdr_in_place<R, '__xdrs_s>(
r: &mut R,
__xdrs_slot: Slot<'__xdrs_s, ContractEntrypointID>,
) -> Result<Init<'__xdrs_s, ContractEntrypointID>, ReadError>where
R: Reader<'_r>,
slot, without first building it
on the stack. Read moreSource§impl<'r, 'a> ReadXDR<'r> for &'a ContractEntrypointIDwhere
'r: 'a,
Available on crate feature xdrs only.
impl<'r, 'a> ReadXDR<'r> for &'a ContractEntrypointIDwhere
'r: 'a,
xdrs only.Source§impl Serialize for ContractEntrypointID
impl Serialize for ContractEntrypointID
Source§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
impl StructuralPartialEq for ContractEntrypointID
Source§impl WriteXDR for ContractEntrypointID
impl WriteXDR for ContractEntrypointID
Source§fn write_xdr<F, W>(&self, w: &mut W) -> Result<(), WriteError>where
W: Writer<F>,
fn write_xdr<F, W>(&self, w: &mut W) -> Result<(), WriteError>where
W: Writer<F>,
Source§unsafe fn write_xdr_unchecked<F, W>(&self, w: &mut W)where
W: WriterUnchecked<F>,
unsafe fn write_xdr_unchecked<F, W>(&self, w: &mut W)where
W: WriterUnchecked<F>,
Auto Trait Implementations§
impl Freeze for ContractEntrypointID
impl RefUnwindSafe for ContractEntrypointID
impl Send for ContractEntrypointID
impl Sync for ContractEntrypointID
impl Unpin for ContractEntrypointID
impl UnsafeUnpin for ContractEntrypointID
impl UnwindSafe for ContractEntrypointID
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Comparable<K> for Q
impl<Q, K> Comparable<K> for Q
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.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> ⓘ
impl<T> MaybeSend for Twhere
T: Send,
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
impl<T> ReadXDROwned for Twhere
T: for<'r> ReadXDR<'r>,
impl<T> StaticIfNoAlloc for T
Source§impl<T> ToHex for T
impl<T> ToHex for T
Source§fn encode_hex<U>(&self) -> Uwhere
U: FromIterator<char>,
fn encode_hex<U>(&self) -> Uwhere
U: FromIterator<char>,
self into the result. Lower case
letters are used (e.g. f9b4ca)Source§fn encode_hex_upper<U>(&self) -> Uwhere
U: FromIterator<char>,
fn encode_hex_upper<U>(&self) -> Uwhere
U: FromIterator<char>,
self into the result. Upper case
letters are used (e.g. F9B4CA)