pub struct SignBidirectionalEvent {
pub sender: Pubkey,
pub serialized_transaction: Vec<u8>,
pub caip2_id: String,
pub key_version: u32,
pub deposit: u64,
pub path: String,
pub algo: String,
pub dest: String,
pub params: String,
pub program_id: Pubkey,
pub output_deserialization_schema: Vec<u8>,
pub respond_serialization_schema: Vec<u8>,
}Expand description
Emitted when a bidirectional cross-chain request is made via
chain_signatures::sign_bidirectional.
§Event Type
CPI event (emitted via emit_cpi!)
§Usage
The MPC network listens for this event to:
- Sign the transaction and call
chain_signatures::respond - Store the pending tx in backlog for observation
- Monitor destination chain for confirmation
- Call
chain_signatures::respond_bidirectionalwith results
Fields§
§sender: PubkeySolana address of the requester.
serialized_transaction: Vec<u8>RLP-encoded unsigned transaction for the destination chain.
caip2_id: StringCAIP-2 chain identifier of the destination (e.g., “eip155:1” for Ethereum).
key_version: u32MPC key version used for signing.
deposit: u64Deposit amount paid in lamports.
path: StringDerivation path for the user’s signing key.
algo: StringSigning algorithm (e.g., “secp256k1”).
dest: StringResponse destination identifier.
params: StringAdditional JSON parameters.
program_id: PubkeyCallback program ID (reserved for future use).
output_deserialization_schema: Vec<u8>Schema for parsing destination chain call output (JSON-encoded).
respond_serialization_schema: Vec<u8>Schema for serializing response to source chain (JSON-encoded).
Trait Implementations§
Source§impl BorshDeserialize for SignBidirectionalEventwhere
Pubkey: BorshDeserialize,
Vec<u8>: BorshDeserialize,
String: BorshDeserialize,
u32: BorshDeserialize,
u64: BorshDeserialize,
impl BorshDeserialize for SignBidirectionalEventwhere
Pubkey: BorshDeserialize,
Vec<u8>: BorshDeserialize,
String: BorshDeserialize,
u32: BorshDeserialize,
u64: BorshDeserialize,
fn deserialize_reader<R: Read>(reader: &mut R) -> Result<Self, Error>
Source§fn deserialize(buf: &mut &[u8]) -> Result<Self, Error>
fn deserialize(buf: &mut &[u8]) -> Result<Self, Error>
Deserializes this instance from a given slice of bytes.
Updates the buffer to point at the remaining bytes.
Source§fn try_from_slice(v: &[u8]) -> Result<Self, Error>
fn try_from_slice(v: &[u8]) -> Result<Self, Error>
Deserialize this instance from a slice of bytes.
fn try_from_reader<R>(reader: &mut R) -> Result<Self, Error>where
R: Read,
Source§impl BorshSerialize for SignBidirectionalEventwhere
Pubkey: BorshSerialize,
Vec<u8>: BorshSerialize,
String: BorshSerialize,
u32: BorshSerialize,
u64: BorshSerialize,
impl BorshSerialize for SignBidirectionalEventwhere
Pubkey: BorshSerialize,
Vec<u8>: BorshSerialize,
String: BorshSerialize,
u32: BorshSerialize,
u64: BorshSerialize,
Source§impl Discriminator for SignBidirectionalEvent
impl Discriminator for SignBidirectionalEvent
Source§const DISCRIMINATOR: &'static [u8]
const DISCRIMINATOR: &'static [u8]
Discriminator slice. Read more
Auto Trait Implementations§
impl Freeze for SignBidirectionalEvent
impl RefUnwindSafe for SignBidirectionalEvent
impl Send for SignBidirectionalEvent
impl Sync for SignBidirectionalEvent
impl Unpin for SignBidirectionalEvent
impl UnwindSafe for SignBidirectionalEvent
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
Mutably borrows from an owned value. Read more