UNPKG

@perp/perp-oracle-contract

Version:

Perpetual Protocol Curie (v2) oracle contracts - v0.5.0 is not an audited version

165 lines (164 loc) 21.1 kB
{ "_format": "hh-sol-artifact-1", "contractName": "ChainlinkPriceFeedV2", "sourceName": "contracts/ChainlinkPriceFeedV2.sol", "abi": [ { "inputs": [ { "internalType": "contract AggregatorV3Interface", "name": "aggregator", "type": "address" }, { "internalType": "uint80", "name": "cacheTwapInterval", "type": "uint80" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [ { "internalType": "uint256", "name": "interval", "type": "uint256" } ], "name": "cacheTwap", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "currentObservationIndex", "outputs": [ { "internalType": "uint16", "name": "", "type": "uint16" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getAggregator", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "interval", "type": "uint256" } ], "name": "getPrice", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint80", "name": "roundId", "type": "uint80" } ], "name": "getRoundData", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "observations", "outputs": [ { "internalType": "uint256", "name": "price", "type": "uint256" }, { "internalType": "uint256", "name": "priceCumulative", "type": "uint256" }, { "internalType": "uint256", "name": "timestamp", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "update", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ], "bytecode": "0x60a060405234801561001057600080fd5b506040516111d63803806111d68339818101604052604081101561003357600080fd5b50805160209182015161151a8054600160a01b600160f01b031916600160a01b6001600160501b03841602179055909161007f906001600160a01b038416906100d0811b6104c817901c565b6100ba576040805162461bcd60e51b81526020600482015260076024820152664350465f414e4360c81b604482015290519081900360640190fd5b5060601b6001600160601b0319166080526100d6565b3b151590565b60805160601c6110ca61010c6000398061023952806102c352806102ed52806104d952806108e052806109a652506110ca6000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c80639a6fc8f51161005b5780639a6fc8f514610139578063a2e6204514610178578063aed3aff714610182578063e7572230146101a157610088565b80631d1a111a1461008d578063252c09d7146100bc578063313ce567146100f75780633ad59dbc14610115575b600080fd5b6100aa600480360360208110156100a357600080fd5b50356101be565b60408051918252519081900360200190f35b6100d9600480360360208110156100d257600080fd5b503561020d565b60408051938452602084019290925282820152519081900360600190f35b6100ff610235565b6040805160ff9092168252519081900360200190f35b61011d6102c1565b604080516001600160a01b039092168252519081900360200190f35b61015f6004803603602081101561014f57600080fd5b50356001600160501b03166102e5565b6040805192835260208301919091528051918290030190f35b61018061041c565b005b61018a61047a565b6040805161ffff9092168252519081900360200190f35b6100aa600480360360208110156101b757600080fd5b5035610484565b6000806000806101cc6104ce565b92509250925084600014806101e857506001600160501b038316155b156101f7575091506102089050565b6102028583836105a5565b93505050505b919050565b600181610708811061021e57600080fd5b600302018054600182015460029092015490925083565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b15801561029057600080fd5b505afa1580156102a4573d6000803e3d6000fd5b505050506040513d60208110156102ba57600080fd5b5051905090565b7f000000000000000000000000000000000000000000000000000000000000000090565b6000806000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639a6fc8f5866040518263ffffffff1660e01b815260040180826001600160501b0316815260200191505060a06040518083038186803b15801561035857600080fd5b505afa15801561036c573d6000803e3d6000fd5b505050506040513d60a081101561038257600080fd5b5060208101516060909101519092509050600082136103d1576040805162461bcd60e51b815260206004820152600660248201526504350465f49560d41b604482015290519081900360640190fd5b60008111610411576040805162461bcd60e51b81526020600482015260086024820152674350465f52494e4360c01b604482015290519081900360640190fd5b90925090505b915091565b6000806104276104ce565b92509250506000610438838361064b565b905080610475576040805162461bcd60e51b81526020600482015260066024820152654350465f4e5560d01b604482015290519081900360640190fd5b505050565b60005461ffff1681565b6000806000806104926104ce565b92509250925084600014806104ae57506001600160501b038316155b156104bd575091506102089050565b610202858383610831565b3b151590565b6000806000806000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a06040518083038186803b15801561053057600080fd5b505afa158015610544573d6000803e3d6000fd5b505050506040513d60a081101561055a57600080fd5b5080516020820151606090920151919650935085925090506000821215610599576105848361088a565b610590600184036108d5565b90965090935090505b91945090915050909192565b60006105b1838361064b565b5061151a54600160a01b90046001600160501b031684146105eb5783156105e2576105dd848484610a5e565b6105e4565b825b9050610644565b61151a546001600160a01b0316610600610a85565b1461063e5761060d610a85565b61151a80546001600160a01b0319166001600160a01b0392909216919091179055610639848484610a5e565b611519555b50611519545b9392505050565b6000805461ffff161580156106605750600354155b156106be576040518060600160405280848152602001600081526020018381525060016000610708811061069057fe5b600302016000820151816000015560208201518160010155604082015181600201559050506001905061082b565b6000805460019061ffff1661070881106106d457fe5b6040805160608101825260039290920292909201805482526001810154602083015260020154918101829052915083101561073e576040805162461bcd60e51b815260206004820152600560248201526410d517d25560da1b604482015290519081900360640190fd5b80604001518314156107895780518414610789576040805162461bcd60e51b815260206004820152600760248201526643545f4950575560c81b604482015290519081900360640190fd5b805184141561079c57600091505061082b565b6000805461ffff19811661070861ffff928316600190810184168290068416929092179384905560408581015181516060810183528a815287516020808a0151938c0391820290930192820192909252918201899052949093169081106107ff57fe5b600302016000820151816000015560208201518160010155604082015181600201559050506001925050505b92915050565b61151a546000906001600160a01b0316610849610a85565b148015610868575061151a54600160a01b90046001600160501b031684145b15610877575061151954610644565b610882848484610a5e565b949350505050565b6000816001600160501b0316116108d2576040805162461bcd60e51b8152602060048201526007602482015266086a08cbe9c8a960cb1b604482015290519081900360640190fd5b50565b6000806000806000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639a6fc8f5886040518263ffffffff1660e01b815260040180826001600160501b0316815260200191505060a06040518083038186803b15801561094b57600080fd5b505afa15801561095f573d6000803e3d6000fd5b505050506040513d60a081101561097557600080fd5b508051602082015160609092015190945090925090505b6000821215610a515761099e8361088a565b6001830392507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639a6fc8f5846040518263ffffffff1660e01b815260040180826001600160501b0316815260200191505060a06040518083038186803b158015610a1157600080fd5b505afa158015610a25573d6000803e3d6000fd5b505050506040513d60a0811015610a3b57600080fd5b506020810151606090910151909250905061098c565b9196909550909350915050565b600080610a6c858585610a89565b90508015610a7a5780610a7c565b835b95945050505050565b4290565b6000805461ffff16158015610a9e5750600354155b80610aa7575083155b15610ab457506000610644565b6000805460019061ffff166107088110610aca57fe5b60408051606081018252600392909202929092018054825260018101546020830152600201549181018290529150831415610b3f5780518414610b3f576040805162461bcd60e51b815260206004820152600860248201526710d517d25415d0d560c21b604482015290519081900360640190fd5b6000610b49610a85565b90506000610b578288610ca3565b90506000610ba8610b9d610b75610b6e868a610ca3565b8a90610d00565b610b97610b8f88604001518b610ca390919063ffffffff16565b885190610d00565b90610d59565b602086015190610d59565b9050600080610bb684610db3565b9150915060008260400151851415610bd357506020820151610c86565b8482604001511415610bea57506020810151610c86565b816040015183604001511415610c0a576000975050505050505050610644565b6040820151610c2a57506040820151825160208401519186030201610c86565b6000836040015186039050600084604001518460400151039050610c81610c7682610c7085610c6a8a602001518a60200151610ca390919063ffffffff16565b90610d00565b90610ed8565b602087015190610d59565b925050505b610c948b610c708684610ca3565b9b9a5050505050505050505050565b600082821115610cfa576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b600082610d0f5750600061082b565b82820282848281610d1c57fe5b04146106445760405162461bcd60e51b81526004018080602001828103825260218152602001806110746021913960400191505060405180910390fd5b600082820183811015610644576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b610dbb611052565b610dc3611052565b60005460019061ffff166107088110610dd857fe5b600302016040518060600160405290816000820154815260200160018201548152602001600282015481525050915082600160008054906101000a900461ffff1661ffff166107088110610e2857fe5b600302016002015411610e3a57610417565b6000546001906107089061ffff9081168301160661ffff166107088110610e5d57fe5b60408051606081018252600392909202929092018054825260018101546020830152600201549181018290529250610eb35760408051606081018252600154815260025460208201526003549181019190915291505b8282604001511115610ec6575080610417565b610ecf83610f3f565b91509150915091565b6000808211610f2e576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b818381610f3757fe5b049392505050565b610f47611052565b610f4f611052565b60008054610708600161ffff9283160182160616906107078201905b6002838301049050600161070882066107088110610f8557fe5b60408051606081018252600392909202929092018054825260018101546020830152600201549181018290529550610fc257806001019250610f6b565b6001610708828201066107088110610fd657fe5b6003020160405180606001604052908160008201548152602001600182015481526020016002820154815250509350600086866040015111159050808015611022575084604001518711155b1561102d575061104a565b8061103d57600182039250611044565b8160010193505b50610f6b565b505050915091565b6040518060600160405280600081526020016000815260200160008152509056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a264697066735822122030a55344499919f2aec162437fa28f2cee976036ca6f6b8ec1bbfcd7ea92f73e64736f6c63430007060033", "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100885760003560e01c80639a6fc8f51161005b5780639a6fc8f514610139578063a2e6204514610178578063aed3aff714610182578063e7572230146101a157610088565b80631d1a111a1461008d578063252c09d7146100bc578063313ce567146100f75780633ad59dbc14610115575b600080fd5b6100aa600480360360208110156100a357600080fd5b50356101be565b60408051918252519081900360200190f35b6100d9600480360360208110156100d257600080fd5b503561020d565b60408051938452602084019290925282820152519081900360600190f35b6100ff610235565b6040805160ff9092168252519081900360200190f35b61011d6102c1565b604080516001600160a01b039092168252519081900360200190f35b61015f6004803603602081101561014f57600080fd5b50356001600160501b03166102e5565b6040805192835260208301919091528051918290030190f35b61018061041c565b005b61018a61047a565b6040805161ffff9092168252519081900360200190f35b6100aa600480360360208110156101b757600080fd5b5035610484565b6000806000806101cc6104ce565b92509250925084600014806101e857506001600160501b038316155b156101f7575091506102089050565b6102028583836105a5565b93505050505b919050565b600181610708811061021e57600080fd5b600302018054600182015460029092015490925083565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b15801561029057600080fd5b505afa1580156102a4573d6000803e3d6000fd5b505050506040513d60208110156102ba57600080fd5b5051905090565b7f000000000000000000000000000000000000000000000000000000000000000090565b6000806000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639a6fc8f5866040518263ffffffff1660e01b815260040180826001600160501b0316815260200191505060a06040518083038186803b15801561035857600080fd5b505afa15801561036c573d6000803e3d6000fd5b505050506040513d60a081101561038257600080fd5b5060208101516060909101519092509050600082136103d1576040805162461bcd60e51b815260206004820152600660248201526504350465f49560d41b604482015290519081900360640190fd5b60008111610411576040805162461bcd60e51b81526020600482015260086024820152674350465f52494e4360c01b604482015290519081900360640190fd5b90925090505b915091565b6000806104276104ce565b92509250506000610438838361064b565b905080610475576040805162461bcd60e51b81526020600482015260066024820152654350465f4e5560d01b604482015290519081900360640190fd5b505050565b60005461ffff1681565b6000806000806104926104ce565b92509250925084600014806104ae57506001600160501b038316155b156104bd575091506102089050565b610202858383610831565b3b151590565b6000806000806000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a06040518083038186803b15801561053057600080fd5b505afa158015610544573d6000803e3d6000fd5b505050506040513d60a081101561055a57600080fd5b5080516020820151606090920151919650935085925090506000821215610599576105848361088a565b610590600184036108d5565b90965090935090505b91945090915050909192565b60006105b1838361064b565b5061151a54600160a01b90046001600160501b031684146105eb5783156105e2576105dd848484610a5e565b6105e4565b825b9050610644565b61151a546001600160a01b0316610600610a85565b1461063e5761060d610a85565b61151a80546001600160a01b0319166001600160a01b0392909216919091179055610639848484610a5e565b611519555b50611519545b9392505050565b6000805461ffff161580156106605750600354155b156106be576040518060600160405280848152602001600081526020018381525060016000610708811061069057fe5b600302016000820151816000015560208201518160010155604082015181600201559050506001905061082b565b6000805460019061ffff1661070881106106d457fe5b6040805160608101825260039290920292909201805482526001810154602083015260020154918101829052915083101561073e576040805162461bcd60e51b815260206004820152600560248201526410d517d25560da1b604482015290519081900360640190fd5b80604001518314156107895780518414610789576040805162461bcd60e51b815260206004820152600760248201526643545f4950575560c81b604482015290519081900360640190fd5b805184141561079c57600091505061082b565b6000805461ffff19811661070861ffff928316600190810184168290068416929092179384905560408581015181516060810183528a815287516020808a0151938c0391820290930192820192909252918201899052949093169081106107ff57fe5b600302016000820151816000015560208201518160010155604082015181600201559050506001925050505b92915050565b61151a546000906001600160a01b0316610849610a85565b148015610868575061151a54600160a01b90046001600160501b031684145b15610877575061151954610644565b610882848484610a5e565b949350505050565b6000816001600160501b0316116108d2576040805162461bcd60e51b8152602060048201526007602482015266086a08cbe9c8a960cb1b604482015290519081900360640190fd5b50565b6000806000806000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639a6fc8f5886040518263ffffffff1660e01b815260040180826001600160501b0316815260200191505060a06040518083038186803b15801561094b57600080fd5b505afa15801561095f573d6000803e3d6000fd5b505050506040513d60a081101561097557600080fd5b508051602082015160609092015190945090925090505b6000821215610a515761099e8361088a565b6001830392507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639a6fc8f5846040518263ffffffff1660e01b815260040180826001600160501b0316815260200191505060a06040518083038186803b158015610a1157600080fd5b505afa158015610a25573d6000803e3d6000fd5b505050506040513d60a0811015610a3b57600080fd5b506020810151606090910151909250905061098c565b9196909550909350915050565b600080610a6c858585610a89565b90508015610a7a5780610a7c565b835b95945050505050565b4290565b6000805461ffff16158015610a9e5750600354155b80610aa7575083155b15610ab457506000610644565b6000805460019061ffff166107088110610aca57fe5b60408051606081018252600392909202929092018054825260018101546020830152600201549181018290529150831415610b3f5780518414610b3f576040805162461bcd60e51b815260206004820152600860248201526710d517d25415d0d560c21b604482015290519081900360640190fd5b6000610b49610a85565b90506000610b578288610ca3565b90506000610ba8610b9d610b75610b6e868a610ca3565b8a90610d00565b610b97610b8f88604001518b610ca390919063ffffffff16565b885190610d00565b90610d59565b602086015190610d59565b9050600080610bb684610db3565b9150915060008260400151851415610bd357506020820151610c86565b8482604001511415610bea57506020810151610c86565b816040015183604001511415610c0a576000975050505050505050610644565b6040820151610c2a57506040820151825160208401519186030201610c86565b6000836040015186039050600084604001518460400151039050610c81610c7682610c7085610c6a8a602001518a60200151610ca390919063ffffffff16565b90610d00565b90610ed8565b602087015190610d59565b925050505b610c948b610c708684610ca3565b9b9a5050505050505050505050565b600082821115610cfa576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b600082610d0f5750600061082b565b82820282848281610d1c57fe5b04146106445760405162461bcd60e51b81526004018080602001828103825260218152602001806110746021913960400191505060405180910390fd5b600082820183811015610644576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b610dbb611052565b610dc3611052565b60005460019061ffff166107088110610dd857fe5b600302016040518060600160405290816000820154815260200160018201548152602001600282015481525050915082600160008054906101000a900461ffff1661ffff166107088110610e2857fe5b600302016002015411610e3a57610417565b6000546001906107089061ffff9081168301160661ffff166107088110610e5d57fe5b60408051606081018252600392909202929092018054825260018101546020830152600201549181018290529250610eb35760408051606081018252600154815260025460208201526003549181019190915291505b8282604001511115610ec6575080610417565b610ecf83610f3f565b91509150915091565b6000808211610f2e576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b818381610f3757fe5b049392505050565b610f47611052565b610f4f611052565b60008054610708600161ffff9283160182160616906107078201905b6002838301049050600161070882066107088110610f8557fe5b60408051606081018252600392909202929092018054825260018101546020830152600201549181018290529550610fc257806001019250610f6b565b6001610708828201066107088110610fd657fe5b6003020160405180606001604052908160008201548152602001600182015481526020016002820154815250509350600086866040015111159050808015611022575084604001518711155b1561102d575061104a565b8061103d57600182039250611044565b8160010193505b50610f6b565b505050915091565b6040518060600160405280600081526020016000815260200160008152509056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a264697066735822122030a55344499919f2aec162437fa28f2cee976036ca6f6b8ec1bbfcd7ea92f73e64736f6c63430007060033", "linkReferences": {}, "deployedLinkReferences": {} }