@perp/perp-oracle-contract
Version:
Perpetual Protocol Curie (v2) oracle contracts - v0.5.0 is not an audited version
217 lines (216 loc) • 16.1 kB
JSON
{
"_format": "hh-sol-artifact-1",
"contractName": "PriceFeedDispatcher",
"sourceName": "contracts/PriceFeedDispatcher.sol",
"abi": [
{
"inputs": [
{
"internalType": "address",
"name": "chainlinkPriceFeedV3",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "previousOwner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "OwnershipTransferred",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "enum IPriceFeedDispatcherEvent.Status",
"name": "status",
"type": "uint8"
}
],
"name": "StatusUpdated",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "uniswapV3PriceFeed",
"type": "address"
}
],
"name": "UniswapV3PriceFeedUpdated",
"type": "event"
},
{
"inputs": [],
"name": "decimals",
"outputs": [
{
"internalType": "uint8",
"name": "",
"type": "uint8"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "interval",
"type": "uint256"
}
],
"name": "dispatchPrice",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "getChainlinkPriceFeedV3",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "interval",
"type": "uint256"
}
],
"name": "getDispatchedPrice",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "interval",
"type": "uint256"
}
],
"name": "getPrice",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getUniswapV3PriceFeed",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "isToUseUniswapV3PriceFeed",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "owner",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "renounceOwnership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "uniswapV3PriceFeed",
"type": "address"
}
],
"name": "setUniswapV3PriceFeed",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "transferOwnership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"bytecode": "0x60a06040526000805460ff60a01b1916905534801561001d57600080fd5b50604051610be7380380610be78339818101604052602081101561004057600080fd5b5051600061004c610102565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506100b2816001600160a01b031661010660201b6109041760201c565b6100ed576040805162461bcd60e51b81526020600482015260076024820152665046445f434e4360c81b604482015290519081900360640190fd5b60601b6001600160601b03191660805261010c565b3390565b3b151590565b60805160601c610aaa61013d600039806101f5528061033d52806104c5528061056d528061067b5250610aaa6000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c806382b4ad161161007157806382b4ad161461013e5780638da5cb5b14610162578063b96ced5d1461016a578063d48b702514610190578063e757223014610198578063f2fde38b146101b5576100a9565b80630c53d013146100ae57806321edfc39146100ca578063313ce567146100e95780635269d41814610107578063715018a614610136575b600080fd5b6100b66101db565b604080519115158252519081900360200190f35b6100e7600480360360208110156100e057600080fd5b503561029f565b005b6100f16103bd565b6040805160ff9092168252519081900360200190f35b6101246004803603602081101561011d57600080fd5b50356103c2565b60408051918252519081900360200190f35b6100e76105bb565b610146610679565b604080516001600160a01b039092168252519081900360200190f35b61014661069d565b6100e76004803603602081101561018057600080fd5b50356001600160a01b03166106ac565b6101466107d6565b610124600480360360208110156101ae57600080fd5b50356107e5565b6100e7600480360360208110156101cb57600080fd5b50356001600160a01b03166107f0565b6001546000906001600160a01b03161580159061029a57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316631d7866de6040518163ffffffff1660e01b815260040160206040518083038186803b15801561024c57600080fd5b505afa158015610260573d6000803e3d6000fd5b505050506040513d602081101561027657600080fd5b50518061029a57506001600054600160a01b900460ff16600181111561029857fe5b145b905090565b6102a76101db565b1561033b576001600054600160a01b900460ff1660018111156102c657fe5b1461033657600080546001919060ff60a01b1916600160a01b8302179055506000546040517f7101a660456a4e2f94e6b0ccd3d6a034724e26130a817471aaf5a3de8fba384a91600160a01b900460ff16908082600181111561032557fe5b815260200191505060405180910390a15b6103ba565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316631d1a111a826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b1580156103a157600080fd5b505af11580156103b5573d6000803e3d6000fd5b505050505b50565b601290565b60006103cc6101db565b156104c05760015460408051634c6afee560e11b815290516104b9926001600160a01b0316916398d5fdca916004808301926020929190829003018186803b15801561041757600080fd5b505afa15801561042b573d6000803e3d6000fd5b505050506040513d602081101561044157600080fd5b50516001546040805163313ce56760e01b815290516001600160a01b039092169163313ce56791600480820192602092909190829003018186803b15801561048857600080fd5b505afa15801561049c573d6000803e3d6000fd5b505050506040513d60208110156104b257600080fd5b505161090a565b90506105b6565b6105b37f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e7572230846040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561052757600080fd5b505afa15801561053b573d6000803e3d6000fd5b505050506040513d602081101561055157600080fd5b50516040805163313ce56760e01b815290516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169163313ce567916004808301926020929190829003018186803b15801561048857600080fd5b90505b919050565b6105c3610962565b6001600160a01b03166105d461069d565b6001600160a01b03161461062f576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b7f000000000000000000000000000000000000000000000000000000000000000090565b6000546001600160a01b031690565b6106b4610962565b6001600160a01b03166106c561069d565b6001600160a01b031614610720576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6001546001600160a01b03161580156107465750610746816001600160a01b0316610904565b610782576040805162461bcd60e51b81526020600482015260086024820152675046445f5543415560c01b604482015290519081900360640190fd5b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517fcc38df4cffc97c63a74bdcf095d2987ef21f05ae75ef6faba701e9f2c834dc279181900360200190a150565b6001546001600160a01b031690565b60006105b3826103c2565b6107f8610962565b6001600160a01b031661080961069d565b6001600160a01b031614610864576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6001600160a01b0381166108a95760405162461bcd60e51b8152600401808060200182810382526026815260200180610a2e6026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b3b151590565b6000601260ff8316811415610922578391505061095c565b8060ff168360ff1611610946576109418460ff85840316600a0a610966565b610958565b6109588460ff83860316600a0a6109c6565b9150505b92915050565b3390565b6000826109755750600061095c565b8282028284828161098257fe5b04146109bf5760405162461bcd60e51b8152600401808060200182810382526021815260200180610a546021913960400191505060405180910390fd5b9392505050565b6000808211610a1c576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b818381610a2557fe5b04939250505056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a26469706673582212203c0131420e04496907389acebc55e8aa398181d3ecbe829e4126cdcbbdf687cf64736f6c63430007060033",
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100a95760003560e01c806382b4ad161161007157806382b4ad161461013e5780638da5cb5b14610162578063b96ced5d1461016a578063d48b702514610190578063e757223014610198578063f2fde38b146101b5576100a9565b80630c53d013146100ae57806321edfc39146100ca578063313ce567146100e95780635269d41814610107578063715018a614610136575b600080fd5b6100b66101db565b604080519115158252519081900360200190f35b6100e7600480360360208110156100e057600080fd5b503561029f565b005b6100f16103bd565b6040805160ff9092168252519081900360200190f35b6101246004803603602081101561011d57600080fd5b50356103c2565b60408051918252519081900360200190f35b6100e76105bb565b610146610679565b604080516001600160a01b039092168252519081900360200190f35b61014661069d565b6100e76004803603602081101561018057600080fd5b50356001600160a01b03166106ac565b6101466107d6565b610124600480360360208110156101ae57600080fd5b50356107e5565b6100e7600480360360208110156101cb57600080fd5b50356001600160a01b03166107f0565b6001546000906001600160a01b03161580159061029a57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316631d7866de6040518163ffffffff1660e01b815260040160206040518083038186803b15801561024c57600080fd5b505afa158015610260573d6000803e3d6000fd5b505050506040513d602081101561027657600080fd5b50518061029a57506001600054600160a01b900460ff16600181111561029857fe5b145b905090565b6102a76101db565b1561033b576001600054600160a01b900460ff1660018111156102c657fe5b1461033657600080546001919060ff60a01b1916600160a01b8302179055506000546040517f7101a660456a4e2f94e6b0ccd3d6a034724e26130a817471aaf5a3de8fba384a91600160a01b900460ff16908082600181111561032557fe5b815260200191505060405180910390a15b6103ba565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316631d1a111a826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b1580156103a157600080fd5b505af11580156103b5573d6000803e3d6000fd5b505050505b50565b601290565b60006103cc6101db565b156104c05760015460408051634c6afee560e11b815290516104b9926001600160a01b0316916398d5fdca916004808301926020929190829003018186803b15801561041757600080fd5b505afa15801561042b573d6000803e3d6000fd5b505050506040513d602081101561044157600080fd5b50516001546040805163313ce56760e01b815290516001600160a01b039092169163313ce56791600480820192602092909190829003018186803b15801561048857600080fd5b505afa15801561049c573d6000803e3d6000fd5b505050506040513d60208110156104b257600080fd5b505161090a565b90506105b6565b6105b37f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e7572230846040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561052757600080fd5b505afa15801561053b573d6000803e3d6000fd5b505050506040513d602081101561055157600080fd5b50516040805163313ce56760e01b815290516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169163313ce567916004808301926020929190829003018186803b15801561048857600080fd5b90505b919050565b6105c3610962565b6001600160a01b03166105d461069d565b6001600160a01b03161461062f576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b7f000000000000000000000000000000000000000000000000000000000000000090565b6000546001600160a01b031690565b6106b4610962565b6001600160a01b03166106c561069d565b6001600160a01b031614610720576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6001546001600160a01b03161580156107465750610746816001600160a01b0316610904565b610782576040805162461bcd60e51b81526020600482015260086024820152675046445f5543415560c01b604482015290519081900360640190fd5b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517fcc38df4cffc97c63a74bdcf095d2987ef21f05ae75ef6faba701e9f2c834dc279181900360200190a150565b6001546001600160a01b031690565b60006105b3826103c2565b6107f8610962565b6001600160a01b031661080961069d565b6001600160a01b031614610864576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6001600160a01b0381166108a95760405162461bcd60e51b8152600401808060200182810382526026815260200180610a2e6026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b3b151590565b6000601260ff8316811415610922578391505061095c565b8060ff168360ff1611610946576109418460ff85840316600a0a610966565b610958565b6109588460ff83860316600a0a6109c6565b9150505b92915050565b3390565b6000826109755750600061095c565b8282028284828161098257fe5b04146109bf5760405162461bcd60e51b8152600401808060200182810382526021815260200180610a546021913960400191505060405180910390fd5b9392505050565b6000808211610a1c576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b818381610a2557fe5b04939250505056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a26469706673582212203c0131420e04496907389acebc55e8aa398181d3ecbe829e4126cdcbbdf687cf64736f6c63430007060033",
"linkReferences": {},
"deployedLinkReferences": {}
}