Rebalancer

Git Source

Inherits: IRebalancer

State Variables

roles

IRoles public roles;

nonce

uint256 public nonce;

logs

mapping(uint32 => mapping(uint256 => Msg)) public logs;

whitelistedBridges

mapping(address => bool) public whitelistedBridges;

whitelistedDestinations

mapping(uint32 => bool) public whitelistedDestinations;

allowedList

mapping(address => bool) public allowedList;

saveAddress

address public saveAddress;

maxTransferSizes

mapping(uint32 => mapping(address => uint256)) public maxTransferSizes;

minTransferSizes

mapping(uint32 => mapping(address => uint256)) public minTransferSizes;

currentTransferSize

mapping(uint32 => mapping(address => TransferInfo)) public currentTransferSize;

transferTimeWindow

uint256 public transferTimeWindow;

Functions

constructor

constructor(address _roles, address _saveAddress);

setAllowList

function setAllowList(address[] calldata list, bool status) external;

setWhitelistedBridgeStatus

function setWhitelistedBridgeStatus(address _bridge, bool _status) external;

setWhitelistedDestination

function setWhitelistedDestination(uint32 _dstId, bool _status) external;

saveEth

function saveEth() external;

setMinTransferSize

function setMinTransferSize(uint32 _dstChainId, address _token, uint256 _limit) external;

setMaxTransferSize

function setMaxTransferSize(uint32 _dstChainId, address _token, uint256 _limit) external;

isBridgeWhitelisted

returns if a bridge implementation is whitelisted

function isBridgeWhitelisted(address bridge) external view returns (bool);

isDestinationWhitelisted

returns if a destination is whitelisted

function isDestinationWhitelisted(uint32 dstId) external view returns (bool);

sendMsg

sends a bridge message

function sendMsg(address _bridge, address _market, uint256 _amount, Msg calldata _msg) external payable;

Parameters

NameTypeDescription
_bridgeaddress
_marketaddressthe market to rebalance from address
_amountuint256the amount to rebalance
_msgMsg

Structs

TransferInfo

struct TransferInfo {
    uint256 size;
    uint256 timestamp;
}