0 txs
34.7k calls
constructor
No constructor.
functions
configStorage
viewfunction configStorage() view returns (address)
executionFeeInUsd
viewfunction executionFeeInUsd() view returns (uint256)
executionFeeTreasury
viewfunction executionFeeTreasury() view returns (address)
gasPremiumBps
viewfunction gasPremiumBps() view returns (uint256)
gasTokenAssetId
viewfunction gasTokenAssetId() view returns (bytes32)
owner
viewfunction owner() view returns (address)
subsidizedExecutionFeeValue
viewfunction subsidizedExecutionFeeValue() view returns (uint256)
vaultStorage
viewfunction vaultStorage() view returns (address)
waviedExecutionFeeMinTradeSize
viewfunction waviedExecutionFeeMinTradeSize() view returns (uint256)
adjustSubsidizedExecutionFeeValue
nonpayablefunction adjustSubsidizedExecutionFeeValue(int256 deltaValueE30)
collectExecutionFeeFromCollateral
nonpayablefunction collectExecutionFeeFromCollateral(address _primaryAccount, uint8 _subAccountId, uint256 _marketIndex, uint256 _absSizeDelta, uint256 _gasBefore)
initialize
nonpayablefunction initialize(address _vaultStorage, address _configStorage, uint256 _executionFeeInUsd, address _executionFeeTreasury, bytes32 _gasTokenAssetId)
renounceOwnership
nonpayablefunction renounceOwnership()
setGasPremiumBps
nonpayablefunction setGasPremiumBps(uint256 _gasPremiumBps)
setGasTokenAssetId
nonpayablefunction setGasTokenAssetId(bytes32 _gasTokenAssetId)
setParams
nonpayablefunction setParams(uint256 _executionFeeInUsd, address _executionFeeTreasury)
setWaviedExecutionFeeMinTradeSize
nonpayablefunction setWaviedExecutionFeeMinTradeSize(uint256 _waviedExecutionFeeMinTradeSize)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
events
Initialized
event Initialized(uint8 version)
LogAdjustSubsidizedExecutionFeeValue
event LogAdjustSubsidizedExecutionFeeValue(uint256 previousValue, uint256 newValue, int256 delta)
LogCollectExecutionFeeAmount
event LogCollectExecutionFeeAmount(address subAccount, uint256 marketIndex, address token, uint256 executionFeeAmount)
LogCollectExecutionFeeValue
event LogCollectExecutionFeeValue(address subAccount, uint256 marketIndex, uint256 executionFeeUsd)
LogSetGasPremiumBps
event LogSetGasPremiumBps(uint256 gasPremiumBps)
LogSetGasTokenAssetId
event LogSetGasTokenAssetId(bytes32 gasTokenAssetId)
LogSetParams
event LogSetParams(uint256 executionFeeInUsd, address executionFeeTreasury)
LogSetWaviedExecutionFeeMinTradeSize
event LogSetWaviedExecutionFeeMinTradeSize(uint256 waivedExecutionFeeTradeSize)
LogSubsidizeExecutionFee
event LogSubsidizeExecutionFee(address subAccount, uint256 marketIndex, uint256 executionFeeUsd)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
errors
GasService_GasPremiumTooLarge
error GasService_GasPremiumTooLarge()
GasService_NotEnoughCollateral
error GasService_NotEnoughCollateral()
creation bytecode
0x608060405234801561001057600080fd5b506115ca806100206000396000f3fe608060405234801561001057600080fd5b50600436106100e45760003560e01c80624f3d71146100e9578062fe9ad4146101055780630c181e3b146101255780631e68f0f51461013a5780632d7097af1461014d57806341b1da5c14610160578063443b1786146101735780634ecd3a0914610186578063715018a61461018f5780637b1fa73a146101975780638da5cb5b146101a05780639715b3d3146101a85780639c587688146101bb5780639ed43064146101ce578063c10bc741146101d7578063f2fde38b146101e0578063fa4b7682146101f3578063fb167d7014610206575b600080fd5b6100f2609e5481565b6040519081526020015b60405180910390f35b609754610118906001600160a01b031681565b6040516100fc919061102e565b610138610133366004611042565b610219565b005b610138610148366004611042565b61025d565b61013861015b366004611042565b61029a565b61013861016e366004611070565b61038d565b609854610118906001600160a01b031681565b6100f2609b5481565b6101386104f7565b6100f2609c5481565b61011861050b565b6101386101b63660046110cb565b61051a565b6101386101c9366004611042565b61057c565b6100f2609d5481565b6100f260995481565b6101386101ee3660046110fb565b6105dc565b61013861020136600461112e565b610655565b609a54610118906001600160a01b031681565b610221610e46565b609c8190556040518181527f5b71347ab69e9efd8bafe6c03c3406298bbfea985ad22803d972f25f755e3045906020015b60405180910390a150565b610265610e46565b609d8190556040518181527f9223837ad49395e9087df0c254a3267d9ca3fba7610bbfa60cafc0f6b0639d1190602001610252565b60985460405162019dd360ee1b81526001600160a01b0390911690636774c000906102cb903090339060040161117f565b60006040518083038186803b1580156102e357600080fd5b505afa1580156102f7573d6000803e3d6000fd5b5050609b54915050600082126103245781609b600082825461031991906111af565b909155506103449050565b61032d826111c2565b609b600082825461033e91906111de565b90915550505b609b5460408051838152602081019290925281018390527ff7de46e8f05147a6bc1082c996e9b0dd213617410b4bd3bdc988ac5224c01078906060015b60405180910390a15050565b600054610100900460ff16158080156103ad5750600054600160ff909116105b806103c75750303b1580156103c7575060005460ff166001145b61042f5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff191660011790558015610452576000805461ff0019166101001790555b61045a610ea5565b610462610ed4565b609780546001600160a01b038089166001600160a01b031992831617909255609880548884169083161790556099869055609a805492861692909116919091179055609d82905580156104ef576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050565b6104ff610e46565b6105096000610f03565b565b6065546001600160a01b031690565b610522610e46565b6099829055609a80546001600160a01b0319166001600160a01b0383169081179091556040805184815260208101929092527fd0c9ba1f00f179ddc2005d69600486137e737cccba266adae814bfb4e3d406129101610381565b610584610e46565b6127108111156105a757604051633cdddfe160e01b815260040160405180910390fd5b609e8190556040518181527f79b1cfa64186f60674178a59d2785b2a176fabf853b1fa05815ddc628381a6b690602001610252565b6105e4610e46565b6001600160a01b0381166106495760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610426565b61065281610f03565b50565b60985460405162019dd360ee1b81526001600160a01b0390911690636774c00090610686903090339060040161117f565b60006040518083038186803b15801561069e57600080fd5b505afa1580156106b2573d6000803e3d6000fd5b50505050610749604080516101a081018252600080825260606020808401829052838501839052818401839052608080850184905260a08501849052855190810186528381529081018390529384018290528301529060c0820190815260200160006001600160a01b031681526020016000815260200160008152602001600060ff16815260200160008152602001600081525090565b6107538686610f55565b6001600160a01b0390811680835260975460405163192a86a760e21b81529216916364aa1a9c916107869160040161102e565b600060405180830381865afa1580156107a3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526107cb9190810190611237565b6020808301829052905160408084019190915260985481516307dc0d1d60e41b815291516001600160a01b0390911692637dc0d1d092600480820193918290030181865afa158015610821573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061084591906112e8565b6001600160a01b03166060820152609e546000906127109061086790826111af565b5a61087290866111de565b61087c9190611305565b610886919061131c565b6060830151609d5460405163129928d560e31b81526004810191909152600060248201529192506001600160a01b0316906394c946a8906044016040805180830381865afa1580156108dc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610900919061133e565b506101208301819052600090670de0b6b3a7640000906109203a85611305565b61092a9190611305565b610934919061131c565b905061094881609954808218908210021890565b9050609c5485106109ac5782516040517f902c7dde65803aa52ca1b3c963a63a8fb5f6af14696d6801bfa6701c3c04a5af916109879189908590611362565b60405180910390a180609b60008282546109a191906111af565b90915550610e3c9050565b82516040517f2d0e2c0dee2646c2454c613d8256e2e81319fc63f12ab57449daaedf81e3fad5916109e09189908590611362565b60405180910390a16080830181905260005b8360400151811015610dc357609854602085015180516001600160a01b0390921691632b86da42919084908110610a2b57610a2b611383565b60200260200101516040518263ffffffff1660e01b8152600401610a4f919061102e565b602060405180830381865afa158015610a6c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a909190611399565b60a0850181905260985460405163f76d466160e01b815260048101929092526001600160a01b03169063f76d466190602401608060405180830381865afa158015610adf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b0391906113b2565b60c08501819052516001600160a01b0390811660e08601819052609754865160405163c43c633b60e01b8152919093169263c43c633b92610b469260040161117f565b602060405180830381865afa158015610b63573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b879190611399565b610100850181905215610dbb57606084015160c08501516020015160405163129928d560e31b81526004810191909152600060248201526001600160a01b03909116906394c946a8906044016040805180830381865afa158015610bef573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c13919061133e565b50610120850181905260c08501516040015160ff1661014086018190526101008601516080870151610c49939192909190610f62565b6101808601526101608501819052845160e0860151604080516001600160a01b039384168152602081018c9052929091169082015260608101919091527f2fe700402681b7ebc2a29af65bcc97fe4c1fda6330e5f00e00266f742365f8cb9060800160405180910390a1609754845160e0860151610160870151604051631520832760e21b81526001600160a01b03909416936354820c9c93610cf29390929091600401611432565b600060405180830381600087803b158015610d0c57600080fd5b505af1158015610d20573d6000803e3d6000fd5b5050609754609a5460e08801516101608901516040516321bb620960e11b81526001600160a01b039485169650634376c4129550610d649490931692600401611432565b600060405180830381600087803b158015610d7e57600080fd5b505af1158015610d92573d6000803e3d6000fd5b5050505083610180015184608001818151610dad91906111de565b905250608084015115610dc3575b6001016109f2565b50608083015115610e3c576097548351608085015160405163b845ea6360e01b81526001600160a01b039283166004820152602481019190915291169063b845ea6390604401600060405180830381600087803b158015610e2357600080fd5b505af1158015610e37573d6000803e3d6000fd5b505050505b5050505050505050565b33610e4f61050b565b6001600160a01b0316146105095760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610426565b600054610100900460ff16610ecc5760405162461bcd60e51b815260040161042690611456565b610509610fd1565b600054610100900460ff16610efb5760405162461bcd60e51b815260040161042690611456565b610509611001565b606580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60ff811682185b92915050565b6000808084610f7285600a611585565b610f7c9088611305565b610f86919061131c565b905080871115610f9a579150849050610fc8565b6000610fa785600a611585565b610fb1878a611305565b610fbb919061131c565b8894509250610fc8915050565b94509492505050565b600054610100900460ff16610ff85760405162461bcd60e51b815260040161042690611456565b61050933610f03565b600054610100900460ff166110285760405162461bcd60e51b815260040161042690611456565b60018055565b6001600160a01b0391909116815260200190565b60006020828403121561105457600080fd5b5035919050565b6001600160a01b038116811461065257600080fd5b600080600080600060a0868803121561108857600080fd5b85356110938161105b565b945060208601356110a38161105b565b93506040860135925060608601356110ba8161105b565b949793965091946080013592915050565b600080604083850312156110de57600080fd5b8235915060208301356110f08161105b565b809150509250929050565b60006020828403121561110d57600080fd5b81356111188161105b565b9392505050565b60ff8116811461065257600080fd5b600080600080600060a0868803121561114657600080fd5b85356111518161105b565b945060208601356111618161111f565b94979496505050506040830135926060810135926080909101359150565b6001600160a01b0392831681529116602082015260400190565b634e487b7160e01b600052601160045260246000fd5b80820180821115610f5c57610f5c611199565b6000600160ff1b82016111d7576111d7611199565b5060000390565b81810381811115610f5c57610f5c611199565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561122f5761122f6111f1565b604052919050565b6000602080838503121561124a57600080fd5b82516001600160401b038082111561126157600080fd5b818501915085601f83011261127557600080fd5b815181811115611287576112876111f1565b8060051b9150611298848301611207565b81815291830184019184810190888411156112b257600080fd5b938501935b838510156112dc57845192506112cc8361105b565b82825293850193908501906112b7565b98975050505050505050565b6000602082840312156112fa57600080fd5b81516111188161105b565b8082028115828204841417610f5c57610f5c611199565b60008261133957634e487b7160e01b600052601260045260246000fd5b500490565b6000806040838503121561135157600080fd5b505080516020909101519092909150565b6001600160a01b039390931683526020830191909152604082015260600190565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156113ab57600080fd5b5051919050565b6000608082840312156113c457600080fd5b604051608081016001600160401b03811182821017156113e6576113e66111f1565b60405282516113f48161105b565b815260208381015190820152604083015161140e8161111f565b60408201526060830151801515811461142657600080fd5b60608201529392505050565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b600181815b808511156114dc5781600019048211156114c2576114c2611199565b808516156114cf57918102915b93841c93908002906114a6565b509250929050565b6000826114f357506001610f5c565b8161150057506000610f5c565b816001811461151657600281146115205761153c565b6001915050610f5c565b60ff84111561153157611531611199565b50506001821b610f5c565b5060208310610133831016604e8410600b841016171561155f575081810a610f5c565b61156983836114a1565b806000190482111561157d5761157d611199565b029392505050565b600061111860ff8416836114e456fea26469706673582212209c4e66dd55896f20e4bd1170c601167b896a85594b9ac6a8cc4143c1f3ea470064736f6c63430008120033