编译器
0.5.16+commit.9c3226ce
文件 2 的 36:AccountActionHelper.sol
文件 3 的 36:AccountBalanceHelper.sol
文件 4 的 36:AccountMarginHelper.sol
文件 6 的 36:Address.sol
pragma solidity ^0.5.5;
library Address {
function isContract(address account) internal view returns (bool) {
bytes32 codehash;
bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
assembly { codehash := extcodehash(account) }
return (codehash != accountHash && codehash != 0x0);
}
function toPayable(address account) internal pure returns (address payable) {
return address(uint160(account));
}
function sendValue(address payable recipient, uint256 amount) internal {
require(address(this).balance >= amount, "Address: insufficient balance");
(bool success, ) = recipient.call.value(amount)("");
require(success, "Address: unable to send value, recipient may have reverted");
}
}
文件 10 的 36:DolomiteAmmLibrary.sol
文件 11 的 36:DolomiteAmmRouterProxy.sol
文件 12 的 36:DolomiteMarginMath.sol
文件 13 的 36:ERC20Helper.sol
文件 14 的 36:EnumerableSet.sol
文件 16 的 36:IDolomiteAmmFactory.sol
文件 17 的 36:IDolomiteAmmPair.sol
文件 18 的 36:IDolomiteAmmRouterProxy.sol
文件 19 的 36:IDolomiteMargin.sol
文件 20 的 36: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);
}
文件 21 的 36:IERC20Detailed.sol
文件 23 的 36:IInterestSetter.sol
文件 24 的 36:IPriceOracle.sol
文件 25 的 36:IUniswapV2Pair.sol
文件 28 的 36: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;
}
}
文件 30 的 36:SafeERC20.sol
pragma solidity ^0.5.0;
import "./IERC20.sol";
import "../../math/SafeMath.sol";
import "../../utils/Address.sol";
library SafeERC20 {
using SafeMath for uint256;
using Address for address;
function safeTransfer(IERC20 token, address to, uint256 value) internal {
callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value));
}
function safeTransferFrom(IERC20 token, address from, address to, uint256 value) internal {
callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value));
}
function safeApprove(IERC20 token, address spender, uint256 value) internal {
require((value == 0) || (token.allowance(address(this), spender) == 0),
"SafeERC20: approve from non-zero to non-zero allowance"
);
callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value));
}
function safeIncreaseAllowance(IERC20 token, address spender, uint256 value) internal {
uint256 newAllowance = token.allowance(address(this), spender).add(value);
callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance));
}
function safeDecreaseAllowance(IERC20 token, address spender, uint256 value) internal {
uint256 newAllowance = token.allowance(address(this), spender).sub(value, "SafeERC20: decreased allowance below zero");
callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance));
}
function callOptionalReturn(IERC20 token, bytes memory data) private {
require(address(token).isContract(), "SafeERC20: call to non-contract");
(bool success, bytes memory returndata) = address(token).call(data);
require(success, "SafeERC20: low-level call failed");
if (returndata.length > 0) {
require(abi.decode(returndata, (bool)), "SafeERC20: ERC20 operation did not succeed");
}
}
}
文件 31 的 36: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;
}
}
文件 35 的 36:TypedSignature.sol
{
"compilationTarget": {
"/home/cdc218/projects/dolomite-protocol-v2/contracts/external/proxies/DolomiteAmmRouterProxy.sol": "DolomiteAmmRouterProxy"
},
"evmVersion": "istanbul",
"libraries": {},
"optimizer": {
"enabled": true,
"runs": 10000
},
"remappings": []
}
[{"inputs":[{"internalType":"address","name":"_dolomiteMargin","type":"address"},{"internalType":"address","name":"_dolomiteAmmFactory","type":"address"},{"internalType":"address","name":"_expiry","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"uint256","name":"accountNumber","type":"uint256"},{"indexed":false,"internalType":"address","name":"inputToken","type":"address"},{"indexed":false,"internalType":"address","name":"outputToken","type":"address"},{"indexed":false,"internalType":"address","name":"withdrawalToken","type":"address"},{"components":[{"components":[{"internalType":"bool","name":"sign","type":"bool"},{"internalType":"uint256","name":"value","type":"uint256"}],"internalType":"struct Types.Wei","name":"deltaWei","type":"tuple"},{"components":[{"internalType":"bool","name":"sign","type":"bool"},{"internalType":"uint128","name":"value","type":"uint128"}],"internalType":"struct Types.Par","name":"newPar","type":"tuple"}],"indexed":false,"internalType":"struct Events.BalanceUpdate","name":"inputBalanceUpdate","type":"tuple"},{"components":[{"components":[{"internalType":"bool","name":"sign","type":"bool"},{"internalType":"uint256","name":"value","type":"uint256"}],"internalType":"struct Types.Wei","name":"deltaWei","type":"tuple"},{"components":[{"internalType":"bool","name":"sign","type":"bool"},{"internalType":"uint128","name":"value","type":"uint128"}],"internalType":"struct Types.Par","name":"newPar","type":"tuple"}],"indexed":false,"internalType":"struct Events.BalanceUpdate","name":"outputBalanceUpdate","type":"tuple"},{"components":[{"components":[{"internalType":"bool","name":"sign","type":"bool"},{"internalType":"uint256","name":"value","type":"uint256"}],"internalType":"struct Types.Wei","name":"deltaWei","type":"tuple"},{"components":[{"internalType":"bool","name":"sign","type":"bool"},{"internalType":"uint128","name":"value","type":"uint128"}],"internalType":"struct Types.Par","name":"newPar","type":"tuple"}],"indexed":false,"internalType":"struct Events.BalanceUpdate","name":"marginWithdrawalUpdate","type":"tuple"}],"name":"MarginPositionClose","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"uint256","name":"accountNumber","type":"uint256"},{"indexed":false,"internalType":"address","name":"inputToken","type":"address"},{"indexed":false,"internalType":"address","name":"outputToken","type":"address"},{"indexed":false,"internalType":"address","name":"depositToken","type":"address"},{"components":[{"components":[{"internalType":"bool","name":"sign","type":"bool"},{"internalType":"uint256","name":"value","type":"uint256"}],"internalType":"struct Types.Wei","name":"deltaWei","type":"tuple"},{"components":[{"internalType":"bool","name":"sign","type":"bool"},{"internalType":"uint128","name":"value","type":"uint128"}],"internalType":"struct Types.Par","name":"newPar","type":"tuple"}],"indexed":false,"internalType":"struct Events.BalanceUpdate","name":"inputBalanceUpdate","type":"tuple"},{"components":[{"components":[{"internalType":"bool","name":"sign","type":"bool"},{"internalType":"uint256","name":"value","type":"uint256"}],"internalType":"struct Types.Wei","name":"deltaWei","type":"tuple"},{"components":[{"internalType":"bool","name":"sign","type":"bool"},{"internalType":"uint128","name":"value","type":"uint128"}],"internalType":"struct Types.Par","name":"newPar","type":"tuple"}],"indexed":false,"internalType":"struct Events.BalanceUpdate","name":"outputBalanceUpdate","type":"tuple"},{"components":[{"components":[{"internalType":"bool","name":"sign","type":"bool"},{"internalType":"uint256","name":"value","type":"uint256"}],"internalType":"struct Types.Wei","name":"deltaWei","type":"tuple"},{"components":[{"internalType":"bool","name":"sign","type":"bool"},{"internalType":"uint128","name":"value","type":"uint128"}],"internalType":"struct Types.Par","name":"newPar","type":"tuple"}],"indexed":false,"internalType":"struct Events.BalanceUpdate","name":"marginDepositUpdate","type":"tuple"}],"name":"MarginPositionOpen","type":"event"},{"constant":true,"inputs":[],"name":"DOLOMITE_AMM_FACTORY","outputs":[{"internalType":"contract IDolomiteAmmFactory","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"DOLOMITE_MARGIN","outputs":[{"internalType":"contract IDolomiteMargin","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EXPIRY","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"components":[{"internalType":"uint256","name":"fromAccountNumber","type":"uint256"},{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"},{"internalType":"uint256","name":"amountADesiredWei","type":"uint256"},{"internalType":"uint256","name":"amountBDesiredWei","type":"uint256"},{"internalType":"uint256","name":"amountAMinWei","type":"uint256"},{"internalType":"uint256","name":"amountBMinWei","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"enum AccountBalanceHelper.BalanceCheckFlag","name":"balanceCheckFlag","type":"uint8"}],"internalType":"struct IDolomiteAmmRouterProxy.AddLiquidityParams","name":"_params","type":"tuple"},{"internalType":"address","name":"_toAccount","type":"address"}],"name":"addLiquidity","outputs":[{"internalType":"uint256","name":"amountAWei","type":"uint256"},{"internalType":"uint256","name":"amountBWei","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"components":[{"internalType":"uint256","name":"fromAccountNumber","type":"uint256"},{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"},{"internalType":"uint256","name":"amountADesiredWei","type":"uint256"},{"internalType":"uint256","name":"amountBDesiredWei","type":"uint256"},{"internalType":"uint256","name":"amountAMinWei","type":"uint256"},{"internalType":"uint256","name":"amountBMinWei","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"enum AccountBalanceHelper.BalanceCheckFlag","name":"balanceCheckFlag","type":"uint8"}],"internalType":"struct IDolomiteAmmRouterProxy.AddLiquidityParams","name":"_params","type":"tuple"},{"internalType":"uint256","name":"_toAccountNumber","type":"uint256"}],"name":"addLiquidityAndDepositIntoDolomite","outputs":[{"internalType":"uint256","name":"amountAWei","type":"uint256"},{"internalType":"uint256","name":"amountBWei","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_tokenA","type":"address"},{"internalType":"address","name":"_tokenB","type":"address"},{"internalType":"uint256","name":"_amountADesiredWei","type":"uint256"},{"internalType":"uint256","name":"_amountBDesiredWei","type":"uint256"},{"internalType":"uint256","name":"_amountAMinWei","type":"uint256"},{"internalType":"uint256","name":"_amountBMinWei","type":"uint256"}],"name":"getAddLiquidityAmounts","outputs":[{"internalType":"uint256","name":"amountAWei","type":"uint256"},{"internalType":"uint256","name":"amountBWei","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getPairInitCodeHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_account","type":"address"},{"internalType":"uint256","name":"_accountNumber","type":"uint256"},{"internalType":"uint256","name":"_amountInWei","type":"uint256"},{"internalType":"uint256","name":"_amountOutMinWei","type":"uint256"},{"internalType":"address[]","name":"_tokenPath","type":"address[]"}],"name":"getParamsForSwapExactTokensForTokens","outputs":[{"components":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"number","type":"uint256"}],"internalType":"struct Account.Info[]","name":"","type":"tuple[]"},{"components":[{"internalType":"enum Actions.ActionType","name":"actionType","type":"uint8"},{"internalType":"uint256","name":"accountId","type":"uint256"},{"components":[{"internalType":"bool","name":"sign","type":"bool"},{"internalType":"enum Types.AssetDenomination","name":"denomination","type":"uint8"},{"internalType":"enum Types.AssetReference","name":"ref","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"internalType":"struct Types.AssetAmount","name":"amount","type":"tuple"},{"internalType":"uint256","name":"primaryMarketId","type":"uint256"},{"internalType":"uint256","name":"secondaryMarketId","type":"uint256"},{"internalType":"address","name":"otherAddress","type":"address"},{"internalType":"uint256","name":"otherAccountId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"internalType":"struct Actions.ActionArgs[]","name":"","type":"tuple[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_account","type":"address"},{"internalType":"uint256","name":"_accountNumber","type":"uint256"},{"internalType":"uint256","name":"_amountInMaxWei","type":"uint256"},{"internalType":"uint256","name":"_amountOutWei","type":"uint256"},{"internalType":"address[]","name":"_tokenPath","type":"address[]"}],"name":"getParamsForSwapTokensForExactTokens","outputs":[{"components":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"number","type":"uint256"}],"internalType":"struct Account.Info[]","name":"","type":"tuple[]"},{"components":[{"internalType":"enum Actions.ActionType","name":"actionType","type":"uint8"},{"internalType":"uint256","name":"accountId","type":"uint256"},{"components":[{"internalType":"bool","name":"sign","type":"bool"},{"internalType":"enum Types.AssetDenomination","name":"denomination","type":"uint8"},{"internalType":"enum Types.AssetReference","name":"ref","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"internalType":"struct Types.AssetAmount","name":"amount","type":"tuple"},{"internalType":"uint256","name":"primaryMarketId","type":"uint256"},{"internalType":"uint256","name":"secondaryMarketId","type":"uint256"},{"internalType":"address","name":"otherAddress","type":"address"},{"internalType":"uint256","name":"otherAccountId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"internalType":"struct Actions.ActionArgs[]","name":"","type":"tuple[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"components":[{"internalType":"uint256","name":"toAccountNumber","type":"uint256"},{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"},{"internalType":"uint256","name":"liquidityWei","type":"uint256"},{"internalType":"uint256","name":"amountAMinWei","type":"uint256"},{"internalType":"uint256","name":"amountBMinWei","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"internalType":"struct IDolomiteAmmRouterProxy.RemoveLiquidityParams","name":"_params","type":"tuple"},{"internalType":"address","name":"_to","type":"address"}],"name":"removeLiquidity","outputs":[{"internalType":"uint256","name":"amountAWei","type":"uint256"},{"internalType":"uint256","name":"amountBWei","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"components":[{"internalType":"uint256","name":"toAccountNumber","type":"uint256"},{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"},{"internalType":"uint256","name":"liquidityWei","type":"uint256"},{"internalType":"uint256","name":"amountAMinWei","type":"uint256"},{"internalType":"uint256","name":"amountBMinWei","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"internalType":"struct IDolomiteAmmRouterProxy.RemoveLiquidityParams","name":"_params","type":"tuple"},{"internalType":"uint256","name":"_fromAccountNumber","type":"uint256"},{"internalType":"enum AccountBalanceHelper.BalanceCheckFlag","name":"_balanceCheckFlag","type":"uint8"}],"name":"removeLiquidityFromWithinDolomite","outputs":[{"internalType":"uint256","name":"amountAWei","type":"uint256"},{"internalType":"uint256","name":"amountBWei","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"components":[{"internalType":"uint256","name":"toAccountNumber","type":"uint256"},{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"},{"internalType":"uint256","name":"liquidityWei","type":"uint256"},{"internalType":"uint256","name":"amountAMinWei","type":"uint256"},{"internalType":"uint256","name":"amountBMinWei","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"internalType":"struct IDolomiteAmmRouterProxy.RemoveLiquidityParams","name":"_params","type":"tuple"},{"internalType":"address","name":"_to","type":"address"},{"components":[{"internalType":"bool","name":"approveMax","type":"bool"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"internalType":"struct IDolomiteAmmRouterProxy.PermitSignature","name":"_permit","type":"tuple"}],"name":"removeLiquidityWithPermit","outputs":[{"internalType":"uint256","name":"amountAWei","type":"uint256"},{"internalType":"uint256","name":"amountBWei","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_accountNumber","type":"uint256"},{"internalType":"uint256","name":"_amountInWei","type":"uint256"},{"internalType":"uint256","name":"_amountOutMinWei","type":"uint256"},{"internalType":"address[]","name":"_tokenPath","type":"address[]"},{"internalType":"uint256","name":"_deadline","type":"uint256"},{"internalType":"enum AccountBalanceHelper.BalanceCheckFlag","name":"_balanceCheckFlag","type":"uint8"}],"name":"swapExactTokensForTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"components":[{"internalType":"uint256","name":"tradeAccountNumber","type":"uint256"},{"internalType":"uint256","name":"otherAccountNumber","type":"uint256"},{"components":[{"internalType":"bool","name":"sign","type":"bool"},{"internalType":"enum Types.AssetDenomination","name":"denomination","type":"uint8"},{"internalType":"enum Types.AssetReference","name":"ref","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"internalType":"struct Types.AssetAmount","name":"amountIn","type":"tuple"},{"components":[{"internalType":"bool","name":"sign","type":"bool"},{"internalType":"enum Types.AssetDenomination","name":"denomination","type":"uint8"},{"internalType":"enum Types.AssetReference","name":"ref","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"internalType":"struct Types.AssetAmount","name":"amountOut","type":"tuple"},{"internalType":"address[]","name":"tokenPath","type":"address[]"},{"internalType":"address","name":"marginTransferToken","type":"address"},{"internalType":"uint256","name":"marginTransferWei","type":"uint256"},{"internalType":"bool","name":"isDepositIntoTradeAccount","type":"bool"},{"internalType":"uint256","name":"expiryTimeDelta","type":"uint256"},{"internalType":"enum AccountBalanceHelper.BalanceCheckFlag","name":"balanceCheckFlag","type":"uint8"}],"internalType":"struct IDolomiteAmmRouterProxy.ModifyPositionParams","name":"_params","type":"tuple"},{"internalType":"uint256","name":"_deadline","type":"uint256"}],"name":"swapExactTokensForTokensAndModifyPosition","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_accountNumber","type":"uint256"},{"internalType":"uint256","name":"_amountInMaxWei","type":"uint256"},{"internalType":"uint256","name":"_amountOutWei","type":"uint256"},{"internalType":"address[]","name":"_tokenPath","type":"address[]"},{"internalType":"uint256","name":"_deadline","type":"uint256"},{"internalType":"enum AccountBalanceHelper.BalanceCheckFlag","name":"_balanceCheckFlag","type":"uint8"}],"name":"swapTokensForExactTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"components":[{"internalType":"uint256","name":"tradeAccountNumber","type":"uint256"},{"internalType":"uint256","name":"otherAccountNumber","type":"uint256"},{"components":[{"internalType":"bool","name":"sign","type":"bool"},{"internalType":"enum Types.AssetDenomination","name":"denomination","type":"uint8"},{"internalType":"enum Types.AssetReference","name":"ref","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"internalType":"struct Types.AssetAmount","name":"amountIn","type":"tuple"},{"components":[{"internalType":"bool","name":"sign","type":"bool"},{"internalType":"enum Types.AssetDenomination","name":"denomination","type":"uint8"},{"internalType":"enum Types.AssetReference","name":"ref","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"internalType":"struct Types.AssetAmount","name":"amountOut","type":"tuple"},{"internalType":"address[]","name":"tokenPath","type":"address[]"},{"internalType":"address","name":"marginTransferToken","type":"address"},{"internalType":"uint256","name":"marginTransferWei","type":"uint256"},{"internalType":"bool","name":"isDepositIntoTradeAccount","type":"bool"},{"internalType":"uint256","name":"expiryTimeDelta","type":"uint256"},{"internalType":"enum AccountBalanceHelper.BalanceCheckFlag","name":"balanceCheckFlag","type":"uint8"}],"internalType":"struct IDolomiteAmmRouterProxy.ModifyPositionParams","name":"_params","type":"tuple"},{"internalType":"uint256","name":"_deadline","type":"uint256"}],"name":"swapTokensForExactTokensAndModifyPosition","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}]