|
|
@@ -0,0 +1,665 @@
|
|
|
+[
|
|
|
+ {
|
|
|
+ "inputs": [
|
|
|
+ {
|
|
|
+ "internalType": "uint256",
|
|
|
+ "name": "_validTimePeriod",
|
|
|
+ "type": "uint256"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "internalType": "uint256",
|
|
|
+ "name": "_singleUpdateFeeInWei",
|
|
|
+ "type": "uint256"
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ "stateMutability": "nonpayable",
|
|
|
+ "type": "constructor"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "inputs": [],
|
|
|
+ "name": "InsufficientFee",
|
|
|
+ "type": "error"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "inputs": [],
|
|
|
+ "name": "InvalidArgument",
|
|
|
+ "type": "error"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "inputs": [],
|
|
|
+ "name": "NoFreshUpdate",
|
|
|
+ "type": "error"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "inputs": [],
|
|
|
+ "name": "PriceFeedNotFound",
|
|
|
+ "type": "error"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "inputs": [],
|
|
|
+ "name": "PriceFeedNotFoundWithinRange",
|
|
|
+ "type": "error"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "inputs": [],
|
|
|
+ "name": "StalePrice",
|
|
|
+ "type": "error"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "anonymous": false,
|
|
|
+ "inputs": [
|
|
|
+ {
|
|
|
+ "indexed": false,
|
|
|
+ "internalType": "uint16",
|
|
|
+ "name": "chainId",
|
|
|
+ "type": "uint16"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "indexed": false,
|
|
|
+ "internalType": "uint64",
|
|
|
+ "name": "sequenceNumber",
|
|
|
+ "type": "uint64"
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ "name": "BatchPriceFeedUpdate",
|
|
|
+ "type": "event"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "anonymous": false,
|
|
|
+ "inputs": [
|
|
|
+ {
|
|
|
+ "indexed": true,
|
|
|
+ "internalType": "bytes32",
|
|
|
+ "name": "id",
|
|
|
+ "type": "bytes32"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "indexed": false,
|
|
|
+ "internalType": "uint64",
|
|
|
+ "name": "publishTime",
|
|
|
+ "type": "uint64"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "indexed": false,
|
|
|
+ "internalType": "int64",
|
|
|
+ "name": "price",
|
|
|
+ "type": "int64"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "indexed": false,
|
|
|
+ "internalType": "uint64",
|
|
|
+ "name": "conf",
|
|
|
+ "type": "uint64"
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ "name": "PriceFeedUpdate",
|
|
|
+ "type": "event"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "inputs": [
|
|
|
+ {
|
|
|
+ "internalType": "bytes32",
|
|
|
+ "name": "id",
|
|
|
+ "type": "bytes32"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "internalType": "int64",
|
|
|
+ "name": "price",
|
|
|
+ "type": "int64"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "internalType": "uint64",
|
|
|
+ "name": "conf",
|
|
|
+ "type": "uint64"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "internalType": "int32",
|
|
|
+ "name": "expo",
|
|
|
+ "type": "int32"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "internalType": "int64",
|
|
|
+ "name": "emaPrice",
|
|
|
+ "type": "int64"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "internalType": "uint64",
|
|
|
+ "name": "emaConf",
|
|
|
+ "type": "uint64"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "internalType": "uint64",
|
|
|
+ "name": "publishTime",
|
|
|
+ "type": "uint64"
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ "name": "createPriceFeedUpdateData",
|
|
|
+ "outputs": [
|
|
|
+ {
|
|
|
+ "internalType": "bytes",
|
|
|
+ "name": "priceFeedData",
|
|
|
+ "type": "bytes"
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ "stateMutability": "pure",
|
|
|
+ "type": "function"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "inputs": [
|
|
|
+ {
|
|
|
+ "internalType": "bytes32",
|
|
|
+ "name": "id",
|
|
|
+ "type": "bytes32"
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ "name": "getEmaPrice",
|
|
|
+ "outputs": [
|
|
|
+ {
|
|
|
+ "components": [
|
|
|
+ {
|
|
|
+ "internalType": "int64",
|
|
|
+ "name": "price",
|
|
|
+ "type": "int64"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "internalType": "uint64",
|
|
|
+ "name": "conf",
|
|
|
+ "type": "uint64"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "internalType": "int32",
|
|
|
+ "name": "expo",
|
|
|
+ "type": "int32"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "internalType": "uint256",
|
|
|
+ "name": "publishTime",
|
|
|
+ "type": "uint256"
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ "internalType": "struct PythStructs.Price",
|
|
|
+ "name": "price",
|
|
|
+ "type": "tuple"
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ "stateMutability": "view",
|
|
|
+ "type": "function"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "inputs": [
|
|
|
+ {
|
|
|
+ "internalType": "bytes32",
|
|
|
+ "name": "id",
|
|
|
+ "type": "bytes32"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "internalType": "uint256",
|
|
|
+ "name": "age",
|
|
|
+ "type": "uint256"
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ "name": "getEmaPriceNoOlderThan",
|
|
|
+ "outputs": [
|
|
|
+ {
|
|
|
+ "components": [
|
|
|
+ {
|
|
|
+ "internalType": "int64",
|
|
|
+ "name": "price",
|
|
|
+ "type": "int64"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "internalType": "uint64",
|
|
|
+ "name": "conf",
|
|
|
+ "type": "uint64"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "internalType": "int32",
|
|
|
+ "name": "expo",
|
|
|
+ "type": "int32"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "internalType": "uint256",
|
|
|
+ "name": "publishTime",
|
|
|
+ "type": "uint256"
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ "internalType": "struct PythStructs.Price",
|
|
|
+ "name": "price",
|
|
|
+ "type": "tuple"
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ "stateMutability": "view",
|
|
|
+ "type": "function"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "inputs": [
|
|
|
+ {
|
|
|
+ "internalType": "bytes32",
|
|
|
+ "name": "id",
|
|
|
+ "type": "bytes32"
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ "name": "getEmaPriceUnsafe",
|
|
|
+ "outputs": [
|
|
|
+ {
|
|
|
+ "components": [
|
|
|
+ {
|
|
|
+ "internalType": "int64",
|
|
|
+ "name": "price",
|
|
|
+ "type": "int64"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "internalType": "uint64",
|
|
|
+ "name": "conf",
|
|
|
+ "type": "uint64"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "internalType": "int32",
|
|
|
+ "name": "expo",
|
|
|
+ "type": "int32"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "internalType": "uint256",
|
|
|
+ "name": "publishTime",
|
|
|
+ "type": "uint256"
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ "internalType": "struct PythStructs.Price",
|
|
|
+ "name": "price",
|
|
|
+ "type": "tuple"
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ "stateMutability": "view",
|
|
|
+ "type": "function"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "inputs": [
|
|
|
+ {
|
|
|
+ "internalType": "bytes32",
|
|
|
+ "name": "id",
|
|
|
+ "type": "bytes32"
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ "name": "getPrice",
|
|
|
+ "outputs": [
|
|
|
+ {
|
|
|
+ "components": [
|
|
|
+ {
|
|
|
+ "internalType": "int64",
|
|
|
+ "name": "price",
|
|
|
+ "type": "int64"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "internalType": "uint64",
|
|
|
+ "name": "conf",
|
|
|
+ "type": "uint64"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "internalType": "int32",
|
|
|
+ "name": "expo",
|
|
|
+ "type": "int32"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "internalType": "uint256",
|
|
|
+ "name": "publishTime",
|
|
|
+ "type": "uint256"
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ "internalType": "struct PythStructs.Price",
|
|
|
+ "name": "price",
|
|
|
+ "type": "tuple"
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ "stateMutability": "view",
|
|
|
+ "type": "function"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "inputs": [
|
|
|
+ {
|
|
|
+ "internalType": "bytes32",
|
|
|
+ "name": "id",
|
|
|
+ "type": "bytes32"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "internalType": "uint256",
|
|
|
+ "name": "age",
|
|
|
+ "type": "uint256"
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ "name": "getPriceNoOlderThan",
|
|
|
+ "outputs": [
|
|
|
+ {
|
|
|
+ "components": [
|
|
|
+ {
|
|
|
+ "internalType": "int64",
|
|
|
+ "name": "price",
|
|
|
+ "type": "int64"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "internalType": "uint64",
|
|
|
+ "name": "conf",
|
|
|
+ "type": "uint64"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "internalType": "int32",
|
|
|
+ "name": "expo",
|
|
|
+ "type": "int32"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "internalType": "uint256",
|
|
|
+ "name": "publishTime",
|
|
|
+ "type": "uint256"
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ "internalType": "struct PythStructs.Price",
|
|
|
+ "name": "price",
|
|
|
+ "type": "tuple"
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ "stateMutability": "view",
|
|
|
+ "type": "function"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "inputs": [
|
|
|
+ {
|
|
|
+ "internalType": "bytes32",
|
|
|
+ "name": "id",
|
|
|
+ "type": "bytes32"
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ "name": "getPriceUnsafe",
|
|
|
+ "outputs": [
|
|
|
+ {
|
|
|
+ "components": [
|
|
|
+ {
|
|
|
+ "internalType": "int64",
|
|
|
+ "name": "price",
|
|
|
+ "type": "int64"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "internalType": "uint64",
|
|
|
+ "name": "conf",
|
|
|
+ "type": "uint64"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "internalType": "int32",
|
|
|
+ "name": "expo",
|
|
|
+ "type": "int32"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "internalType": "uint256",
|
|
|
+ "name": "publishTime",
|
|
|
+ "type": "uint256"
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ "internalType": "struct PythStructs.Price",
|
|
|
+ "name": "price",
|
|
|
+ "type": "tuple"
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ "stateMutability": "view",
|
|
|
+ "type": "function"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "inputs": [
|
|
|
+ {
|
|
|
+ "internalType": "bytes[]",
|
|
|
+ "name": "updateData",
|
|
|
+ "type": "bytes[]"
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ "name": "getUpdateFee",
|
|
|
+ "outputs": [
|
|
|
+ {
|
|
|
+ "internalType": "uint256",
|
|
|
+ "name": "feeAmount",
|
|
|
+ "type": "uint256"
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ "stateMutability": "view",
|
|
|
+ "type": "function"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "inputs": [],
|
|
|
+ "name": "getValidTimePeriod",
|
|
|
+ "outputs": [
|
|
|
+ {
|
|
|
+ "internalType": "uint256",
|
|
|
+ "name": "",
|
|
|
+ "type": "uint256"
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ "stateMutability": "view",
|
|
|
+ "type": "function"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "inputs": [
|
|
|
+ {
|
|
|
+ "internalType": "bytes[]",
|
|
|
+ "name": "updateData",
|
|
|
+ "type": "bytes[]"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "internalType": "bytes32[]",
|
|
|
+ "name": "priceIds",
|
|
|
+ "type": "bytes32[]"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "internalType": "uint64",
|
|
|
+ "name": "minPublishTime",
|
|
|
+ "type": "uint64"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "internalType": "uint64",
|
|
|
+ "name": "maxPublishTime",
|
|
|
+ "type": "uint64"
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ "name": "parsePriceFeedUpdates",
|
|
|
+ "outputs": [
|
|
|
+ {
|
|
|
+ "components": [
|
|
|
+ {
|
|
|
+ "internalType": "bytes32",
|
|
|
+ "name": "id",
|
|
|
+ "type": "bytes32"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "components": [
|
|
|
+ {
|
|
|
+ "internalType": "int64",
|
|
|
+ "name": "price",
|
|
|
+ "type": "int64"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "internalType": "uint64",
|
|
|
+ "name": "conf",
|
|
|
+ "type": "uint64"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "internalType": "int32",
|
|
|
+ "name": "expo",
|
|
|
+ "type": "int32"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "internalType": "uint256",
|
|
|
+ "name": "publishTime",
|
|
|
+ "type": "uint256"
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ "internalType": "struct PythStructs.Price",
|
|
|
+ "name": "price",
|
|
|
+ "type": "tuple"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "components": [
|
|
|
+ {
|
|
|
+ "internalType": "int64",
|
|
|
+ "name": "price",
|
|
|
+ "type": "int64"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "internalType": "uint64",
|
|
|
+ "name": "conf",
|
|
|
+ "type": "uint64"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "internalType": "int32",
|
|
|
+ "name": "expo",
|
|
|
+ "type": "int32"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "internalType": "uint256",
|
|
|
+ "name": "publishTime",
|
|
|
+ "type": "uint256"
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ "internalType": "struct PythStructs.Price",
|
|
|
+ "name": "emaPrice",
|
|
|
+ "type": "tuple"
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ "internalType": "struct PythStructs.PriceFeed[]",
|
|
|
+ "name": "feeds",
|
|
|
+ "type": "tuple[]"
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ "stateMutability": "payable",
|
|
|
+ "type": "function"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "inputs": [
|
|
|
+ {
|
|
|
+ "internalType": "bytes32",
|
|
|
+ "name": "id",
|
|
|
+ "type": "bytes32"
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ "name": "priceFeedExists",
|
|
|
+ "outputs": [
|
|
|
+ {
|
|
|
+ "internalType": "bool",
|
|
|
+ "name": "",
|
|
|
+ "type": "bool"
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ "stateMutability": "view",
|
|
|
+ "type": "function"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "inputs": [
|
|
|
+ {
|
|
|
+ "internalType": "bytes32",
|
|
|
+ "name": "id",
|
|
|
+ "type": "bytes32"
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ "name": "queryPriceFeed",
|
|
|
+ "outputs": [
|
|
|
+ {
|
|
|
+ "components": [
|
|
|
+ {
|
|
|
+ "internalType": "bytes32",
|
|
|
+ "name": "id",
|
|
|
+ "type": "bytes32"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "components": [
|
|
|
+ {
|
|
|
+ "internalType": "int64",
|
|
|
+ "name": "price",
|
|
|
+ "type": "int64"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "internalType": "uint64",
|
|
|
+ "name": "conf",
|
|
|
+ "type": "uint64"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "internalType": "int32",
|
|
|
+ "name": "expo",
|
|
|
+ "type": "int32"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "internalType": "uint256",
|
|
|
+ "name": "publishTime",
|
|
|
+ "type": "uint256"
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ "internalType": "struct PythStructs.Price",
|
|
|
+ "name": "price",
|
|
|
+ "type": "tuple"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "components": [
|
|
|
+ {
|
|
|
+ "internalType": "int64",
|
|
|
+ "name": "price",
|
|
|
+ "type": "int64"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "internalType": "uint64",
|
|
|
+ "name": "conf",
|
|
|
+ "type": "uint64"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "internalType": "int32",
|
|
|
+ "name": "expo",
|
|
|
+ "type": "int32"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "internalType": "uint256",
|
|
|
+ "name": "publishTime",
|
|
|
+ "type": "uint256"
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ "internalType": "struct PythStructs.Price",
|
|
|
+ "name": "emaPrice",
|
|
|
+ "type": "tuple"
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ "internalType": "struct PythStructs.PriceFeed",
|
|
|
+ "name": "priceFeed",
|
|
|
+ "type": "tuple"
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ "stateMutability": "view",
|
|
|
+ "type": "function"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "inputs": [
|
|
|
+ {
|
|
|
+ "internalType": "bytes[]",
|
|
|
+ "name": "updateData",
|
|
|
+ "type": "bytes[]"
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ "name": "updatePriceFeeds",
|
|
|
+ "outputs": [],
|
|
|
+ "stateMutability": "payable",
|
|
|
+ "type": "function"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "inputs": [
|
|
|
+ {
|
|
|
+ "internalType": "bytes[]",
|
|
|
+ "name": "updateData",
|
|
|
+ "type": "bytes[]"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "internalType": "bytes32[]",
|
|
|
+ "name": "priceIds",
|
|
|
+ "type": "bytes32[]"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "internalType": "uint64[]",
|
|
|
+ "name": "publishTimes",
|
|
|
+ "type": "uint64[]"
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ "name": "updatePriceFeedsIfNecessary",
|
|
|
+ "outputs": [],
|
|
|
+ "stateMutability": "payable",
|
|
|
+ "type": "function"
|
|
|
+ }
|
|
|
+]
|