DeBridgeGate
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, have 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. submissionId is generated in getSubmissionIdFrom
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
Return DefiController that can supply liquidity to staking strategies (AAVE, Compound, etc.)
feeProxy
Returns proxy to convert the collected fees and transfer to Ethereum network to treasury
callProxy
Returns address of the proxy to execute user's calls.
weth
Returns contract for wrapped native token.
feeContractUpdater
Contract address that can override globalFixedNativeFee
globalFixedNativeFee
Fallback fixed fee in native asset, used if a chain fixed fee is set to 0
globalTransferFeeBps
Fallback transfer fee in BPS, used if a chain transfer fee is set to 0
wethGate
WethGate contract, that is used for weth withdraws affected by EIP1884
lockedClaim
Locker for claim method
Functions
initialize
Constructor that initializes the most important configurations.
Parameters:
_excessConfirmations
uint8
minimal required confirmations in case of too many confirmations
_weth
contract IWETH
wrapped native token contract
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:
_tokenAddress
address
Asset identifier.
_amount
uint256
Amount to be transferred (note: the fee can be applied).
_chainIdTo
uint256
Chain id of the target chain.
_receiver
bytes
Receiver address.
_permit
bytes
deadline + signature for approving the spender by signature.
_useAssetFee
bool
use assets fee for pay protocol fix (work only for specials token)
_referralCode
uint32
Referral code
_autoParams
bytes
Auto params for external call in target network
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:
_debridgeId
bytes32
Asset identifier.
_amount
uint256
Amount of the transferred asset (note: the fee can be applied).
_chainIdFrom
uint256
Chain where submission was sent
_receiver
address
Receiver address.
_nonce
uint256
Submission id.
_signatures
bytes
Validators signatures to confirm
_autoParams
bytes
Auto params for external call
flash
Get a flash loan, msg.sender must implement IFlashCallback
Parameters:
_tokenAddress
address
An asset to loan
_receiver
address
Where funds should be sent
_amount
uint256
Amount to loan
_data
bytes
Data to pass to sender's flashCallback function
deployNewAsset
Deploy a deToken(DeBridgeTokenProxy) for an asset
Parameters:
_nativeTokenAddress
bytes
A token address on a native chain
_nativeChainId
uint256
The token native chain's id
_name
string
The token's name
_symbol
string
The token's symbol
_decimals
uint8
The token's decimals
_signatures
bytes
Validators' signatures
autoUpdateFixedNativeFee
Update native fix fee. Called by our fee update contract
Parameters:
_globalFixedNativeFee
uint256
new value
updateChainSupport
Update asset's fees.
Parameters:
_chainIds
uint256[]
Chain identifiers.
_chainSupportInfo
struct IDeBridgeGate.ChainSupportInfo[]
Chain support info.
_isChainFrom
bool
is true for editing getChainFromConfig.
updateGlobalFee
Update fallbacks for fixed fee in native asset and transfer fee
Parameters:
_globalFixedNativeFee
uint256
Fallback fixed fee in native asset, used if a chain fixed fee is set to 0
_globalTransferFeeBps
uint16
Fallback transfer fee in BPS, used if a chain transfer fee is set to 0
updateAssetFixedFees
Update asset's fees.
Parameters:
_debridgeId
bytes32
Asset identifier.
_supportedChainIds
uint256[]
Chain identifiers.
_assetFeesInfo
uint256[]
Chain support info.
updateExcessConfirmations
Update minimal amount of required signatures, must be > SignatureVerifier.minConfirmations to have an effect
Parameters:
_excessConfirmations
uint8
Minimal amount of required signatures
setChainSupport
Set support for the chains where the token can be transferred.
Parameters:
_chainId
uint256
Chain id where tokens are sent.
_isSupported
bool
Whether the token is transferable to the other chain.
_isChainFrom
bool
is true for editing getChainFromConfig.
setCallProxy
Set address of the call proxy.
Parameters:
_callProxy
address
Address of the proxy that executes external calls.
updateAsset
Update specific asset's bridge parameters.
Parameters:
_debridgeId
bytes32
Asset identifier.
_maxAmount
uint256
Maximum amount of current chain token to be wrapped.
_minReservesBps
uint16
Minimal reserve ration in BPS.
_amountThreshold
uint256
Threshold amount after which Math.max(excessConfirmations,SignatureVerifier.minConfirmations) is used instead of SignatureVerifier.minConfirmations
setSignatureVerifier
Set signature verifier address.
Parameters:
_verifier
address
Signature verifier address.
setDeBridgeTokenDeployer
Set asset deployer address.
Parameters:
_deBridgeTokenDeployer
address
Asset deployer address.
setDefiController
Set defi controller.
Parameters:
_defiController
address
Defi controller address.
setFeeContractUpdater
Set fee contract updater, that can update fix native fee
Parameters:
_value
address
new contract address.
setWethGate
Set wethGate contract, that uses for weth withdraws affected by EIP1884
Parameters:
_wethGate
contract IWethGate
address of new wethGate contract.
pause
Stop all transfers.
unpause
Allow transfers.
withdrawFee
Withdraw collected fees to feeProxy
Parameters:
_debridgeId
bytes32
Asset identifier.
requestReserves
Request the assets to be used in DeFi protocol.
Parameters:
_tokenAddress
address
Asset address.
_amount
uint256
Amount of tokens to request.
returnReserves
Return the assets that were used in DeFi protocol.
Parameters:
_tokenAddress
address
Asset address.
_amount
uint256
Amount of tokens to claim.
setFeeProxy
Set fee converter proxy.
Parameters:
_feeProxy
address
Fee proxy address.
blockSubmission
Block or unblock a list of submissions
Parameters:
_submissionIds
bytes32[]
Ids of submissions to block/unblock
isBlocked
bool
True to block, false to unblock
updateFlashFee
Update flash fees.
Parameters:
_flashFeeBps
uint256
new fee in BPS
updateFeeDiscount
Update discount.
Parameters:
_address
address
customer address
_discountFixBps
uint16
fix discount in BPS
_discountTransferBps
uint16
transfer % discount in BPS
receive
_checkConfirmations
_addAsset
Add support for the asset.
Parameters:
_debridgeId
bytes32
Asset identifier.
_tokenAddress
address
Address of the asset on the current chain.
_nativeAddress
bytes
Address of the asset on the native chain.
_nativeChainId
uint256
Native chain id.
_send
Locks asset on the chain and enables minting on the other chain.
Parameters:
_amount
bytes
Amount to be transferred (note: the fee can be applied).
_chainIdTo
address
Chain id of the target chain.
_permit
uint256
deadline + signature for approving the spender by signature.
_publishSubmission
_applyDiscount
_validateToken
_claim
Unlock the asset on the current chain and transfer to receiver.
Parameters:
_debridgeId
bytes32
Asset identifier.
_receiver
bytes32
Receiver address.
_amount
address
Amount of the transfered asset (note: the fee can be applyed).
_mintOrTransfer
_safeTransferETH
_withdrawWeth
_normalizeTokenAmount
getDefiAvaliableReserves
Get reserves of a token available to use in defi
Parameters:
_tokenAddress
address
Token address
getDebridgeId
Calculates asset identifier.
Parameters:
_chainId
uint256
Current chain id.
_tokenAddress
address
Address of the asset on the other chain.
getbDebridgeId
Calculates asset identifier.
Parameters:
_chainId
uint256
Current chain id.
_tokenAddress
bytes
Address of the asset on the other chain.
getDebridgeChainAssetFixedFee
Returns asset fixed fee value for specified debridge and chainId.
Parameters:
_debridgeId
bytes32
Asset identifier.
_chainId
uint256
Chain id.
getSubmissionIdFrom
Calculate submission id for auto claimable transfer.
Parameters:
_debridgeId
bytes32
Asset identifier.
_chainIdFrom
uint256
Chain identifier of the chain where tokens are sent from.
_amount
uint256
Amount of the transferred asset (note: the fee can be applied).
_receiver
address
Receiver address.
_nonce
uint256
Submission id.
_autoParams
struct IDeBridgeGate.SubmissionAutoParamsFrom
Auto params for external call
_hasAutoParams
bool
True if auto params are provided
_sender
address
Address that will call claim
getDeployId
Calculates asset identifier for deployment.
Parameters:
_debridgeId
bytes32
Id of an asset, see getDebridgeId.
_name
string
Asset's name.
_symbol
string
Asset's symbol.
_decimals
uint8
Asset's decimals.
getChainId
Get current chain id
version
Get this contract's version
Last updated