witnet-solidity-bridge
Version:
Witnet Solidity Bridge contracts for EVM-compatible chains
670 lines • 28 kB
JSON
{
"contractName": "IWitnetPriceFeeds",
"abi": [
{
"inputs": [
{
"internalType": "bytes4",
"name": "feedId",
"type": "bytes4"
}
],
"name": "lookupDecimals",
"outputs": [
{
"internalType": "uint8",
"name": "",
"type": "uint8"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes4",
"name": "feedId",
"type": "bytes4"
}
],
"name": "lookupPriceSolver",
"outputs": [
{
"internalType": "contract IWitnetPriceSolver",
"name": "solverAddress",
"type": "address"
},
{
"internalType": "string[]",
"name": "solverDeps",
"type": "string[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes4",
"name": "feedId",
"type": "bytes4"
}
],
"name": "latestPrice",
"outputs": [
{
"components": [
{
"internalType": "uint256",
"name": "value",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "timestamp",
"type": "uint256"
},
{
"internalType": "bytes32",
"name": "tallyHash",
"type": "bytes32"
},
{
"internalType": "enum WitnetV2.ResponseStatus",
"name": "status",
"type": "uint8"
}
],
"internalType": "struct IWitnetPriceSolver.Price",
"name": "",
"type": "tuple"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes4[]",
"name": "feedIds",
"type": "bytes4[]"
}
],
"name": "latestPrices",
"outputs": [
{
"components": [
{
"internalType": "uint256",
"name": "value",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "timestamp",
"type": "uint256"
},
{
"internalType": "bytes32",
"name": "tallyHash",
"type": "bytes32"
},
{
"internalType": "enum WitnetV2.ResponseStatus",
"name": "status",
"type": "uint8"
}
],
"internalType": "struct IWitnetPriceSolver.Price[]",
"name": "",
"type": "tuple[]"
}
],
"stateMutability": "view",
"type": "function"
}
],
"metadata": "{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"feedId\",\"type\":\"bytes4\"}],\"name\":\"latestPrice\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"tallyHash\",\"type\":\"bytes32\"},{\"internalType\":\"enum WitnetV2.ResponseStatus\",\"name\":\"status\",\"type\":\"uint8\"}],\"internalType\":\"struct IWitnetPriceSolver.Price\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4[]\",\"name\":\"feedIds\",\"type\":\"bytes4[]\"}],\"name\":\"latestPrices\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"tallyHash\",\"type\":\"bytes32\"},{\"internalType\":\"enum WitnetV2.ResponseStatus\",\"name\":\"status\",\"type\":\"uint8\"}],\"internalType\":\"struct IWitnetPriceSolver.Price[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"feedId\",\"type\":\"bytes4\"}],\"name\":\"lookupDecimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"feedId\",\"type\":\"bytes4\"}],\"name\":\"lookupPriceSolver\",\"outputs\":[{\"internalType\":\"contract IWitnetPriceSolver\",\"name\":\"solverAddress\",\"type\":\"address\"},{\"internalType\":\"string[]\",\"name\":\"solverDeps\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"latestPrice(bytes4)\":{\"notice\":\"====================================================================================================== --- IWitnetFeeds extension ---------------------------------------------------------------------------\"},\"lookupDecimals(bytes4)\":{\"notice\":\"====================================================================================================== --- IFeeds extension ---------------------------------------------------------------------------------\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/interfaces/IWitnetPriceFeeds.sol\":\"IWitnetPriceFeeds\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"project:/contracts/interfaces/IWitnetPriceFeeds.sol\":{\"keccak256\":\"0xa667f859734bc20c34a07c35a9fda348e4f3242a8d2391b84c4ac8534fbcdc7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81e6a9286ce05cbac22b05e89e6ed9395a5650d73aeef778bbf50b845539ab7d\",\"dweb:/ipfs/QmT26ovLwnCkGmXC7mF3CrmcZEJa3rxQF2YT97mnuxUyqz\"]},\"project:/contracts/interfaces/IWitnetPriceSolver.sol\":{\"keccak256\":\"0x858441dafaa0617a8d679b3cda493b418284d865899c3f235cb3f41535db7a16\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://43d25f8985aede9c32cee369872a9f21db41c7b9abc87d5d4d02ff7e15879b98\",\"dweb:/ipfs/QmdoZnVpx9FZeg8KHgMjGRLmVKtdn7zzFTadFUjT8xd3dR\"]},\"project:/contracts/libs/Witnet.sol\":{\"keccak256\":\"0x65a87375dd79d63a83fb454b7199b6c999bd59c50b3b59d521c5c4d45a7d3cc3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ca865b681d810c2fc5c3672ea6343c3bdf6fd71764ab824d25994744dc85866b\",\"dweb:/ipfs/QmPGcP3xGTNZfsQ9GSKdujNLRVs8dWDdubyUko1rbQqJNv\"]},\"project:/contracts/libs/WitnetBuffer.sol\":{\"keccak256\":\"0xa14570492eb5a313ddbacae0185c850ec99c67211eb33989a5e21d31bf06a150\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e83c11edb49cab6a767c0b685825bc22ece0d3d2897e0d54fe1923df5cc76ba5\",\"dweb:/ipfs/QmdLDgCc3tnKbgRrXwfNzsg6uUDirNmjvBB8V3iMmnD69a\"]},\"project:/contracts/libs/WitnetCBOR.sol\":{\"keccak256\":\"0xb346547ff731163beea2c657c52675cdf7936691d566a76a045577cf9c34ade0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6d4b5b6424a033584b41f1204d635db98fda9ca9bd2a614c9d82539a3e4e6529\",\"dweb:/ipfs/QmW6Qy3wWpzHSECYaCPaf9LWGfPqWDKVoP2kPSNNQu7LMQ\"]},\"project:/contracts/libs/WitnetV2.sol\":{\"keccak256\":\"0xb276a6da373bfbe9cd942dd7e59979cda898215d1e36ab3df95a6d6cc6ff770f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc4890876b9bc64f501ccdd48408bb63724865cb2ce8d2057f6b318540adce7c\",\"dweb:/ipfs/QmPMHPdbCsKBavhiLcaDgQ9EjNSvwwzv8TKffotcCv1ctP\"]}},\"version\":1}",
"bytecode": "0x",
"deployedBytecode": "0x",
"immutableReferences": {},
"generatedSources": [],
"deployedGeneratedSources": [],
"sourceMap": "",
"deployedSourceMap": "",
"source": "// SPDX-License-Identifier: MIT\r\n\r\npragma solidity >=0.8.0 <0.9.0;\r\n\r\nimport \"./IWitnetPriceSolver.sol\";\r\n\r\ninterface IWitnetPriceFeeds { \r\n /// ======================================================================================================\r\n /// --- IFeeds extension ---------------------------------------------------------------------------------\r\n \r\n function lookupDecimals(bytes4 feedId) external view returns (uint8); \r\n function lookupPriceSolver(bytes4 feedId) external view returns (\r\n IWitnetPriceSolver solverAddress, \r\n string[] memory solverDeps\r\n );\r\n\r\n /// ======================================================================================================\r\n /// --- IWitnetFeeds extension ---------------------------------------------------------------------------\r\n\r\n function latestPrice(bytes4 feedId) external view returns (IWitnetPriceSolver.Price memory);\r\n function latestPrices(bytes4[] calldata feedIds) external view returns (IWitnetPriceSolver.Price[] memory);\r\n}",
"sourcePath": "C:\\Users\\guill\\github\\witnet\\witnet-solidity-bridge\\contracts\\interfaces\\IWitnetPriceFeeds.sol",
"ast": {
"absolutePath": "project:/contracts/interfaces/IWitnetPriceFeeds.sol",
"exportedSymbols": {
"IWitnetPriceFeeds": [
13440
],
"IWitnetPriceSolver": [
13485
],
"Witnet": [
17557
],
"WitnetBuffer": [
19191
],
"WitnetCBOR": [
20734
],
"WitnetV2": [
23640
]
},
"id": 13441,
"license": "MIT",
"nodeType": "SourceUnit",
"nodes": [
{
"id": 13400,
"literals": [
"solidity",
">=",
"0.8",
".0",
"<",
"0.9",
".0"
],
"nodeType": "PragmaDirective",
"src": "35:31:52"
},
{
"absolutePath": "project:/contracts/interfaces/IWitnetPriceSolver.sol",
"file": "./IWitnetPriceSolver.sol",
"id": 13401,
"nameLocation": "-1:-1:-1",
"nodeType": "ImportDirective",
"scope": 13441,
"sourceUnit": 13486,
"src": "70:34:52",
"symbolAliases": [],
"unitAlias": ""
},
{
"abstract": false,
"baseContracts": [],
"canonicalName": "IWitnetPriceFeeds",
"contractDependencies": [],
"contractKind": "interface",
"fullyImplemented": false,
"id": 13440,
"linearizedBaseContracts": [
13440
],
"name": "IWitnetPriceFeeds",
"nameLocation": "118:17:52",
"nodeType": "ContractDefinition",
"nodes": [
{
"documentation": {
"id": 13402,
"nodeType": "StructuredDocumentation",
"src": "146:218:52",
"text": "======================================================================================================\n --- IFeeds extension ---------------------------------------------------------------------------------"
},
"functionSelector": "6ab221f8",
"id": 13409,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "lookupDecimals",
"nameLocation": "385:14:52",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 13405,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 13404,
"mutability": "mutable",
"name": "feedId",
"nameLocation": "407:6:52",
"nodeType": "VariableDeclaration",
"scope": 13409,
"src": "400:13:52",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
},
"typeName": {
"id": 13403,
"name": "bytes4",
"nodeType": "ElementaryTypeName",
"src": "400:6:52",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"visibility": "internal"
}
],
"src": "399:15:52"
},
"returnParameters": {
"id": 13408,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 13407,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 13409,
"src": "438:5:52",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
},
"typeName": {
"id": 13406,
"name": "uint8",
"nodeType": "ElementaryTypeName",
"src": "438:5:52",
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
"visibility": "internal"
}
],
"src": "437:7:52"
},
"scope": 13440,
"src": "376:69:52",
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"functionSelector": "384ac938",
"id": 13420,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "lookupPriceSolver",
"nameLocation": "464:17:52",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 13412,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 13411,
"mutability": "mutable",
"name": "feedId",
"nameLocation": "489:6:52",
"nodeType": "VariableDeclaration",
"scope": 13420,
"src": "482:13:52",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
},
"typeName": {
"id": 13410,
"name": "bytes4",
"nodeType": "ElementaryTypeName",
"src": "482:6:52",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"visibility": "internal"
}
],
"src": "481:15:52"
},
"returnParameters": {
"id": 13419,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 13415,
"mutability": "mutable",
"name": "solverAddress",
"nameLocation": "553:13:52",
"nodeType": "VariableDeclaration",
"scope": 13420,
"src": "534:32:52",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_contract$_IWitnetPriceSolver_$13485",
"typeString": "contract IWitnetPriceSolver"
},
"typeName": {
"id": 13414,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 13413,
"name": "IWitnetPriceSolver",
"nameLocations": [
"534:18:52"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 13485,
"src": "534:18:52"
},
"referencedDeclaration": 13485,
"src": "534:18:52",
"typeDescriptions": {
"typeIdentifier": "t_contract$_IWitnetPriceSolver_$13485",
"typeString": "contract IWitnetPriceSolver"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 13418,
"mutability": "mutable",
"name": "solverDeps",
"nameLocation": "598:10:52",
"nodeType": "VariableDeclaration",
"scope": 13420,
"src": "582:26:52",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr",
"typeString": "string[]"
},
"typeName": {
"baseType": {
"id": 13416,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "582:6:52",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"id": 13417,
"nodeType": "ArrayTypeName",
"src": "582:8:52",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr",
"typeString": "string[]"
}
},
"visibility": "internal"
}
],
"src": "519:100:52"
},
"scope": 13440,
"src": "455:165:52",
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"documentation": {
"id": 13421,
"nodeType": "StructuredDocumentation",
"src": "628:220:52",
"text": "======================================================================================================\n --- IWitnetFeeds extension ---------------------------------------------------------------------------"
},
"functionSelector": "c3d98ea8",
"id": 13429,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "latestPrice",
"nameLocation": "863:11:52",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 13424,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 13423,
"mutability": "mutable",
"name": "feedId",
"nameLocation": "882:6:52",
"nodeType": "VariableDeclaration",
"scope": 13429,
"src": "875:13:52",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
},
"typeName": {
"id": 13422,
"name": "bytes4",
"nodeType": "ElementaryTypeName",
"src": "875:6:52",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"visibility": "internal"
}
],
"src": "874:15:52"
},
"returnParameters": {
"id": 13428,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 13427,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 13429,
"src": "913:31:52",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Price_$13453_memory_ptr",
"typeString": "struct IWitnetPriceSolver.Price"
},
"typeName": {
"id": 13426,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 13425,
"name": "IWitnetPriceSolver.Price",
"nameLocations": [
"913:18:52",
"932:5:52"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 13453,
"src": "913:24:52"
},
"referencedDeclaration": 13453,
"src": "913:24:52",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Price_$13453_storage_ptr",
"typeString": "struct IWitnetPriceSolver.Price"
}
},
"visibility": "internal"
}
],
"src": "912:33:52"
},
"scope": 13440,
"src": "854:92:52",
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"functionSelector": "f9f34bb6",
"id": 13439,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "latestPrices",
"nameLocation": "961:12:52",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 13433,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 13432,
"mutability": "mutable",
"name": "feedIds",
"nameLocation": "992:7:52",
"nodeType": "VariableDeclaration",
"scope": 13439,
"src": "974:25:52",
"stateVariable": false,
"storageLocation": "calldata",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes4_$dyn_calldata_ptr",
"typeString": "bytes4[]"
},
"typeName": {
"baseType": {
"id": 13430,
"name": "bytes4",
"nodeType": "ElementaryTypeName",
"src": "974:6:52",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"id": 13431,
"nodeType": "ArrayTypeName",
"src": "974:8:52",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes4_$dyn_storage_ptr",
"typeString": "bytes4[]"
}
},
"visibility": "internal"
}
],
"src": "973:27:52"
},
"returnParameters": {
"id": 13438,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 13437,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 13439,
"src": "1025:33:52",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_Price_$13453_memory_ptr_$dyn_memory_ptr",
"typeString": "struct IWitnetPriceSolver.Price[]"
},
"typeName": {
"baseType": {
"id": 13435,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 13434,
"name": "IWitnetPriceSolver.Price",
"nameLocations": [
"1025:18:52",
"1044:5:52"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 13453,
"src": "1025:24:52"
},
"referencedDeclaration": 13453,
"src": "1025:24:52",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Price_$13453_storage_ptr",
"typeString": "struct IWitnetPriceSolver.Price"
}
},
"id": 13436,
"nodeType": "ArrayTypeName",
"src": "1025:26:52",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_Price_$13453_storage_$dyn_storage_ptr",
"typeString": "struct IWitnetPriceSolver.Price[]"
}
},
"visibility": "internal"
}
],
"src": "1024:35:52"
},
"scope": 13440,
"src": "952:108:52",
"stateMutability": "view",
"virtual": false,
"visibility": "external"
}
],
"scope": 13441,
"src": "108:955:52",
"usedErrors": [],
"usedEvents": []
}
],
"src": "35:1028:52"
},
"compiler": {
"name": "solc",
"version": "0.8.25+commit.b61c2a91.Emscripten.clang"
},
"networks": {},
"schemaVersion": "3.4.16",
"updatedAt": "2024-12-05T09:36:04.505Z",
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {
"latestPrice(bytes4)": {
"notice": "====================================================================================================== --- IWitnetFeeds extension ---------------------------------------------------------------------------"
},
"lookupDecimals(bytes4)": {
"notice": "====================================================================================================== --- IFeeds extension ---------------------------------------------------------------------------------"
}
},
"version": 1
}
}