[−][src]Struct solana_program::pubkey::Pubkey
Implementations
impl Pubkey
[src]
pub fn new(pubkey_vec: &[u8]) -> Self
[src]
pub const fn new_from_array(pubkey_array: [u8; 32]) -> Self
[src]
pub fn new_rand() -> Self
[src]
Please use 'Pubkey::new_unique' instead
pub fn new_unique() -> Self
[src]
unique Pubkey for tests and benchmarks.
pub fn create_with_seed(
base: &Pubkey,
seed: &str,
owner: &Pubkey
) -> Result<Pubkey, PubkeyError>
[src]
base: &Pubkey,
seed: &str,
owner: &Pubkey
) -> Result<Pubkey, PubkeyError>
pub fn create_program_address(
seeds: &[&[u8]],
program_id: &Pubkey
) -> Result<Pubkey, PubkeyError>
[src]
seeds: &[&[u8]],
program_id: &Pubkey
) -> Result<Pubkey, PubkeyError>
Create a program address
Program addresses are account keys that only the program has the
authority to sign. The address is of the same form as a Solana
Pubkey
, except they are ensured to not be on the ed25519 curve and
thus have no associated private key. When performing cross-program
invocations the program can "sign" for the key by calling
invoke_signed
and passing the same seeds used to generate the address.
The runtime will check that indeed the program associated with this
address is the caller and thus authorized to be the signer.
Because the program address cannot lie on the ed25519 curve there may be
seed and program id combinations that are invalid. In these cases an
extra seed (bump seed) can be calculated that results in a point off the
curve. Use find_program_address
to calculate that bump seed.
Warning: Because of the way the seeds are hashed there is a potential for program address collisions for the same program id. The seeds are hashed sequentially which means that seeds {"abcdef"}, {"abc", "def"}, and {"ab", "cd", "ef"} will all result in the same program address given the same program id. Since the change of collision is local to a given program id the developer of that program must take care to choose seeds that do not collide with themselves.
pub fn find_program_address(
seeds: &[&[u8]],
program_id: &Pubkey
) -> (Pubkey, u8)
[src]
seeds: &[&[u8]],
program_id: &Pubkey
) -> (Pubkey, u8)
Find a valid program address and its corresponding bump seed which must be passed
as an additional seed when calling invoke_signed
pub fn to_bytes(self) -> [u8; 32]
[src]
pub fn log(&self)
[src]
Log a Pubkey
from a program
Trait Implementations
impl AbiExample for Pubkey
[src]
impl AsRef<[u8]> for Pubkey
[src]
impl Clone for Pubkey
[src]
impl Copy for Pubkey
[src]
impl Debug for Pubkey
[src]
impl Default for Pubkey
[src]
impl<'de> Deserialize<'de> for Pubkey
[src]
pub fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>,
[src]
__D: Deserializer<'de>,
impl Display for Pubkey
[src]
impl Eq for Pubkey
[src]
impl FromStr for Pubkey
[src]
type Err = ParsePubkeyError
The associated error which can be returned from parsing.
pub fn from_str(s: &str) -> Result<Self, Self::Err>
[src]
impl Hash for Pubkey
[src]
pub fn hash<__H: Hasher>(&self, state: &mut __H)
[src]
pub fn hash_slice<H>(data: &[Self], state: &mut H) where
H: Hasher,
1.3.0[src]
H: Hasher,
impl Ord for Pubkey
[src]
pub fn cmp(&self, other: &Pubkey) -> Ordering
[src]
#[must_use]pub fn max(self, other: Self) -> Self
1.21.0[src]
#[must_use]pub fn min(self, other: Self) -> Self
1.21.0[src]
#[must_use]pub fn clamp(self, min: Self, max: Self) -> Self
1.50.0[src]
impl PartialEq<Pubkey> for Pubkey
[src]
impl PartialOrd<Pubkey> for Pubkey
[src]
pub fn partial_cmp(&self, other: &Pubkey) -> Option<Ordering>
[src]
pub fn lt(&self, other: &Pubkey) -> bool
[src]
pub fn le(&self, other: &Pubkey) -> bool
[src]
pub fn gt(&self, other: &Pubkey) -> bool
[src]
pub fn ge(&self, other: &Pubkey) -> bool
[src]
impl Sanitize for Pubkey
[src]
pub fn sanitize(&self) -> Result<(), SanitizeError>
[src]
impl Serialize for Pubkey
[src]
pub fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error> where
__S: Serializer,
[src]
__S: Serializer,
impl StructuralEq for Pubkey
[src]
impl StructuralPartialEq for Pubkey
[src]
Auto Trait Implementations
impl RefUnwindSafe for Pubkey
[src]
impl Send for Pubkey
[src]
impl Sync for Pubkey
[src]
impl Unpin for Pubkey
[src]
impl UnwindSafe for Pubkey
[src]
Blanket Implementations
impl<T> AbiEnumVisitor for T where
T: AbiExample + Serialize + ?Sized,
[src]
T: AbiExample + Serialize + ?Sized,
pub default fn visit_for_abi(
&self,
digester: &mut AbiDigester
) -> Result<AbiDigester, DigestError>
[src]
&self,
digester: &mut AbiDigester
) -> Result<AbiDigester, DigestError>
impl<T> AbiEnumVisitor for T where
T: Serialize + ?Sized,
[src]
T: Serialize + ?Sized,
pub default fn visit_for_abi(
&self,
_digester: &mut AbiDigester
) -> Result<AbiDigester, DigestError>
[src]
&self,
_digester: &mut AbiDigester
) -> Result<AbiDigester, DigestError>
impl<T> AbiExample for T
[src]
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> DeserializeOwned for T where
T: for<'de> Deserialize<'de>,
[src]
T: for<'de> Deserialize<'de>,
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> Same<T> for T
type Output = T
Should always be Self
impl<T> ToHex for T where
T: AsRef<[u8]>,
[src]
T: AsRef<[u8]>,
pub fn encode_hex<U>(&self) -> U where
U: FromIterator<char>,
[src]
U: FromIterator<char>,
pub fn encode_hex_upper<U>(&self) -> U where
U: FromIterator<char>,
[src]
U: FromIterator<char>,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T
[src]
pub fn clone_into(&self, target: &mut T)
[src]
impl<T> ToString for T where
T: Display + ?Sized,
[src]
T: Display + ?Sized,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
V: MultiLane<T>,