0 txs
0 calls
constructor
No constructor.
functions
DEFAULT_ADMIN_ROLE
viewfunction DEFAULT_ADMIN_ROLE() view returns (bytes32)
getPosition
viewfunction getPosition(address user, address token) view returns (tuple)
getRoleAdmin
viewfunction getRoleAdmin(bytes32 role) view returns (bytes32)
hasRole
viewfunction hasRole(bytes32 role, address account) view returns (bool)
HEDGER_ROLE
viewfunction HEDGER_ROLE() view returns (bytes32)
oracle
viewfunction oracle() view returns (address)
owner
viewfunction owner() view returns (address)
positions
viewfunction positions(address, address) view returns (uint256 amount, uint256 averagePrice, int256 pnl, int256 unrealizedPnl, int256 direction, uint8 decimals)
proxiableUUID
viewfunction proxiableUUID() view returns (bytes32)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
UPGRADE_INTERFACE_VERSION
viewfunction UPGRADE_INTERFACE_VERSION() view returns (string)
adjustPosition
nonpayablefunction adjustPosition(address token, uint256 amount, int256 side)
grantRole
nonpayablefunction grantRole(bytes32 role, address account)
hedge
nonpayablefunction hedge(address token, uint256 amount, int256 side)
initialize
nonpayablefunction initialize(address owner, address _oracle)
renounceOwnership
nonpayablefunction renounceOwnership()
renounceRole
nonpayablefunction renounceRole(bytes32 role, address callerConfirmation)
revokeRole
nonpayablefunction revokeRole(bytes32 role, address account)
setOracle
nonpayablefunction setOracle(address _oracle)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
upgradeToAndCall
payablefunction upgradeToAndCall(address newImplementation, bytes data) payable
events
Hedged
event Hedged(address indexed token, uint256 amount, uint256 side, address indexed hedger)
Initialized
event Initialized(uint64 version)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
RoleAdminChanged
event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole)
RoleGranted
event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender)
RoleRevoked
event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender)
Upgraded
event Upgraded(address indexed implementation)
errors
AccessControlBadConfirmation
error AccessControlBadConfirmation()
AccessControlUnauthorizedAccount
error AccessControlUnauthorizedAccount(address account, bytes32 neededRole)
AddressEmptyCode
error AddressEmptyCode(address target)
ERC1967InvalidImplementation
error ERC1967InvalidImplementation(address implementation)
ERC1967NonPayable
error ERC1967NonPayable()
FailedCall
error FailedCall()
InvalidInitialization
error InvalidInitialization()
NotInitializing
error NotInitializing()
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
UUPSUnauthorizedCallContext
error UUPSUnauthorizedCallContext()
UUPSUnsupportedProxiableUUID
error UUPSUnsupportedProxiableUUID(bytes32 slot)
creation bytecode
0x60a0806040523460295730608052611e35908161002e823960805181818161058c015261068d0152f35b5f80fdfe6080806040526004361015610012575f80fd5b5f3560e01c90816301ffc9a71461145e57508063248a9ca31461140c5780632f2ff15d146113af578063338a3e0414610ddf57806336568abe14610d755780633b194b1b14610d3b5780634615574314610c5a578063485cc955146109f05780634bd21445146109485780634f1ef2861461060457806352d1902d14610565578063715018a6146104a95780637adbf973146104475780637dc0d1d0146104155780638da5cb5b146103c357806391d148541461034d578063a217fddf14610333578063ad3cb1cc1461029f578063b33dc19014610194578063d547741f146101325763f2fde38b14610103575f80fd5b3461012e57602060031936011261012e5761012c61011f61151f565b610127611b9b565b61182f565b005b5f80fd5b3461012e57604060031936011261012e5761012c6004356101516114fc565b9061018f61018a825f527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052600160405f20015490565b61191c565b611c07565b3461012e57604060031936011261012e576101ad61151f565b73ffffffffffffffffffffffffffffffffffffffff6101ca6114fc565b915f60a06040516101da81611579565b8281528260208201528260408201528260608201528260808201520152165f52600160205273ffffffffffffffffffffffffffffffffffffffff60405f2091165f5260205260c060405f2060ff60405161023381611579565b8254928382526001810154602083019081526002820154604084019081526003830154916060850192835260a0866005600487015496608089019788520154169501948552604051968752516020870152516040860152516060850152516080840152511660a0820152f35b3461012e575f60031936011261012e5760408051906102be81836115c2565b6005825260208201917f352e302e3000000000000000000000000000000000000000000000000000000083527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8351948593602085525180918160208701528686015e5f85828601015201168101030190f35b3461012e575f60031936011261012e5760206040515f8152f35b3461012e57604060031936011261012e576103666114fc565b6004355f527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b62680060205273ffffffffffffffffffffffffffffffffffffffff60405f2091165f52602052602060ff60405f2054166040519015158152f35b3461012e575f60031936011261012e57602073ffffffffffffffffffffffffffffffffffffffff7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005416604051908152f35b3461012e575f60031936011261012e57602073ffffffffffffffffffffffffffffffffffffffff5f5416604051908152f35b3461012e57602060031936011261012e5773ffffffffffffffffffffffffffffffffffffffff61047561151f565b61047d611b9b565b167fffffffffffffffffffffffff00000000000000000000000000000000000000005f5416175f555f80f35b3461012e575f60031936011261012e576104c1611b9b565b5f73ffffffffffffffffffffffffffffffffffffffff7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300547fffffffffffffffffffffffff000000000000000000000000000000000000000081167f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930055167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461012e575f60031936011261012e5773ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001630036105dc5760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b7fe07c8dba000000000000000000000000000000000000000000000000000000005f5260045ffd5b604060031936011261012e5761061861151f565b6024359067ffffffffffffffff821161012e573660238301121561012e5781600401359061064582611603565b9161065360405193846115c2565b8083526020830193366024838301011161012e57815f9260246020930187378401015273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016803014908115610906575b506105dc576106c5611b9b565b73ffffffffffffffffffffffffffffffffffffffff8116926040517f52d1902d000000000000000000000000000000000000000000000000000000008152602081600481885afa5f91816108d2575b5061074557847f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8692036108a75750823b1561087c57807fffffffffffffffffffffffff00000000000000000000000000000000000000007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a282511561084a575f809161012c945190845af43d15610842573d9161082683611603565b9261083460405194856115c2565b83523d5f602085013e611d66565b606091611d66565b5050503461085457005b7fb398979f000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b7faa1d49a4000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b9091506020813d6020116108fe575b816108ee602093836115c2565b8101031261012e57519086610714565b3d91506108e1565b905073ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54161415846106b8565b3461012e57604060031936011261012e5761096161151f565b73ffffffffffffffffffffffffffffffffffffffff61097e6114fc565b91165f52600160205273ffffffffffffffffffffffffffffffffffffffff60405f2091165f5260205260c060405f20805490600181015490600281015460038201549060ff600560048501549401541693604051958652602086015260408501526060840152608083015260a0820152f35b3461012e57604060031936011261012e57610a0961151f565b610a116114fc565b907ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00549160ff8360401c16159267ffffffffffffffff811680159081610c52575b6001149081610c48575b159081610c3f575b50610c175773ffffffffffffffffffffffffffffffffffffffff92818560017fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000610b009516177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0055610bc2575b50610ada611d0f565b610ae2611d0f565b610aeb8161182f565b610af3611d0f565b610afb611d0f565b6119a2565b50167fffffffffffffffffffffffff00000000000000000000000000000000000000005f5416175f55610b2f57005b7fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054167ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b7fffffffffffffffffffffffffffffffffffffffffffffff0000000000000000001668010000000000000001177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005585610ad1565b7ff92ee8a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b90501585610a64565b303b159150610a5c565b859150610a52565b3461012e57610c6836611542565b335f9081527f324a2a3243a3c5c81531c4fa9f3b03b4fc6b4a406051974028855930e76a5c37602052604090205490925060ff1615610ceb57610cba82600161012c9414908115610cc1575b5061163d565b15156116a2565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff91501484610cb4565b7fe2517d3f000000000000000000000000000000000000000000000000000000005f52336004527fc080f15f8a80bcc1cfa849b93a52bdb7ae5adfe0a57d1840b8b3bd90eb67180560245260445ffd5b3461012e575f60031936011261012e5760206040517fc080f15f8a80bcc1cfa849b93a52bdb7ae5adfe0a57d1840b8b3bd90eb6718058152f35b3461012e57604060031936011261012e57610d8e6114fc565b3373ffffffffffffffffffffffffffffffffffffffff821603610db75761012c90600435611c07565b7f6697b232000000000000000000000000000000000000000000000000000000005f5260045ffd5b3461012e57610ded36611542565b91610df6611b9b565b819260018114808015611386575b610e0d9061163d565b610e188415156116a2565b73ffffffffffffffffffffffffffffffffffffffff60c0815f5416946024604051809481937f41976e0900000000000000000000000000000000000000000000000000000000835216978860048301525afa90811561137b575f916112df575b5080511561128157335f52600160205260405f20845f5260205260405f2091825490811561124f575b60048401918254915f146110d657505f9596507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114861461106a57508254878111861461106157610f3c885b610f2d816001880194670de0b6b3a7640000610f16610f1088548b51906117b1565b846117c9565b05610f2660028b01918254611807565b9055611822565b998a87558a1561105657611822565b97888061103a575b5050505b82541515851461102d5754600181148514610fd25750670de0b6b3a7640000610f85600392610f7f855491516001870154906117b1565b906117c9565b059101555b1315610fc95760ff60015b6040519384521660208301527f2421f9d940f5c4612a05e6b8a76856837397de4ed305ec2958a45148ecde1c0660403393a3005b60ff6002610f95565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14611000575b5050610f8a565b670de0b6b3a7640000611022600392610f7f85549160018701549051906117b1565b059101558480610ff9565b5050600383910155610f8a565b6110439161172d565b9083519185555560018155878088610f44565b888455888555611822565b610f3c81610eee565b8015861461108657508683558151600184015560018155610f48565b600103610f48576110d061109b88855461172d565b8085556110cb6110ba6110ae8b8461172d565b92600188015490611767565b6110c586518c611767565b9061172d565b61177a565b50610f48565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff861461110a575b50505f949550610f48565b600181036111a45750505f949596508254878111861461119b5761114c885b610f2d81865194670de0b6b3a7640000610f16610f1060018c01988954906117b1565b978880611160575b5050505b8594886110ff565b6111699161172d565b908351918555557fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8155878088611154565b61114c81611129565b95965f96806111e05750845550815160018401557fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8155611158565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1461120e575b5050611158565b6110cb61121e826112479461172d565b918287556110c561123e611232838661172d565b9460018a015490611767565b91875190611767565b508780611207565b6005840160127fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00825416179055610ea1565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4865646765506f6f6c3a20496e76616c696420707269636500000000000000006044820152fd5b905060c0813d60c011611373575b816112fa60c093836115c2565b8101031261012e576040519061130f82611579565b8051825260208101516020830152604081015160408301526060810151606083015260808101519073ffffffffffffffffffffffffffffffffffffffff8216820361012e5760a0916080840152015160ff8116810361012e5760a082015286610e78565b3d91506112ed565b6040513d5f823e3d90fd5b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214610e04565b3461012e57604060031936011261012e5761012c6004356113ce6114fc565b9061140761018a825f527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052600160405f20015490565b611a89565b3461012e57602060031936011261012e5760206114566004355f527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052600160405f20015490565b604051908152f35b3461012e57602060031936011261012e57600435907fffffffff00000000000000000000000000000000000000000000000000000000821680920361012e57817f7965db0b00000000000000000000000000000000000000000000000000000000602093149081156114d2575b5015158152f35b7f01ffc9a700000000000000000000000000000000000000000000000000000000915014836114cb565b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361012e57565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361012e57565b600319606091011261012e5760043573ffffffffffffffffffffffffffffffffffffffff8116810361012e57906024359060443590565b60c0810190811067ffffffffffffffff82111761159557604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761159557604052565b67ffffffffffffffff811161159557601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b1561164457565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f4865646765506f6f6c3a20496e76616c696420736964650000000000000000006044820152fd5b156116a957565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f4865646765506f6f6c3a20416d6f756e74206d7573742062652067726561746560448201527f72207468616e20300000000000000000000000000000000000000000000000006064820152fd5b9190820180921161173a57565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b8181029291811591840414171561173a57565b8115611784570490565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b81810392915f13801582851316918412161761173a57565b81810292915f82127f800000000000000000000000000000000000000000000000000000000000000082141661173a57818405149015171561173a57565b9190915f838201938412911290801582169115161761173a57565b9190820391821161173a57565b73ffffffffffffffffffffffffffffffffffffffff1680156118f05773ffffffffffffffffffffffffffffffffffffffff7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930054827fffffffffffffffffffffffff00000000000000000000000000000000000000008216177f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930055167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b7f1e4fbdf7000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b805f527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b62680060205260405f2073ffffffffffffffffffffffffffffffffffffffff33165f5260205260ff60405f205416156119735750565b7fe2517d3f000000000000000000000000000000000000000000000000000000005f523360045260245260445ffd5b73ffffffffffffffffffffffffffffffffffffffff81165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff16611a845773ffffffffffffffffffffffffffffffffffffffff165f8181527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d6020526040812080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790553391907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b505f90565b805f527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b62680060205260405f2073ffffffffffffffffffffffffffffffffffffffff83165f5260205260ff60405f205416155f14611b9557805f527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b62680060205260405f2073ffffffffffffffffffffffffffffffffffffffff83165f5260205260405f2060017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0082541617905573ffffffffffffffffffffffffffffffffffffffff339216907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b50505f90565b73ffffffffffffffffffffffffffffffffffffffff7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930054163303611bdb57565b7f118cdaa7000000000000000000000000000000000000000000000000000000005f523360045260245ffd5b805f527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b62680060205260405f2073ffffffffffffffffffffffffffffffffffffffff83165f5260205260ff60405f2054165f14611b9557805f527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b62680060205260405f2073ffffffffffffffffffffffffffffffffffffffff83165f5260205260405f207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00815416905573ffffffffffffffffffffffffffffffffffffffff339216907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c1615611d3e57565b7fd7e6bcf8000000000000000000000000000000000000000000000000000000005f5260045ffd5b90611da35750805115611d7b57805190602001fd5b7fd6bda275000000000000000000000000000000000000000000000000000000005f5260045ffd5b81511580611df6575b611db4575090565b73ffffffffffffffffffffffffffffffffffffffff907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b50803b15611dac56fea264697066735822122018acc060013d91a5ad1c0aa50530230fd615620a1ebbac5059229ecc22e9204964736f6c634300081a0033