编译器
0.5.16+commit.9c3226ce
文件 2 的 41:AccountActionLib.sol
文件 3 的 41:AccountBalanceLib.sol
文件 8 的 41:DolomiteMarginMath.sol
文件 9 的 41:EnumerableSet.sol
文件 11 的 41:ExcessivelySafeCall.sol
文件 12 的 41:GenericTraderProxyBase.sol
文件 13 的 41:GenericTraderProxyV1.sol
文件 14 的 41:GenericTraderProxyV1Lib.sol
文件 15 的 41:HasLiquidatorRegistry.sol
文件 16 的 41:IAccountRiskOverrideSetter.sol
文件 17 的 41:IDolomiteMargin.sol
文件 18 的 41:IERC20.sol
pragma solidity ^0.5.0;
interface IERC20 {
function totalSupply() external view returns (uint256);
function balanceOf(address account) external view returns (uint256);
function transfer(address recipient, uint256 amount) external returns (bool);
function allowance(address owner, address spender) external view returns (uint256);
function approve(address spender, uint256 amount) external returns (bool);
function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
event Transfer(address indexed from, address indexed to, uint256 value);
event Approval(address indexed owner, address indexed spender, uint256 value);
}
文件 19 的 41:IERC20Detailed.sol
文件 20 的 41:IEventEmitterRegistry.sol
文件 21 的 41:IExchangeWrapper.sol
文件 23 的 41:IGenericTraderProxyBase.sol
文件 24 的 41:IGenericTraderProxyV1.sol
文件 25 的 41:IInterestSetter.sol
文件 26 的 41:IIsolationModeToken.sol
文件 27 的 41:IIsolationModeUnwrapperTrader.sol
文件 28 的 41:IIsolationModeWrapperTrader.sol
文件 29 的 41:ILiquidatorAssetRegistry.sol
文件 30 的 41:IOracleSentinel.sol
文件 31 的 41:IPriceOracle.sol
文件 34 的 41:OnlyDolomiteMargin.sol
文件 35 的 41:ReentrancyGuard.sol
pragma solidity ^0.5.0;
contract ReentrancyGuard {
bool private _notEntered;
constructor () internal {
_notEntered = true;
}
modifier nonReentrant() {
require(_notEntered, "ReentrancyGuard: reentrant call");
_notEntered = false;
_;
_notEntered = true;
}
}
文件 37 的 41:SafeMath.sol
pragma solidity ^0.5.0;
library SafeMath {
function add(uint256 a, uint256 b) internal pure returns (uint256) {
uint256 c = a + b;
require(c >= a, "SafeMath: addition overflow");
return c;
}
function sub(uint256 a, uint256 b) internal pure returns (uint256) {
return sub(a, b, "SafeMath: subtraction overflow");
}
function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
require(b <= a, errorMessage);
uint256 c = a - b;
return c;
}
function mul(uint256 a, uint256 b) internal pure returns (uint256) {
if (a == 0) {
return 0;
}
uint256 c = a * b;
require(c / a == b, "SafeMath: multiplication overflow");
return c;
}
function div(uint256 a, uint256 b) internal pure returns (uint256) {
return div(a, b, "SafeMath: division by zero");
}
function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
require(b > 0, errorMessage);
uint256 c = a / b;
return c;
}
function mod(uint256 a, uint256 b) internal pure returns (uint256) {
return mod(a, b, "SafeMath: modulo by zero");
}
function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
require(b != 0, errorMessage);
return a % b;
}
}
{
"compilationTarget": {
"/home/cdc218/projects/dolomite-protocol-v2/contracts/external/proxies/GenericTraderProxyV1.sol": "GenericTraderProxyV1"
},
"evmVersion": "istanbul",
"libraries": {
"GenericTraderProxyV1Lib": "0x5477f499f1273a89041527e7a1e76184d857df68"
},
"optimizer": {
"enabled": true,
"runs": 10000
},
"remappings": []
}
[{"inputs":[{"internalType":"uint256","name":"_chainId","type":"uint256"},{"internalType":"address","name":"_expiry","type":"address"},{"internalType":"address","name":"_eventEmitterRegistry","type":"address"},{"internalType":"address","name":"_dolomiteMargin","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"constant":true,"inputs":[],"name":"DOLOMITE_MARGIN","outputs":[{"internalType":"contract IDolomiteMargin","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVENT_EMITTER_REGISTRY","outputs":[{"internalType":"contract IEventEmitterRegistry","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EXPIRY","outputs":[{"internalType":"contract IExpiry","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"chainId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"contract IDolomiteMargin","name":"_dolomiteMargin","type":"address"},{"internalType":"uint256","name":"_marketId","type":"uint256"}],"name":"isIsolationModeMarket","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_eventEmitterRegistry","type":"address"}],"name":"ownerSetEventEmitterRegistry","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_tradeAccountNumber","type":"uint256"},{"internalType":"uint256[]","name":"_marketIdsPath","type":"uint256[]"},{"internalType":"uint256","name":"_inputAmountWei","type":"uint256"},{"internalType":"uint256","name":"_minOutputAmountWei","type":"uint256"},{"components":[{"internalType":"enum IGenericTraderProxyBase.TraderType","name":"traderType","type":"uint8"},{"internalType":"uint256","name":"makerAccountIndex","type":"uint256"},{"internalType":"address","name":"trader","type":"address"},{"internalType":"bytes","name":"tradeData","type":"bytes"}],"internalType":"struct IGenericTraderProxyBase.TraderParam[]","name":"_tradersPath","type":"tuple[]"},{"components":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"number","type":"uint256"}],"internalType":"struct Account.Info[]","name":"_makerAccounts","type":"tuple[]"},{"components":[{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"enum AccountBalanceLib.BalanceCheckFlag","name":"balanceCheckFlag","type":"uint8"},{"internalType":"enum IGenericTraderProxyV1.EventEmissionType","name":"eventType","type":"uint8"}],"internalType":"struct IGenericTraderProxyV1.UserConfig","name":"_userConfig","type":"tuple"}],"name":"swapExactInputForOutput","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_tradeAccountNumber","type":"uint256"},{"internalType":"uint256[]","name":"_marketIdsPath","type":"uint256[]"},{"internalType":"uint256","name":"_inputAmountWei","type":"uint256"},{"internalType":"uint256","name":"_minOutputAmountWei","type":"uint256"},{"components":[{"internalType":"enum IGenericTraderProxyBase.TraderType","name":"traderType","type":"uint8"},{"internalType":"uint256","name":"makerAccountIndex","type":"uint256"},{"internalType":"address","name":"trader","type":"address"},{"internalType":"bytes","name":"tradeData","type":"bytes"}],"internalType":"struct IGenericTraderProxyBase.TraderParam[]","name":"_tradersPath","type":"tuple[]"},{"components":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"number","type":"uint256"}],"internalType":"struct Account.Info[]","name":"_makerAccounts","type":"tuple[]"},{"components":[{"internalType":"uint256","name":"fromAccountNumber","type":"uint256"},{"internalType":"uint256","name":"toAccountNumber","type":"uint256"},{"components":[{"internalType":"uint256","name":"marketId","type":"uint256"},{"internalType":"uint256","name":"amountWei","type":"uint256"}],"internalType":"struct IGenericTraderProxyV1.TransferAmount[]","name":"transferAmounts","type":"tuple[]"}],"internalType":"struct IGenericTraderProxyV1.TransferCollateralParam","name":"_transferCollateralParams","type":"tuple"},{"components":[{"internalType":"uint256","name":"marketId","type":"uint256"},{"internalType":"uint32","name":"expiryTimeDelta","type":"uint32"}],"internalType":"struct IGenericTraderProxyV1.ExpiryParam","name":"_expiryParams","type":"tuple"},{"components":[{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"enum AccountBalanceLib.BalanceCheckFlag","name":"balanceCheckFlag","type":"uint8"},{"internalType":"enum IGenericTraderProxyV1.EventEmissionType","name":"eventType","type":"uint8"}],"internalType":"struct IGenericTraderProxyV1.UserConfig","name":"_userConfig","type":"tuple"}],"name":"swapExactInputForOutputAndModifyPosition","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}]