Laïka - Litepaper
  • Overview
    • Why Laïka?
  • Architecture
  • Smart Contracts
    • Core Smart Contracts on Laïka
    • Interaction with Smart Contracts
    • Examples
    • Mainnet Deployment Addresses
  • Validators
    • Interactions
    • Rewards
  • Sequencers
    • Interactions
    • Layer 1 Interactions
    • Layer 2 Interactions
  • Validator and Sequencer Node Setup
  • Bridge
    • Official Multichain Bridge
    • Interactions
    • Bridged assets
    • Account Abstraction
  • Available networks
    • Mainnet
    • Testnet
  • Tokenomics
  • Roadmap
  • Users onboarding
Powered by GitBook
On this page
  1. Bridge

Interactions

↝ EVM Interactions

Initiating a Bridging Transaction (From EVM User):

// User initiates a bridging transaction on the EVM chain
function bridgeTokens(tokenAddress, amount, recipientAddress) {
  // 1. User interacts with a Laika bridge contract deployed on the EVM chain.
  bridgeContract.initiateBridge(tokenAddress, amount, recipientAddress);

  // 2. The bridge contract on the EVM chain:
    // 2.1. Locks the user's tokens on the EVM chain using locking mechanism .
    // 2.2. Creates a bridge transaction record with details like sender, recipient, amount, and intended chain (Laika).
    // 2.3. Broadcasts the bridge transaction record to the Laika bridge network.
}

Relaying and Validating on the Laika Bridge Network:

// Bridge node (one of many) on the Laika network receives the bridge transaction record.
function processBridgeTransaction(transactionRecord) {
  // 1. Verify the bridge transaction record:
    // 1.1. Authenticate the EVM bridge contract address using a pre-defined registry and verification methods.
    // 1.2. Validate the transaction details (amount, recipient) against the locked tokens on the EVM chain.
  
  // 2. If valid:
    // 2.1. Forward the transaction record to a configurable number of other bridge nodes for additional validation.
    // 2.2. Upon receiving enough valid confirmations from other bridge nodes, proceed with finalization.
  
  // 3. If invalid:
    // 3.1. Log the error and reject the transaction.
    // 3.2. Penalty mechanisms or dispute resolution logic .
}

Finalizing the Bridge Transaction (On Laika):

// Laika bridge contract (on L2) receives the validated bridge transaction record.
function finalizeBridgeTransaction(transactionRecord) {
  // 1. Verify if the transaction has already been finalized (idempotence check).
  
  // 2. If not finalized:
    // 2.1. Mint the equivalent amount of bridged tokens (e.g., wrapped tokens) on the Laika L2 network for the recipient address.
    // 2.2. Update the bridge contract state to reflect the completed transaction.
}
PreviousOfficial Multichain BridgeNextBridged assets