Storage Contract 📜
Where all open limit orders, open positions, and their corresponding open interest are stored on chain.
State Variables
PRECISION
solidity
uint256 public constant PRECISION = 1e10;
uint256 public constant PRECISION = 1e10;
honey
solidity
ERC20 public honey;
ERC20 public honey;
pairsStorage
solidity
PairsStorageInterfaceV6 public pairsStorage;
PairsStorageInterfaceV6 public pairsStorage;
trading
solidity
address public trading;
address public trading;
callbacks
solidity
address public callbacks;
address public callbacks;
vault
solidity
IGToken public vault;
IGToken public vault;
maxTradesPerPair
solidity
uint256 public maxTradesPerPair;
uint256 public maxTradesPerPair;
maxPendingMarketOrders
solidity
uint256 public maxPendingMarketOrders;
uint256 public maxPendingMarketOrders;
gov
solidity
address public gov;
address public gov;
bot
solidity
address public bot;
address public bot;
_openTrades
solidity
mapping(address => mapping(uint256 => mapping(uint256 => Trade))) private _openTrades;
mapping(address => mapping(uint256 => mapping(uint256 => Trade))) private _openTrades;
_openTradesInfo
solidity
mapping(address => mapping(uint256 => mapping(uint256 => TradeInfo))) private _openTradesInfo;
mapping(address => mapping(uint256 => mapping(uint256 => TradeInfo))) private _openTradesInfo;
openTradesCount
solidity
mapping(address => mapping(uint256 => uint256)) public openTradesCount;
mapping(address => mapping(uint256 => uint256)) public openTradesCount;
openLimitOrderIds
solidity
mapping(address => mapping(uint256 => mapping(uint256 => uint256))) public openLimitOrderIds;
mapping(address => mapping(uint256 => mapping(uint256 => uint256))) public openLimitOrderIds;
openLimitOrdersCount
solidity
mapping(address => mapping(uint256 => uint256)) public openLimitOrdersCount;
mapping(address => mapping(uint256 => uint256)) public openLimitOrdersCount;
openLimitOrders
solidity
OpenLimitOrder[] public openLimitOrders;
OpenLimitOrder[] public openLimitOrders;
pairTraders
solidity
mapping(uint256 => address[]) public pairTraders;
mapping(uint256 => address[]) public pairTraders;
pairTradersId
solidity
mapping(address => mapping(uint256 => uint256)) public pairTradersId;
mapping(address => mapping(uint256 => uint256)) public pairTradersId;
isTradingContract
solidity
mapping(address => bool) public isTradingContract;
mapping(address => bool) public isTradingContract;
Functions
initialize
solidity
function initialize(
ERC20 _honey,
address _gov,
address _bot,
address _pairStorage,
address _vault,
address _trading,
address _callbacks
) external initializer;
function initialize(
ERC20 _honey,
address _gov,
address _bot,
address _pairStorage,
address _vault,
address _trading,
address _callbacks
) external initializer;
onlyGov
solidity
modifier onlyGov();
modifier onlyGov();
onlyTrading
solidity
modifier onlyTrading();
modifier onlyTrading();
setGov
solidity
function setGov(address _gov) external onlyGov;
function setGov(address _gov) external onlyGov;
setBot
solidity
function setBot(address _bot) external onlyGov;
function setBot(address _bot) external onlyGov;
removeTradingContract
solidity
function removeTradingContract(address _trading) external onlyGov;
function removeTradingContract(address _trading) external onlyGov;
setMaxTradesPerPair
solidity
function setMaxTradesPerPair(uint256 _maxTradesPerPair) external onlyGov;
function setMaxTradesPerPair(uint256 _maxTradesPerPair) external onlyGov;
setMaxPendingMarketOrders
solidity
function setMaxPendingMarketOrders(uint256 _maxPendingMarketOrders) external onlyGov;
function setMaxPendingMarketOrders(uint256 _maxPendingMarketOrders) external onlyGov;
storeTrade
solidity
function storeTrade(Trade memory _trade, TradeInfo memory _tradeInfo) external onlyTrading;
function storeTrade(Trade memory _trade, TradeInfo memory _tradeInfo) external onlyTrading;
unregisterTrade
solidity
function unregisterTrade(address trader, uint256 pairIndex, uint256 index) external onlyTrading;
function unregisterTrade(address trader, uint256 pairIndex, uint256 index) external onlyTrading;
storeOpenLimitOrder
solidity
function storeOpenLimitOrder(OpenLimitOrder memory o) external onlyTrading;
function storeOpenLimitOrder(OpenLimitOrder memory o) external onlyTrading;
updateOpenLimitOrder
solidity
function updateOpenLimitOrder(OpenLimitOrder calldata _o) external onlyTrading;
function updateOpenLimitOrder(OpenLimitOrder calldata _o) external onlyTrading;
unregisterOpenLimitOrder
solidity
function unregisterOpenLimitOrder(address _trader, uint256 _pairIndex, uint256 _index) external onlyTrading;
function unregisterOpenLimitOrder(address _trader, uint256 _pairIndex, uint256 _index) external onlyTrading;
updateSl
solidity
function updateSl(address _trader, uint256 _pairIndex, uint256 _index, uint256 _newSl) external onlyTrading;
function updateSl(address _trader, uint256 _pairIndex, uint256 _index, uint256 _newSl) external onlyTrading;
updateTp
solidity
function updateTp(address _trader, uint256 _pairIndex, uint256 _index, uint256 _newTp) external onlyTrading;
function updateTp(address _trader, uint256 _pairIndex, uint256 _index, uint256 _newTp) external onlyTrading;
updateTrade
solidity
function updateTrade(Trade memory _t) external onlyTrading;
function updateTrade(Trade memory _t) external onlyTrading;
handleDevGovFees
solidity
function handleDevGovFees(uint256 _pairIndex, uint256 _leveragedPositionSize, bool _fullFee)
external
onlyTrading
returns (uint256 fee);
function handleDevGovFees(uint256 _pairIndex, uint256 _leveragedPositionSize, bool _fullFee)
external
onlyTrading
returns (uint256 fee);
firstEmptyTradeIndex
solidity
function firstEmptyTradeIndex(address trader, uint256 pairIndex) public view returns (uint256 index);
function firstEmptyTradeIndex(address trader, uint256 pairIndex) public view returns (uint256 index);
firstEmptyOpenLimitIndex
solidity
function firstEmptyOpenLimitIndex(address trader, uint256 pairIndex) public view returns (uint256 index);
function firstEmptyOpenLimitIndex(address trader, uint256 pairIndex) public view returns (uint256 index);
hasOpenLimitOrder
solidity
function hasOpenLimitOrder(address trader, uint256 pairIndex, uint256 index) public view returns (bool);
function hasOpenLimitOrder(address trader, uint256 pairIndex, uint256 index) public view returns (bool);
openTrades
solidity
function openTrades(address trader, uint256 pairIndex, uint256 index) external view returns (Trade memory);
function openTrades(address trader, uint256 pairIndex, uint256 index) external view returns (Trade memory);
openTradesInfo
solidity
function openTradesInfo(address trader, uint256 pairIndex, uint256 index) external view returns (TradeInfo memory);
function openTradesInfo(address trader, uint256 pairIndex, uint256 index) external view returns (TradeInfo memory);
pairTradersArray
solidity
function pairTradersArray(uint256 _pairIndex) external view returns (address[] memory);
function pairTradersArray(uint256 _pairIndex) external view returns (address[] memory);
getOpenLimitOrder
solidity
function getOpenLimitOrder(address _trader, uint256 _pairIndex, uint256 _index)
external
view
returns (OpenLimitOrder memory);
function getOpenLimitOrder(address _trader, uint256 _pairIndex, uint256 _index)
external
view
returns (OpenLimitOrder memory);
getOpenLimitOrders
solidity
function getOpenLimitOrders() external view returns (OpenLimitOrder[] memory);
function getOpenLimitOrders() external view returns (OpenLimitOrder[] memory);
Events
SupportedTokenAdded
solidity
event SupportedTokenAdded(address a);
event SupportedTokenAdded(address a);
TradingContractAdded
solidity
event TradingContractAdded(address a);
event TradingContractAdded(address a);
TradingContractRemoved
solidity
event TradingContractRemoved(address a);
event TradingContractRemoved(address a);
AddressUpdated
solidity
event AddressUpdated(string name, address a);
event AddressUpdated(string name, address a);
NumberUpdated
solidity
event NumberUpdated(string name, uint256 value);
event NumberUpdated(string name, uint256 value);
NumberUpdatedPair
solidity
event NumberUpdatedPair(string name, uint256 pairIndex, uint256 value);
event NumberUpdatedPair(string name, uint256 pairIndex, uint256 value);
SpreadReductionsUpdated
solidity
event SpreadReductionsUpdated(uint256[5]);
event SpreadReductionsUpdated(uint256[5]);