Struct solders_keypair::Keypair
source · pub struct Keypair(pub Keypair);
Expand description
A vanilla Ed25519 key pair.
Calling Keypair()
creates a new, random Keypair
.
Example: >>> from solders.keypair import Keypair >>> assert Keypair() != Keypair()
Tuple Fields§
§0: Keypair
Implementations§
source§impl Keypair
impl Keypair
sourcepub fn from_bytes(raw_bytes: [u8; 64]) -> PyResult<Self>
pub fn from_bytes(raw_bytes: [u8; 64]) -> PyResult<Self>
Recovers a Keypair
from bytes.
Args: raw_bytes (bytes): a 64-byte keypair.
Returns: Keypair: a keypair object.
Example: >>> from solders.keypair import Keypair >>> kp = Keypair() >>> assert kp == Keypair.from_bytes(bytes(kp))
sourcepub fn to_bytes_array(&self) -> [u8; 64]
pub fn to_bytes_array(&self) -> [u8; 64]
Returns this Keypair
as a byte array.
Returns: list[int]: the keypair as a list of 64 u8 ints.
Example: >>> from solders.keypair import Keypair >>> raw_bytes = b’\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x8a\x88\xe3\xddt\t\xf1\x95\xfdR\xdb-<\xba]r\xcag\t\xbf\x1d\x94\x12\x1b\xf3t\x88\x01\xb4\x0fo\’ >>> assert Keypair.from_bytes(raw_bytes).to_bytes_array() == list(raw_bytes)
sourcepub fn from_base58_string(s: &str) -> Self
pub fn from_base58_string(s: &str) -> Self
Recovers a Keypair
from a base58-encoded string.
Args: s (str): The base58-encoded string.
Returns: Keypair: a keypair oject.
Example: >>> from solders.keypair import Keypair >>> raw_bytes = b’\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x8a\x88\xe3\xddt\t\xf1\x95\xfdR\xdb-<\xba]r\xcag\t\xbf\x1d\x94\x12\x1b\xf3t\x88\x01\xb4\x0fo\’ >>> base58_str = “2AXDGYSE4f2sz7tvMMzyHvUfcoJmxudvdhBcmiUSo6iuCXagjUCKEQF21awZnUGxmwD4m9vGXuC3qieHXJQHAcT” >>> kp = Keypair.from_base58_string(base58_str) >>> assert kp == Keypair.from_bytes(raw_bytes) >>> assert str(kp) == base58_str
sourcepub fn secret(&self) -> &[u8] ⓘ
pub fn secret(&self) -> &[u8] ⓘ
Gets this Keypair
’s secret key.
Returns: bytes: The secret key in 32 bytes.
Example: >>> from solders.keypair import Keypair >>> kp = Keypair() >>> assert kp.secret() == bytes(kp)[:32]
sourcepub fn py_pubkey(&self) -> Pubkey
pub fn py_pubkey(&self) -> Pubkey
Get this keypair’s :class:~solders.pubkey.Pubkey
.
Returns: Pubkey: the pubkey of this keypair.
Example: >>> from solders.keypair import Keypair >>> from solders.pubkey import Pubkey >>> seed_bytes = bytes([0] * 32) >>> pubkey_bytes = b“;j’\xbc\xce\xb6\xa4-b\xa3\xa8\xd0*o\rse2\x15w\x1d\xe2C\xa6:\xc0H\xa1\x8bY\xda)“ >>> kp = Keypair.from_bytes(seed_bytes + pubkey_bytes) >>> assert kp.pubkey() == Pubkey(pubkey_bytes)
sourcepub fn py_sign_message(&self, message: &[u8]) -> Signature
pub fn py_sign_message(&self, message: &[u8]) -> Signature
Sign a mesage with this keypair, producing an Ed25519 signature over the provided message bytes.
Args: message (bytes): The message to sign.
Returns: Signature: The Ed25519 signature.
Example: >>> from solders.keypair import Keypair >>> seed = bytes([1] * 32) >>> keypair = Keypair.from_seed(seed) >>> msg = b“hello“ >>> sig = keypair.sign_message(msg) >>> bytes(sig).hex() ‘e1430c6ebd0d53573b5c803452174f8991ef5955e0906a09e8fdc7310459e9c82a402526748c3431fe7f0e5faafbf7e703234789734063ee42be17af16438d08’
sourcepub fn from_seed(seed: [u8; 32]) -> PyResult<Self>
pub fn from_seed(seed: [u8; 32]) -> PyResult<Self>
Generate a keypair from a 32-byte seed.
Args: seed (bytes): 32-byte seed. Returns: Keypair: The generated keypair.
Example: >>> from solders.keypair import Keypair >>> from solders.pubkey import Pubkey >>> seed_bytes = bytes([0] * 32) >>> from_seed = Keypair.from_seed(seed_bytes) >>> from_bytes = Keypair.from_bytes(seed_bytes + bytes(from_seed.pubkey())) >>> assert from_seed == from_bytes
sourcepub fn from_seed_and_derivation_path(
seed: [u8; 64],
dpath: &str
) -> PyResult<Self>
pub fn from_seed_and_derivation_path( seed: [u8; 64], dpath: &str ) -> PyResult<Self>
Generate a keypair from a 32-byte seed and derivation path..
Args: seed (bytes): 32-byte seed. dpath (str): derivation path. Returns: Keypair: The generated keypair.
Example: >>> from solders.keypair import Keypair >>> from solders.pubkey import Pubkey >>> seed_bytes = bytes([0] * 64) >>> account_index = 0 >>> derivation_path = f“m/44’/501’/0’/{account_index}’“ >>> from_seed = Keypair.from_seed_and_derivation_path(seed_bytes, derivation_path)
sourcepub fn from_seed_phrase_and_passphrase(
seed_phrase: &str,
passphrase: &str
) -> PyResult<Self>
pub fn from_seed_phrase_and_passphrase( seed_phrase: &str, passphrase: &str ) -> PyResult<Self>
Generate a keypair from a seed phrase and passphrase.
Args: seed_phrase (string): Secret seed phrase. passphrase (string): Passphrase.
Example: >>> from pybip39 import Mnemonic, Seed >>> from solders.keypair import Keypair >>> mnemonic = Mnemonic() >>> passphrase = “42” >>> seed = Seed(mnemonic, passphrase) >>> expected_keypair = Keypair.from_seed(bytes(seed)[:32]) >>> keypair = Keypair.from_seed_phrase_and_passphrase(mnemonic.phrase, passphrase) >>> assert keypair.pubkey() == expected_keypair.pubkey()
sourcepub fn py_is_interactive(&self) -> bool
pub fn py_is_interactive(&self) -> bool
Whether the impelmentation requires user interaction to sign.
Returns:
bool: Always False
for this class.
pub fn __hash__(&self) -> u64
pub fn __richcmp__(&self, other: Signer, op: CompareOp) -> PyResult<bool>
pub fn __bytes__<'a>(&self, py: Python<'a>) -> &'a PyBytes
pub fn __str__(&self) -> String
pub fn __repr__(&self) -> String
pub fn __reduce__(&self) -> PyResult<(PyObject, PyObject)>
Trait Implementations§
source§impl AsRef<Keypair> for Keypair
impl AsRef<Keypair> for Keypair
source§fn as_ref(&self) -> &KeypairOriginal
fn as_ref(&self) -> &KeypairOriginal
source§impl CommonMethods<'_> for Keypair
impl CommonMethods<'_> for Keypair
fn py_to_json(&self) -> String
fn py_from_json(raw: &'a str) -> Result<Self, PyErr>
source§impl CommonMethodsCore for Keypair
impl CommonMethodsCore for Keypair
source§impl<'de> Deserialize<'de> for Keypair
impl<'de> Deserialize<'de> for Keypair
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 From<Keypair> for Keypair
impl From<Keypair> for Keypair
source§fn from(original: KeypairOriginal) -> Keypair
fn from(original: KeypairOriginal) -> Keypair
source§impl PartialEq for Keypair
impl PartialEq for Keypair
source§impl PyBytesGeneral for Keypair
impl PyBytesGeneral for Keypair
fn pybytes_general<'a>(&self, py: Python<'a>) -> &'a PyBytes
source§impl PyClassImpl for Keypair
impl PyClassImpl for Keypair
source§const IS_BASETYPE: bool = true
const IS_BASETYPE: bool = true
source§const IS_SUBCLASS: bool = false
const IS_SUBCLASS: bool = false
source§const IS_MAPPING: bool = false
const IS_MAPPING: bool = false
source§const IS_SEQUENCE: bool = false
const IS_SEQUENCE: bool = false
§type ThreadChecker = ThreadCheckerStub<Keypair>
type ThreadChecker = ThreadCheckerStub<Keypair>
§type PyClassMutability = <<PyAny as PyClassBaseType>::PyClassMutability as PyClassMutability>::MutableChild
type PyClassMutability = <<PyAny as PyClassBaseType>::PyClassMutability as PyClassMutability>::MutableChild
§type BaseNativeType = PyAny
type BaseNativeType = PyAny
PyAny
by default, and when you declare
#[pyclass(extends=PyDict)]
, it’s PyDict
.fn items_iter() -> PyClassItemsIter
fn lazy_type_object() -> &'static LazyTypeObject<Self>
fn dict_offset() -> Option<isize>
fn weaklist_offset() -> Option<isize>
source§impl PyClassNewTextSignature<Keypair> for PyClassImplCollector<Keypair>
impl PyClassNewTextSignature<Keypair> for PyClassImplCollector<Keypair>
fn new_text_signature(self) -> Option<&'static str>
source§impl PyFromBytesGeneral for Keypair
impl PyFromBytesGeneral for Keypair
fn py_from_bytes_general(raw: &[u8]) -> PyResult<Self>
source§impl PyMethods<Keypair> for PyClassImplCollector<Keypair>
impl PyMethods<Keypair> for PyClassImplCollector<Keypair>
fn py_methods(self) -> &'static PyClassItems
source§impl PyTypeInfo for Keypair
impl PyTypeInfo for Keypair
§type AsRefTarget = PyCell<Keypair>
type AsRefTarget = PyCell<Keypair>
source§fn type_object_raw(py: Python<'_>) -> *mut PyTypeObject
fn type_object_raw(py: Python<'_>) -> *mut PyTypeObject
source§fn type_object(py: Python<'_>) -> &PyType
fn type_object(py: Python<'_>) -> &PyType
source§fn is_type_of(object: &PyAny) -> bool
fn is_type_of(object: &PyAny) -> bool
object
is an instance of this type or a subclass of this type.source§fn is_exact_type_of(object: &PyAny) -> bool
fn is_exact_type_of(object: &PyAny) -> bool
object
is an instance of this type.