Overview
The ThorSwapFacet enables cross-chain token transfers using THORChain through the ThorSwap interface. THORChain provides decentralized cross-chain liquidity without wrapped tokens.
Contract Interface
Bridging Functions
startBridgeTokensViaThorSwap
Bridges tokens to another chain using THORChain.
function startBridgeTokensViaThorSwap (
BridgeData _bridgeData ,
ThorSwapData _thorSwapData
) external payable
Standard bridge data containing transaction details
ThorSwap-specific bridging parameters THORChain memo for routing
Transaction expiration timestamp
swapAndStartBridgeTokensViaThorSwap
Performs a token swap on the source chain before bridging via THORChain.
function swapAndStartBridgeTokensViaThorSwap (
BridgeData _bridgeData ,
SwapData [] _swapData ,
ThorSwapData _thorSwapData
) external payable
Array of swap operations to execute before bridging
ThorSwap-specific parameters
Data Structures
ThorSwapData
struct ThorSwapData {
address vault ; // THORChain vault
string memo ; // THORChain memo
uint256 expiration ; // Expiration timestamp
}
Usage Example
import { ThorSwapFacet } from '@lifi/contract-types' ;
const thorSwapFacet = ThorSwapFacet__factory . connect ( facetAddress , signer );
const bridgeData = {
transactionId: '0x...' ,
bridge: 'thorswap' ,
integrator: 'my-dapp' ,
referrer: '0x0000000000000000000000000000000000000000' ,
sendingAssetId: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48' , // USDC
receiver: '0x...' ,
minAmount: ethers . utils . parseUnits ( '100' , 6 ),
destinationChainId: 1 , // Ethereum (or other chain)
hasSourceSwaps: false ,
hasDestinationCall: false
};
const thorSwapData = {
vault: '0x...' , // THORChain vault
memo: '=:ETH.ETH:0x...' ,
expiration: Math . floor ( Date . now () / 1000 ) + 3600
};
const tx = await thorSwapFacet . startBridgeTokensViaThorSwap (
bridgeData ,
thorSwapData ,
{ value: 0 }
);
await tx . wait ();
Events
The facet emits standard LiFi events:
LiFiTransferStarted(BridgeData bridgeData)
LiFiTransferCompleted
AssetSwapped (when using swapAndStart variant)
See Also