pub struct CrossChainTransfer {
pub registry: CrossChainRegistry,
}Expand description
Cross-chain transfer orchestrator.
Coordinates lock → prove → verify → mint across chains.
Fields§
§registry: CrossChainRegistryThe cross-chain seal registry
Implementations§
Source§impl CrossChainTransfer
impl CrossChainTransfer
Sourcepub fn new(registry: CrossChainRegistry) -> Self
pub fn new(registry: CrossChainRegistry) -> Self
Create a new cross-chain transfer orchestrator.
Sourcepub fn execute(
&mut self,
locker: &dyn LockProvider,
verifier: &dyn TransferVerifier,
minter: &dyn MintProvider,
right_id: Hash,
commitment: Hash,
owner: OwnershipProof,
destination_chain: ChainId,
destination_owner: OwnershipProof,
current_block_height: u64,
finality_depth: u64,
) -> Result<CrossChainTransferResult, CrossChainError>
pub fn execute( &mut self, locker: &dyn LockProvider, verifier: &dyn TransferVerifier, minter: &dyn MintProvider, right_id: Hash, commitment: Hash, owner: OwnershipProof, destination_chain: ChainId, destination_owner: OwnershipProof, current_block_height: u64, finality_depth: u64, ) -> Result<CrossChainTransferResult, CrossChainError>
Execute a full cross-chain transfer.
- Lock the Right on the source chain
- Build the transfer proof
- Verify on the destination chain
- Mint the new Right
- Record in the registry
Auto Trait Implementations§
impl Freeze for CrossChainTransfer
impl RefUnwindSafe for CrossChainTransfer
impl Send for CrossChainTransfer
impl Sync for CrossChainTransfer
impl Unpin for CrossChainTransfer
impl UnsafeUnpin for CrossChainTransfer
impl UnwindSafe for CrossChainTransfer
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