15 txs
57 calls
constructor
constructor(address _vault, address _usdg, address _weth)
functions
approvedPlugins
viewfunction approvedPlugins(address, address) view returns (bool)
gov
viewfunction gov() view returns (address)
plugins
viewfunction plugins(address) view returns (bool)
usdg
viewfunction usdg() view returns (address)
vault
viewfunction vault() view returns (address)
weth
viewfunction weth() view returns (address)
addPlugin
nonpayablefunction addPlugin(address _plugin)
approvePlugin
nonpayablefunction approvePlugin(address _plugin)
decreasePosition
nonpayablefunction decreasePosition(address _collateralToken, address _indexToken, uint256 _collateralDelta, uint256 _sizeDelta, bool _isLong, address _receiver, uint256 _price)
decreasePositionAndSwap
nonpayablefunction decreasePositionAndSwap(address[] _path, address _indexToken, uint256 _collateralDelta, uint256 _sizeDelta, bool _isLong, address _receiver, uint256 _price, uint256 _minOut)
decreasePositionAndSwapETH
nonpayablefunction decreasePositionAndSwapETH(address[] _path, address _indexToken, uint256 _collateralDelta, uint256 _sizeDelta, bool _isLong, address _receiver, uint256 _price, uint256 _minOut)
decreasePositionETH
nonpayablefunction decreasePositionETH(address _collateralToken, address _indexToken, uint256 _collateralDelta, uint256 _sizeDelta, bool _isLong, address _receiver, uint256 _price)
denyPlugin
nonpayablefunction denyPlugin(address _plugin)
directPoolDeposit
nonpayablefunction directPoolDeposit(address _token, uint256 _amount)
increasePosition
nonpayablefunction increasePosition(address[] _path, address _indexToken, uint256 _amountIn, uint256 _minOut, uint256 _sizeDelta, bool _isLong, uint256 _price)
increasePositionETH
payablefunction increasePositionETH(address[] _path, address _indexToken, uint256 _minOut, uint256 _sizeDelta, bool _isLong, uint256 _price) payable
pluginDecreasePosition
nonpayablefunction pluginDecreasePosition(address _account, address _collateralToken, address _indexToken, uint256 _collateralDelta, uint256 _sizeDelta, bool _isLong, address _receiver) returns (uint256)
pluginIncreasePosition
nonpayablefunction pluginIncreasePosition(address _account, address _collateralToken, address _indexToken, uint256 _sizeDelta, bool _isLong)
pluginTransfer
nonpayablefunction pluginTransfer(address _token, address _account, address _receiver, uint256 _amount)
removePlugin
nonpayablefunction removePlugin(address _plugin)
setGov
nonpayablefunction setGov(address _gov)
swap
nonpayablefunction swap(address[] _path, uint256 _amountIn, uint256 _minOut, address _receiver)
swapETHToTokens
payablefunction swapETHToTokens(address[] _path, uint256 _minOut, address _receiver) payable
swapTokensToETH
nonpayablefunction swapTokensToETH(address[] _path, uint256 _amountIn, uint256 _minOut, address _receiver)
events
Swap
event Swap(address account, address tokenIn, address tokenOut, uint256 amountIn, uint256 amountOut)
errors
No errors.
creation bytecode
0x60806040523480156200001157600080fd5b506040516200222a3803806200222a8339810160408190526200003491620000a1565b600380546001600160a01b039485166001600160a01b03199182161790915560028054938516938216939093179092556001805491909316908216179091556000805490911633179055620000eb565b80516001600160a01b03811681146200009c57600080fd5b919050565b600080600060608486031215620000b757600080fd5b620000c28462000084565b9250620000d26020850162000084565b9150620000e26040850162000084565b90509250925092565b61212f80620000fb6000396000f3fe60806040526004361061014f5760003560e01c806390205d8c116100b6578063b7ddc9921161006f578063b7ddc9921461046b578063cedd43751461048b578063cfad57a2146104d4578063d8867fc8146104f4578063f5b91b7b14610514578063fbfa77cf1461053457600080fd5b806390205d8c146103aa57806390b64ad3146103ca578063956f285e146103ea578063a4d95b6414610425578063abe68eaa14610445578063b32755de1461045857600080fd5b806338c74dd91161010857806338c74dd91461029e5780633fc8cef3146102ea578063430ed37c1461030a5780634b12e6431461032a5780635fc8500e1461036a5780636023e9661461038a57600080fd5b806312d43a51146101b35780631b827878146101f05780631f1dd176146102105780632662166b146102305780632d4ba6a71461025e5780633039e37f1461027e57600080fd5b366101ae576001546001600160a01b031633146101ac5760405162461bcd60e51b81526020600482015260166024820152752937baba32b91d1034b73b30b634b21039b2b73232b960511b60448201526064015b60405180910390fd5b005b600080fd5b3480156101bf57600080fd5b506000546101d3906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156101fc57600080fd5b506101ac61020b3660046119aa565b610554565b34801561021c57600080fd5b506101ac61022b366004611a09565b610578565b34801561023c57600080fd5b5061025061024b366004611a71565b610607565b6040519081526020016101e7565b34801561026a57600080fd5b506101ac610279366004611ba2565b61069d565b34801561028a57600080fd5b506101ac610299366004611c05565b610811565b3480156102aa57600080fd5b506101ac6102b9366004611ca1565b3360009081526005602090815260408083206001600160a01b0394909416835292905220805460ff19166001179055565b3480156102f657600080fd5b506001546101d3906001600160a01b031681565b34801561031657600080fd5b506101ac610325366004611cbe565b61090c565b34801561033657600080fd5b5061035a610345366004611ca1565b60046020526000908152604090205460ff1681565b60405190151581526020016101e7565b34801561037657600080fd5b506101ac610385366004611c05565b610933565b34801561039657600080fd5b506101ac6103a5366004611ba2565b610985565b3480156103b657600080fd5b506101ac6103c5366004611cbe565b6109d2565b3480156103d657600080fd5b506101ac6103e5366004611d39565b6109e1565b3480156103f657600080fd5b5061035a610405366004611d65565b600560209081526000928352604080842090915290825290205460ff1681565b34801561043157600080fd5b506101ac610440366004611ca1565b610a5f565b6101ac610453366004611d9e565b610aaa565b6101ac610466366004611df9565b610bc5565b34801561047757600080fd5b506101ac610486366004611e79565b610cb6565b34801561049757600080fd5b506101ac6104a6366004611ca1565b3360009081526005602090815260408083206001600160a01b0394909416835292905220805460ff19169055565b3480156104e057600080fd5b506101ac6104ef366004611ca1565b610d70565b34801561050057600080fd5b506101ac61050f366004611ca1565b610dbc565b34801561052057600080fd5b506002546101d3906001600160a01b031681565b34801561054057600080fd5b506003546101d3906001600160a01b031681565b61055d83610e0a565b6105726001600160a01b038516848484610ed8565b50505050565b61058185610e0a565b6003546040516348d91abf60e01b81526001600160a01b03878116600483015286811660248301528581166044830152606482018590528315156084830152909116906348d91abf9060a4015b600060405180830381600087803b1580156105e857600080fd5b505af11580156105fc573d6000803e3d6000fd5b505050505050505050565b600061061288610e0a565b60035460405163082a084960e41b81526001600160a01b03909116906382a084909061064e908b908b908b908b908b908b908b90600401611eed565b6020604051808303816000875af115801561066d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106919190611f2c565b98975050505050505050565b6001805485516001600160a01b039091169186916106bb9190611f45565b815181106106cb576106cb611f6a565b60200260200101516001600160a01b0316146106f95760405162461bcd60e51b81526004016101a390611f80565b610743335b60035486516001600160a01b03909116908690889060009061072257610722611f6a565b60200260200101516001600160a01b0316610ed8909392919063ffffffff16565b6000610750858430610f43565b905061075c81836110a9565b7fcd3829a3813dc3cdd188fd3d01dcf3268c16be2fdd2dd21d0665418816e46062338660008151811061079157610791611f6a565b602002602001015187600189516107a89190611f45565b815181106107b8576107b8611f6a565b602002602001015187856040516108029594939291906001600160a01b03958616815293851660208501529190931660408301526060820192909252608081019190915260a00190565b60405180910390a15050505050565b6001805489516001600160a01b03909116918a9161082f9190611f45565b8151811061083f5761083f611f6a565b60200260200101516001600160a01b03161461086d5760405162461bcd60e51b81526004016101a390611f80565b60006108988960008151811061088557610885611f6a565b602002602001015189898989308961111f565b90506108e7600360009054906101000a90046001600160a01b0316828b6000815181106108c7576108c7611f6a565b60200260200101516001600160a01b031661127e9092919063ffffffff16565b60006108f48a8430610f43565b905061090081866110a9565b50505050505050505050565b600061091d8888888888308861111f565b905061092981846110a9565b5050505050505050565b600061094b8960008151811061088557610885611f6a565b905061097a600360009054906101000a90046001600160a01b0316828b6000815181106108c7576108c7611f6a565b610900898386610f43565b61098e336106fe565b600061099b858484610f43565b90507fcd3829a3813dc3cdd188fd3d01dcf3268c16be2fdd2dd21d0665418816e46062338660008151811061079157610791611f6a565b6109298787878787878761111f565b6109fc336003546001600160a01b0385811692911684610ed8565b600354604051635f7bc11960e01b81526001600160a01b03848116600483015290911690635f7bc11990602401600060405180830381600087803b158015610a4357600080fd5b505af1158015610a57573d6000803e3d6000fd5b505050505050565b6000546001600160a01b03163314610a895760405162461bcd60e51b81526004016101a390611faf565b6001600160a01b03166000908152600460205260409020805460ff19169055565b60015483516001600160a01b03909116908490600090610acc57610acc611f6a565b60200260200101516001600160a01b031614610afa5760405162461bcd60e51b81526004016101a390611f80565b610b026112b3565b6000610b0f848484610f43565b90507fcd3829a3813dc3cdd188fd3d01dcf3268c16be2fdd2dd21d0665418816e460623385600081518110610b4657610b46611f6a565b60200260200101518660018851610b5d9190611f45565b81518110610b6d57610b6d611f6a565b60200260200101513485604051610bb79594939291906001600160a01b03958616815293851660208501529190931660408301526060820192909252608081019190915260a00190565b60405180910390a150505050565b60015486516001600160a01b03909116908790600090610be757610be7611f6a565b60200260200101516001600160a01b031614610c155760405162461bcd60e51b81526004016101a390611f80565b3415610c2357610c236112b3565b60018651118015610c345750600034115b15610c83576000610c46878630610f43565b9050610c81600360009054906101000a90046001600160a01b0316828960018b51610c719190611f45565b815181106108c7576108c7611f6a565b505b610a578660018851610c959190611f45565b81518110610ca557610ca5611f6a565b60200260200101518685858561133c565b8415610ce457610ce43360035489516001600160a01b039091169088908b9060009061072257610722611f6a565b60018751118015610cf55750600085115b15610d34576000610d07888630610f43565b9050610d32600360009054906101000a90046001600160a01b0316828a60018c51610c719190611f45565b505b610d678760018951610d469190611f45565b81518110610d5657610d56611f6a565b60200260200101518785858561133c565b50505050505050565b6000546001600160a01b03163314610d9a5760405162461bcd60e51b81526004016101a390611faf565b600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610de65760405162461bcd60e51b81526004016101a390611faf565b6001600160a01b03166000908152600460205260409020805460ff19166001179055565b3360009081526004602052604090205460ff16610e625760405162461bcd60e51b81526020600482015260166024820152752937baba32b91d1034b73b30b634b21038363ab3b4b760511b60448201526064016101a3565b6001600160a01b038116600090815260056020908152604080832033845290915290205460ff16610ed55760405162461bcd60e51b815260206004820152601b60248201527f526f757465723a20706c7567696e206e6f7420617070726f766564000000000060448201526064016101a3565b50565b6040516001600160a01b03808516602483015283166044820152606481018290526105729085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526114ae565b6000835160021415610f9657610f8f84600081518110610f6557610f65611f6a565b602002602001015185600181518110610f8057610f80611f6a565b60200260200101518585611583565b90506110a2565b83516003141561105a576000610fe385600081518110610fb857610fb8611f6a565b602002602001015186600181518110610fd357610fd3611f6a565b6020026020010151600030611583565b9050611012600360009054906101000a90046001600160a01b031682876001815181106108c7576108c7611f6a565b6110528560018151811061102857611028611f6a565b60200260200101518660028151811061104357611043611f6a565b60200260200101518686611583565b9150506110a2565b60405162461bcd60e51b815260206004820152601c60248201527f526f757465723a20696e76616c6964205f706174682e6c656e6774680000000060448201526064016101a3565b9392505050565b600154604051632e1a7d4d60e01b8152600481018490526001600160a01b0390911690632e1a7d4d90602401600060405180830381600087803b1580156110ef57600080fd5b505af1158015611103573d6000803e3d6000fd5b5061111b925050506001600160a01b0382168361174c565b5050565b600083156111b8576003546040516340d3096b60e11b81526001600160a01b038981166004830152849216906381a612d690602401602060405180830381865afa158015611171573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111959190611f2c565b10156111b35760405162461bcd60e51b81526004016101a390611fda565b611244565b600354604051637092736960e11b81526001600160a01b0389811660048301528492169063e124e6d290602401602060405180830381865afa158015611202573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112269190611f2c565b11156112445760405162461bcd60e51b81526004016101a39061201d565b6003546001600160a01b03166382a08490338a8a8a8a8a8a6040518863ffffffff1660e01b815260040161064e9796959493929190611eed565b6040516001600160a01b0383166024820152604481018290526112ae90849063a9059cbb60e01b90606401610f0c565b505050565b600160009054906101000a90046001600160a01b03166001600160a01b031663d0e30db0346040518263ffffffff1660e01b81526004016000604051808303818588803b15801561130357600080fd5b505af1158015611317573d6000803e3d6000fd5b505060035460015461133a94506001600160a01b0390811693501690503461127e565b565b81156113d357600354604051637092736960e11b81526001600160a01b0386811660048301528392169063e124e6d290602401602060405180830381865afa15801561138c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113b09190611f2c565b11156113ce5760405162461bcd60e51b81526004016101a39061201d565b61145f565b6003546040516340d3096b60e11b81526001600160a01b038681166004830152839216906381a612d690602401602060405180830381865afa15801561141d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114419190611f2c565b101561145f5760405162461bcd60e51b81526004016101a390611fda565b6003546040516348d91abf60e01b81523360048201526001600160a01b0387811660248301528681166044830152606482018690528415156084830152909116906348d91abf9060a4016105ce565b6000611503826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166118659092919063ffffffff16565b90508051600014806115245750808060200190518101906115249190612061565b6112ae5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016101a3565b60025460009081906001600160a01b038681169116141561161e5760035460405163817bb85760e01b81526001600160a01b03888116600483015285811660248301529091169063817bb857906044015b6020604051808303816000875af11580156115f3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116179190611f2c565b90506116f1565b6002546001600160a01b038781169116141561166e57600354604051630711e61960e41b81526001600160a01b03878116600483015285811660248301529091169063711e6190906044016115d4565b600354604051634998b10960e11b81526001600160a01b03888116600483015287811660248301528581166044830152909116906393316212906064016020604051808303816000875af11580156116ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116ee9190611f2c565b90505b838110156117415760405162461bcd60e51b815260206004820152601e60248201527f526f757465723a20696e73756666696369656e7420616d6f756e744f7574000060448201526064016101a3565b90505b949350505050565b8047101561179c5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016101a3565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146117e9576040519150601f19603f3d011682016040523d82523d6000602084013e6117ee565b606091505b50509050806112ae5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016101a3565b6060611744848460008585600080866001600160a01b0316858760405161188c91906120aa565b60006040518083038185875af1925050503d80600081146118c9576040519150601f19603f3d011682016040523d82523d6000602084013e6118ce565b606091505b50915091506118df878383876118ea565b979650505050505050565b6060831561195657825161194f576001600160a01b0385163b61194f5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016101a3565b5081611744565b611744838381511561196b5781518083602001fd5b8060405162461bcd60e51b81526004016101a391906120c6565b6001600160a01b0381168114610ed557600080fd5b80356119a581611985565b919050565b600080600080608085870312156119c057600080fd5b84356119cb81611985565b935060208501356119db81611985565b925060408501356119eb81611985565b9396929550929360600135925050565b8015158114610ed557600080fd5b600080600080600060a08688031215611a2157600080fd5b8535611a2c81611985565b94506020860135611a3c81611985565b93506040860135611a4c81611985565b9250606086013591506080860135611a63816119fb565b809150509295509295909350565b600080600080600080600060e0888a031215611a8c57600080fd5b8735611a9781611985565b96506020880135611aa781611985565b95506040880135611ab781611985565b9450606088013593506080880135925060a0880135611ad5816119fb565b915060c0880135611ae581611985565b8091505092959891949750929550565b634e487b7160e01b600052604160045260246000fd5b600082601f830112611b1c57600080fd5b8135602067ffffffffffffffff80831115611b3957611b39611af5565b8260051b604051601f19603f83011681018181108482111715611b5e57611b5e611af5565b604052938452858101830193838101925087851115611b7c57600080fd5b83870191505b848210156118df57611b938261199a565b83529183019190830190611b82565b60008060008060808587031215611bb857600080fd5b843567ffffffffffffffff811115611bcf57600080fd5b611bdb87828801611b0b565b94505060208501359250604085013591506060850135611bfa81611985565b939692955090935050565b600080600080600080600080610100898b031215611c2257600080fd5b883567ffffffffffffffff811115611c3957600080fd5b611c458b828c01611b0b565b9850506020890135611c5681611985565b965060408901359550606089013594506080890135611c74816119fb565b935060a0890135611c8481611985565b979a969950949793969295929450505060c08201359160e0013590565b600060208284031215611cb357600080fd5b81356110a281611985565b600080600080600080600060e0888a031215611cd957600080fd5b8735611ce481611985565b96506020880135611cf481611985565b955060408801359450606088013593506080880135611d12816119fb565b925060a0880135611d2281611985565b8092505060c0880135905092959891949750929550565b60008060408385031215611d4c57600080fd5b8235611d5781611985565b946020939093013593505050565b60008060408385031215611d7857600080fd5b8235611d8381611985565b91506020830135611d9381611985565b809150509250929050565b600080600060608486031215611db357600080fd5b833567ffffffffffffffff811115611dca57600080fd5b611dd686828701611b0b565b935050602084013591506040840135611dee81611985565b809150509250925092565b60008060008060008060c08789031215611e1257600080fd5b863567ffffffffffffffff811115611e2957600080fd5b611e3589828a01611b0b565b9650506020870135611e4681611985565b945060408701359350606087013592506080870135611e64816119fb565b8092505060a087013590509295509295509295565b600080600080600080600060e0888a031215611e9457600080fd5b873567ffffffffffffffff811115611eab57600080fd5b611eb78a828b01611b0b565b9750506020880135611ec881611985565b955060408801359450606088013593506080880135925060a0880135611d22816119fb565b6001600160a01b0397881681529587166020870152938616604086015260608501929092526080840152151560a083015290911660c082015260e00190565b600060208284031215611f3e57600080fd5b5051919050565b600082821015611f6557634e487b7160e01b600052601160045260246000fd5b500390565b634e487b7160e01b600052603260045260246000fd5b6020808252601590820152740a4deeae8cae47440d2dcecc2d8d2c840bee0c2e8d605b1b604082015260600190565b6020808252601190820152702937baba32b91d103337b93134b23232b760791b604082015260600190565b60208082526023908201527f526f757465723a206d61726b207072696365206c6f776572207468616e206c696040820152621b5a5d60ea1b606082015260800190565b60208082526024908201527f526f757465723a206d61726b20707269636520686967686572207468616e206c6040820152631a5b5a5d60e21b606082015260800190565b60006020828403121561207357600080fd5b81516110a2816119fb565b60005b83811015612099578181015183820152602001612081565b838111156105725750506000910152565b600082516120bc81846020870161207e565b9190910192915050565b60208152600082518060208401526120e581604085016020870161207e565b601f01601f1916919091016040019291505056fea2646970667358221220d6092b33300179a07c7b8f938ec2ca84bc8062546180f7a4ab6858e32921642164736f6c634300080c0033000000000000000000000000eb0e5e1a8500317a1b8fdd195097d5509ef861de0000000000000000000000004925c7e05347d90a3c7e07f8d8b3a52faac91bcb000000000000000000000000bb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c