Build on crossr
Bridging
TokenBridge.quoteSend(dstEid, token, to, amount, options)gives the LayerZero fee;send(...)with that fee asmsg.valueburns the tokens and emitsBridgeSent(guid, …).dstEidis the LayerZero endpoint id, not the chain id: usechainMeta(chainId).lzEid. Options:lzReceiveOptions(BRIDGE_RECEIVE_GAS). No approval needed, the bridge is the token's burn authority.- The destination emits
BridgeReceived(guid, token, to, srcEid, amount)with the sameguid; the indexer stores both halves inbridge_transfers.