Skip to main content
Contract for assets transfers. The user can transfer the asset to any of the approved chains. The admin manages the assets, fees and other important protocol parameters.

Variables

BPS_DENOMINATOR

Basis points or bps, set to 10,000 (equal to 1/10000). Used to express relative values (fees)

GOVMONITORING_ROLE

Role allowed to stop transfers

SUBMISSION_PREFIX

Prefix to calculation submissionId

DEPLOY_PREFIX

Prefix to calculation deployId

deBridgeTokenDeployer

Address of IDeBridgeTokenDeployer contract

signatureVerifier

Current signature verifier address to verify signatures.

excessConfirmations

Minimal required confirmations in case sent amount is big, has no effect if less than SignatureVerifier.minConfirmations

flashFeeBps

Flash loan fee in basis points (1/10000)

nonce

Outgoing submissions count

getDebridge

Maps debridgeId (see getDebridgeId) => bridge-specific information.

getDebridgeFeeInfo

Maps debridgeId (see getDebridgeId) => fee information

isSubmissionUsed

Returns whether the transfer with the submissionId was claimed.

isBlockedSubmission

Returns whether the transfer with the submissionId is blocked.

getAmountThreshold

Maps debridgeId (see getDebridgeId) to threshold amount after which Math.max(excessConfirmations,SignatureVerifier.minConfirmations) is used instead of SignatureVerifier.minConfirmations

getChainToConfig

Whether the chain for the asset is supported to send

getChainFromConfig

Whether the chain for the asset is supported to claim

feeDiscount

Fee discount for address

getNativeInfo

Returns native token info by wrapped token address

defiController

DefiController that can supply liquidity to staking strategies (AAVE, Compound, etc.)

feeProxy

Proxy to convert collected fees and transfer to Ethereum treasury

callProxy

Address of the proxy to execute user’s calls.

weth

Wrapped native token contract

feeContractUpdater

Contract that can override globalFixedNativeFee

globalFixedNativeFee

Fallback fixed fee in native asset (used if chain fixed fee is 0)

globalTransferFeeBps

Fallback transfer fee in BPS (used if chain transfer fee is 0)

wethGate

WethGate contract used for WETH withdraws affected by EIP1884

lockedClaim

Locker for claim method

Functions

initialize

Constructor that initializes the most important configurations.

Parameters:


send

This method is used for the transfer of assets from the native chain. It locks an asset in the smart contract in the native chain and enables minting of deAsset on the secondary chain. Parameters:

claim

Is used for transfers into the native chain to unlock the designated amount of asset from collateral and transfer it to the receiver. Parameters:

flash

Get a flash loan, msg.sender must implement IFlashCallback. Parameters:

deployNewAsset

Deploy a deToken(DeBridgeTokenProxy) for an asset. Parameters:

autoUpdateFixedNativeFee

Update native fix fee. Called by our fee update contract. Parameters:

updateChainSupport

Update asset’s fees. Parameters:

updateGlobalFee

Update fallbacks for fixed fee in native asset and transfer fee. Parameters:

updateAssetFixedFees

Update asset’s fees. Parameters:

updateExcessConfirmations

Update minimal amount of required signatures, must be > SignatureVerifier.minConfirmations to have an effect. Parameters:

setChainSupport

Set support for the chains where the token can be transferred. Parameters:

setCallProxy

Set address of the call proxy. Parameters:

updateAsset

Update specific asset’s bridge parameters. Parameters:

setSignatureVerifier

Set signature verifier address. Parameters:

setDeBridgeTokenDeployer

Set asset deployer address. Parameters:

setDefiController

Set defi controller. Parameters:

setFeeContractUpdater

Set fee contract updater, that can update fix native fee. Parameters:

setWethGate

Set wethGate contract, used for weth withdrawals affected by EIP1884. Parameters:

pause

Stop all transfers.

unpause

Allow transfers again.

withdrawFee

Withdraw collected fees to feeProxy. Parameters:

requestReserves

Request the assets to be used in DeFi protocol. Parameters:

returnReserves

Return the assets that were used in DeFi protocol. Parameters:

setFeeProxy

Set fee converter proxy. Parameters:

blockSubmission

Block or unblock a list of submissions. Parameters:

updateFlashFee

Update flash fees. Parameters:

updateFeeDiscount

Update discount settings. Parameters:

receive

_checkConfirmations

_addAsset

Add support for the asset. Parameters:

_send

Locks asset on the chain and enables minting on the other chain. Parameters:

_publishSubmission

_applyDiscount

_validateToken

_claim

Unlock the asset on the current chain and transfer to receiver. Parameters:

_mintOrTransfer

_safeTransferETH

_withdrawWeth

_normalizeTokenAmount

getDefiAvaliableReserves

Get reserves of a token available to use in DeFi. Parameters:

getDebridgeId

Calculates asset identifier. Parameters:

getbDebridgeId

Calculates asset identifier. Parameters:

getDebridgeChainAssetFixedFee

Returns asset fixed fee value for specified debridge and chainId. Parameters:

getSubmissionIdFrom

Calculate submission id for auto claimable transfer. Parameters:

getDeployId

Calculates asset identifier for deployment. Parameters:

getChainId

Get current chain id.

version

Get this contract’s version.