witnet-solidity-bridge
Version:
Witnet Solidity Bridge contracts for EVM-compatible chains
936 lines (935 loc) • 225 kB
JSON
{
"contractName": "WitOracleRadonRequestFactoryBase",
"abi": [
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "bytes32",
"name": "hash",
"type": "bytes32"
}
],
"name": "NewRadonReducer",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "Witnet.RadonHash",
"name": "radonHash",
"type": "bytes32"
}
],
"name": "NewRadonRequest",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "witOracleRadonRequestModal",
"type": "address"
}
],
"name": "NewRadonRequestModal",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "witOracleRadonRequestTemplate",
"type": "address"
}
],
"name": "NewRadonRequestTemplate",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "bytes32",
"name": "hash",
"type": "bytes32"
}
],
"name": "NewRadonRetrieval",
"type": "event"
},
{
"inputs": [],
"name": "class",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "specs",
"outputs": [
{
"internalType": "bytes4",
"name": "",
"type": "bytes4"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [],
"name": "witOracle",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "witOracleRadonRequestModalsBuilder",
"outputs": [
{
"internalType": "contract WitOracleRadonRequestFactoryModals",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "witOracleRadonRequestTemplatesBuilder",
"outputs": [
{
"internalType": "contract WitOracleRadonRequestFactoryTemplates",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"components": [
{
"internalType": "enum Witnet.RadonRetrievalMethods",
"name": "method",
"type": "uint8"
},
{
"internalType": "string",
"name": "body",
"type": "string"
},
{
"internalType": "string[2][]",
"name": "headers",
"type": "string[2][]"
},
{
"internalType": "bytes",
"name": "script",
"type": "bytes"
}
],
"internalType": "struct IWitOracleRadonRequestFactory.DataSourceRequest",
"name": "commonDataRequest",
"type": "tuple"
},
{
"components": [
{
"internalType": "enum Witnet.RadonReduceOpcodes",
"name": "opcode",
"type": "uint8"
},
{
"components": [
{
"internalType": "enum Witnet.RadonFilterOpcodes",
"name": "opcode",
"type": "uint8"
},
{
"internalType": "bytes",
"name": "cborArgs",
"type": "bytes"
}
],
"internalType": "struct Witnet.RadonFilter[]",
"name": "filters",
"type": "tuple[]"
}
],
"internalType": "struct Witnet.RadonReducer",
"name": "crowdAttestationTally",
"type": "tuple"
}
],
"name": "buildRadonRequestModal",
"outputs": [
{
"internalType": "contract IWitOracleRadonRequestModal",
"name": "",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"components": [
{
"internalType": "string",
"name": "url",
"type": "string"
},
{
"components": [
{
"internalType": "enum Witnet.RadonRetrievalMethods",
"name": "method",
"type": "uint8"
},
{
"internalType": "string",
"name": "body",
"type": "string"
},
{
"internalType": "string[2][]",
"name": "headers",
"type": "string[2][]"
},
{
"internalType": "bytes",
"name": "script",
"type": "bytes"
}
],
"internalType": "struct IWitOracleRadonRequestFactory.DataSourceRequest",
"name": "request",
"type": "tuple"
}
],
"internalType": "struct IWitOracleRadonRequestFactory.DataSource[]",
"name": "dataSources",
"type": "tuple[]"
},
{
"components": [
{
"internalType": "enum Witnet.RadonReduceOpcodes",
"name": "opcode",
"type": "uint8"
},
{
"components": [
{
"internalType": "enum Witnet.RadonFilterOpcodes",
"name": "opcode",
"type": "uint8"
},
{
"internalType": "bytes",
"name": "cborArgs",
"type": "bytes"
}
],
"internalType": "struct Witnet.RadonFilter[]",
"name": "filters",
"type": "tuple[]"
}
],
"internalType": "struct Witnet.RadonReducer",
"name": "dataSourcesAggregator",
"type": "tuple"
},
{
"components": [
{
"internalType": "enum Witnet.RadonReduceOpcodes",
"name": "opcode",
"type": "uint8"
},
{
"components": [
{
"internalType": "enum Witnet.RadonFilterOpcodes",
"name": "opcode",
"type": "uint8"
},
{
"internalType": "bytes",
"name": "cborArgs",
"type": "bytes"
}
],
"internalType": "struct Witnet.RadonFilter[]",
"name": "filters",
"type": "tuple[]"
}
],
"internalType": "struct Witnet.RadonReducer",
"name": "crowdAttestationTally",
"type": "tuple"
}
],
"name": "buildRadonRequestTemplate",
"outputs": [
{
"internalType": "contract IWitOracleRadonRequestTemplate",
"name": "",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32[]",
"name": "radonRetrieveHashes",
"type": "bytes32[]"
},
{
"components": [
{
"internalType": "enum Witnet.RadonReduceOpcodes",
"name": "opcode",
"type": "uint8"
},
{
"components": [
{
"internalType": "enum Witnet.RadonFilterOpcodes",
"name": "opcode",
"type": "uint8"
},
{
"internalType": "bytes",
"name": "cborArgs",
"type": "bytes"
}
],
"internalType": "struct Witnet.RadonFilter[]",
"name": "filters",
"type": "tuple[]"
}
],
"internalType": "struct Witnet.RadonReducer",
"name": "dataSourcesAggregator",
"type": "tuple"
},
{
"components": [
{
"internalType": "enum Witnet.RadonReduceOpcodes",
"name": "opcode",
"type": "uint8"
},
{
"components": [
{
"internalType": "enum Witnet.RadonFilterOpcodes",
"name": "opcode",
"type": "uint8"
},
{
"internalType": "bytes",
"name": "cborArgs",
"type": "bytes"
}
],
"internalType": "struct Witnet.RadonFilter[]",
"name": "filters",
"type": "tuple[]"
}
],
"internalType": "struct Witnet.RadonReducer",
"name": "crowdAttestationTally",
"type": "tuple"
}
],
"name": "buildRadonRequestTemplate",
"outputs": [
{
"internalType": "contract IWitOracleRadonRequestTemplate",
"name": "",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "function"
}
],
"metadata": "{\"compiler\":{\"version\":\"0.8.30+commit.73712a01\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"}],\"name\":\"NewRadonReducer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"Witnet.RadonHash\",\"name\":\"radonHash\",\"type\":\"bytes32\"}],\"name\":\"NewRadonRequest\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"witOracleRadonRequestModal\",\"type\":\"address\"}],\"name\":\"NewRadonRequestModal\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"witOracleRadonRequestTemplate\",\"type\":\"address\"}],\"name\":\"NewRadonRequestTemplate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"}],\"name\":\"NewRadonRetrieval\",\"type\":\"event\"},{\"inputs\":[{\"components\":[{\"internalType\":\"enum Witnet.RadonRetrievalMethods\",\"name\":\"method\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"body\",\"type\":\"string\"},{\"internalType\":\"string[2][]\",\"name\":\"headers\",\"type\":\"string[2][]\"},{\"internalType\":\"bytes\",\"name\":\"script\",\"type\":\"bytes\"}],\"internalType\":\"struct IWitOracleRadonRequestFactory.DataSourceRequest\",\"name\":\"commonDataRequest\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"enum Witnet.RadonReduceOpcodes\",\"name\":\"opcode\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"enum Witnet.RadonFilterOpcodes\",\"name\":\"opcode\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"cborArgs\",\"type\":\"bytes\"}],\"internalType\":\"struct Witnet.RadonFilter[]\",\"name\":\"filters\",\"type\":\"tuple[]\"}],\"internalType\":\"struct Witnet.RadonReducer\",\"name\":\"crowdAttestationTally\",\"type\":\"tuple\"}],\"name\":\"buildRadonRequestModal\",\"outputs\":[{\"internalType\":\"contract IWitOracleRadonRequestModal\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"url\",\"type\":\"string\"},{\"components\":[{\"internalType\":\"enum Witnet.RadonRetrievalMethods\",\"name\":\"method\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"body\",\"type\":\"string\"},{\"internalType\":\"string[2][]\",\"name\":\"headers\",\"type\":\"string[2][]\"},{\"internalType\":\"bytes\",\"name\":\"script\",\"type\":\"bytes\"}],\"internalType\":\"struct IWitOracleRadonRequestFactory.DataSourceRequest\",\"name\":\"request\",\"type\":\"tuple\"}],\"internalType\":\"struct IWitOracleRadonRequestFactory.DataSource[]\",\"name\":\"dataSources\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"enum Witnet.RadonReduceOpcodes\",\"name\":\"opcode\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"enum Witnet.RadonFilterOpcodes\",\"name\":\"opcode\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"cborArgs\",\"type\":\"bytes\"}],\"internalType\":\"struct Witnet.RadonFilter[]\",\"name\":\"filters\",\"type\":\"tuple[]\"}],\"internalType\":\"struct Witnet.RadonReducer\",\"name\":\"dataSourcesAggregator\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"enum Witnet.RadonReduceOpcodes\",\"name\":\"opcode\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"enum Witnet.RadonFilterOpcodes\",\"name\":\"opcode\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"cborArgs\",\"type\":\"bytes\"}],\"internalType\":\"struct Witnet.RadonFilter[]\",\"name\":\"filters\",\"type\":\"tuple[]\"}],\"internalType\":\"struct Witnet.RadonReducer\",\"name\":\"crowdAttestationTally\",\"type\":\"tuple\"}],\"name\":\"buildRadonRequestTemplate\",\"outputs\":[{\"internalType\":\"contract IWitOracleRadonRequestTemplate\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"radonRetrieveHashes\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"enum Witnet.RadonReduceOpcodes\",\"name\":\"opcode\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"enum Witnet.RadonFilterOpcodes\",\"name\":\"opcode\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"cborArgs\",\"type\":\"bytes\"}],\"internalType\":\"struct Witnet.RadonFilter[]\",\"name\":\"filters\",\"type\":\"tuple[]\"}],\"internalType\":\"struct Witnet.RadonReducer\",\"name\":\"dataSourcesAggregator\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"enum Witnet.RadonReduceOpcodes\",\"name\":\"opcode\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"enum Witnet.RadonFilterOpcodes\",\"name\":\"opcode\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"cborArgs\",\"type\":\"bytes\"}],\"internalType\":\"struct Witnet.RadonFilter[]\",\"name\":\"filters\",\"type\":\"tuple[]\"}],\"internalType\":\"struct Witnet.RadonReducer\",\"name\":\"crowdAttestationTally\",\"type\":\"tuple\"}],\"name\":\"buildRadonRequestTemplate\",\"outputs\":[{\"internalType\":\"contract IWitOracleRadonRequestTemplate\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"class\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"specs\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"witOracle\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"witOracleRadonRequestModalsBuilder\",\"outputs\":[{\"internalType\":\"contract WitOracleRadonRequestFactoryModals\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"witOracleRadonRequestTemplatesBuilder\",\"outputs\":[{\"internalType\":\"contract WitOracleRadonRequestFactoryTemplates\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"events\":{\"NewRadonReducer(bytes32)\":{\"notice\":\"Emitted every time a new Radon Reducer gets successfully verified and stored into the WitOracleRadonRegistry.\"},\"NewRadonRequest(bytes32)\":{\"notice\":\"Emitted every time a new Radon Request gets successfully verified and stored into the WitOracleRadonRegistry.\"},\"NewRadonRetrieval(bytes32)\":{\"notice\":\"Emitted every time a new Radon Retrieval gets successfully verified and stored into the WitOracleRadonRegistry.\"}},\"kind\":\"user\",\"methods\":{\"buildRadonRequestModal((uint8,string,string[2][],bytes),(uint8,(uint8,bytes)[]))\":{\"notice\":\"=============================================================================================================== --- Implementation of IWitOracleRadonRequestFactory -----------------------------------------------------------\"},\"class()\":{\"notice\":\"Returns the name of the actual contract implementing the logic of this Witnet appliance.\"},\"specs()\":{\"notice\":\"Returns the ERC-165 id of the minimal functionality expected for this appliance.\"},\"witOracle()\":{\"notice\":\"Reference to the Witnet Request Board that all templates built out from this factory will refer to.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/core/base/WitOracleRadonRequestFactoryBase.sol\":\"WitOracleRadonRequestFactoryBase\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08\",\"dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q\"]},\"project:/contracts/WitOracleRadonRequestFactory.sol\":{\"keccak256\":\"0x7aa7a7f61c2e5a61a050a3e1819e7eed11f9e8a09b15b157e1bc1b298b6118c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d75af90a732a14fb76cd043978e09bd1e53c378c54039b9e1c2f3fee5e071fd2\",\"dweb:/ipfs/QmSSDQxsi4CueiFnKHuCTHzscgt4TroRTBDYUBywPi8o3b\"]},\"project:/contracts/core/base/WitOracleRadonRequestFactoryBase.sol\":{\"keccak256\":\"0x1f8fce3e264fd5904b7c60c1523bf1df0a76c1a505c047db4929017854451011\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://01f8cdfd35e21666fb46341e630616db85f2220194e3363895250863236f1b13\",\"dweb:/ipfs/QmTYEFRybqPsyQxkchsNktxBUbDDYsWyrurPXNkYeJUNCk\"]},\"project:/contracts/core/base/WitOracleRadonRequestFactoryModals.sol\":{\"keccak256\":\"0xd0f8e429111741babddd598e5aa390e8848c4e153272f43731719a2b8fbcde6c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9dd0e2c180eb42840345fb0892c20f3ceb377cb0e53d92f4817d55993a2d0ab0\",\"dweb:/ipfs/QmYwqScKvMV1pGdoUFRG7kQG98fHZ5p5bQkaoQCFbwbxwf\"]},\"project:/contracts/core/base/WitOracleRadonRequestFactoryTemplates.sol\":{\"keccak256\":\"0xdfc8a2e736235013ed360e647654ddba7727e0ba8bfb9ab9e15290b1caedadb1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8bfc613a66d495a183134f587ccc3bdf8f99bd6ea35d5ba9dbcb407946d04ee7\",\"dweb:/ipfs/QmV1STny9ttBdQXkXyyZq8uYwUgDDpKzAxddjSbjX4zBS9\"]},\"project:/contracts/interfaces/IWitAppliance.sol\":{\"keccak256\":\"0xd207ca54a1049445a3d99eea497d9b34c6dbdd44d771eee825e4c031bd2f447e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f81de32d868ff2881ed6fe97cc897e40b4b11d23cbe53a0e23cf3e68f9c0f0a3\",\"dweb:/ipfs/QmeeXmzmK5MAzt7Hf5DB2L81efKtTzZg9VbQ8sUiTqEk5c\"]},\"project:/contracts/interfaces/IWitOracle.sol\":{\"keccak256\":\"0x26cbe2074c0b3f545a46d95fad5e2280b67edcd958e4ae0b88f3a018aa11b805\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5324bac61f65e3edb01c88b9b75ca17affd593be88da5753a93b3f5304d3f479\",\"dweb:/ipfs/QmcVmNV6smbFiPaxvuN8ShkqbDZsT1wfjnF7f3qs6ke7QG\"]},\"project:/contracts/interfaces/IWitOracleAppliance.sol\":{\"keccak256\":\"0xcd8e57eca7f8042c85a83264e2ff6d1cd7a9f1521831736d7f57bcc7800642e6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5c639668e9439d60770b5df77436088ae7bd0aeb1d1be446552a98b6c29138f0\",\"dweb:/ipfs/QmbN3f5YuKMSd2j9tjay3VEkiYibGWpbfbwRNyrxA8k4o4\"]},\"project:/contracts/interfaces/IWitOracleRadonRegistry.sol\":{\"keccak256\":\"0x437bbb89129311bd1cc8f6becd333df46109ec53b24d3159be942b225614071f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ef9bcdf4a73cb126885478c994821b7fe2b87d9221b767b4c9342b89b0d6550a\",\"dweb:/ipfs/QmXzZXPMxjSiFpcEnhg6CjLFNxGCpDZt22xpUh7VHxNTGd\"]},\"project:/contracts/interfaces/IWitOracleRadonRegistryEvents.sol\":{\"keccak256\":\"0x9bd30477aeb33de11c4f1df3cd7451452a90ffed1f6eabd9e643046bf1e60d66\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18fb38c5528ed2e1bf90ff8d123bf5a9523d0dc49f448d6c39ddad1cd9048d0a\",\"dweb:/ipfs/QmQq1RUwFgnGTk3xDAmN6u2WMPBzvjZNJc7TPYtG6aZfRn\"]},\"project:/contracts/interfaces/IWitOracleRadonRequestFactory.sol\":{\"keccak256\":\"0x4484204bd9cb0f054dfe5120409e9da5ff7e4eca03917e3c0c4cef9a322ee98a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ecd34db48b011fc94c5132ff6fead4ca36b45a464e2342b65692cc4001cde0bb\",\"dweb:/ipfs/QmNPG3hM7XpMN3iGvR7UhGiSS3Kz5qNmEZKUQRjSPggKax\"]},\"project:/contracts/interfaces/IWitOracleRadonRequestModal.sol\":{\"keccak256\":\"0x60b777e63700ed42d7e4b88c8e12db4b5220adb10d2ecc618c8c2a99a09eccee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1b70b584cba3caa113e95aef31dbf5d5ae78042907c159e3ca25e3420d3b5b3f\",\"dweb:/ipfs/QmRThmU5vd8aVX2iK33pfmp6SKgfqgnC9VpT6Ruk1EwyVB\"]},\"project:/contracts/interfaces/IWitOracleRadonRequestTemplate.sol\":{\"keccak256\":\"0xb3f8ec0cbd9cde19348cfd5f51480fb1a0ffe479bf38043ec385f9b4ef1a53f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://90fa841ff07d95c96d2c0d0423845a49280fbbf287d3b00b56dfda8c7c8ea15c\",\"dweb:/ipfs/QmfD7cP4V4kuFjeNdXC8tDyrEJCbTAHCenJ7sC7f6cfxvP\"]},\"project:/contracts/libs/Bech32.sol\":{\"keccak256\":\"0x14618323a0efe7586c20906a2e9cee7ad63baa976ff231c57f7f2d7d3707fb8b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a19f05fe84047a7a6d3d6fc39972b432e6e536aa70472386a9d7a6d9aab64a64\",\"dweb:/ipfs/QmcHwUY66yjiotRH4Q3kbRvSzcHyLQ1yHL3KbtQKiMhtZE\"]},\"project:/contracts/libs/Secp256k1.sol\":{\"keccak256\":\"0xbe686002da5004ff39dd70709f3820eba2afe9323ae9cb894009c161e4b1a666\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18fab91775216de0707cea9ad285b10be09127461a13432fea358bf9cb2a0c2e\",\"dweb:/ipfs/QmeRUGsgstnM4hxM9hpkBf3L6cE5btirEaowcMxmuw3utj\"]},\"project:/contracts/libs/Witnet.sol\":{\"keccak256\":\"0x1d446c3e534e40e676d1763bfb2897fadfac8afed904ab757843d7d6770b0a6c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://338fb1073f17d64e8d31bfe492d9475ce906788ee08e6489ce30413f91dc1328\",\"dweb:/ipfs/QmPe5QX2AGTnQFjse1Xttq4ZYWwYAiXoySb5VUui3PqPhk\"]},\"project:/contracts/libs/WitnetBuffer.sol\":{\"keccak256\":\"0x8e07aebe2954ab3e6f2d8eceedb12db7cf915c1f3e8630f4fa9999cecb1c78ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed6c54cc901183d61546e8fd15bd5ea8ef238ebc915642946071d435dd7481ea\",\"dweb:/ipfs/Qmcaqta7YjUSBbBUGqoh44bsCS6UqqoyHjBuz4qnKBShXM\"]},\"project:/contracts/libs/WitnetCBOR.sol\":{\"keccak256\":\"0xd99308373575cc10fb7f2ceb0f6a8625f3911275c1fa27811fae498d98d03d97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b4909a999d7b660a2dc54ca957b6eccfa523e2765fc4d6a2574dee7d5cd67b43\",\"dweb:/ipfs/QmWGQT4KDcfSFe1hcHVoWx6E4PhYMaod5iLpJCWBEeShzh\"]},\"project:/contracts/patterns/Clonable.sol\":{\"keccak256\":\"0x9a2dbc814306f60263fe736b88aeabc44fc241d3bed132e8dd76a3684dd825f7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e665de5be06c9227c49f9466d24f798d4bed1a2db66d4d1368dcd9fc663c1b3a\",\"dweb:/ipfs/QmRjY2CHTGp1eyi9XPeTKr4WnPCzXbtk2285kdy2bJVCYA\"]},\"project:/contracts/patterns/Initializable.sol\":{\"keccak256\":\"0xaac470e87f361cf15d68d1618d6eb7d4913885d33ccc39c797841a9591d44296\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ef3760b2039feda8715d4bd9f8de8e3885f25573d12ba92f52d626ba880a08bf\",\"dweb:/ipfs/QmP2mfHPBKkjTAKft95sPDb4PBsjfmAwc47Kdcv3xYSf3g\"]}},\"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 \"../../WitOracleRadonRequestFactory.sol\";\r\n\r\nimport \"./WitOracleRadonRequestFactoryModals.sol\";\r\nimport \"./WitOracleRadonRequestFactoryTemplates.sol\";\r\n\r\nabstract contract WitOracleRadonRequestFactoryBase\r\n is\r\n WitOracleRadonRequestFactory\r\n{\r\n using Witnet for Witnet.RadonHash;\r\n\r\n /// @notice Reference to the Witnet Request Board that all templates built out from this factory will refer to.\r\n address immutable public override witOracle;\r\n \r\n IWitOracleRadonRegistry immutable internal __witOracleRadonRegistry;\r\n \r\n WitOracleRadonRequestFactoryModals immutable public witOracleRadonRequestModalsBuilder;\r\n WitOracleRadonRequestFactoryTemplates immutable public witOracleRadonRequestTemplatesBuilder;\r\n\r\n constructor(\r\n address _witOracleRadonRequestModalsBuilder,\r\n address _witOracleRadonRequestTemplatesBuilder\r\n )\r\n {\r\n witOracle = IWitOracleAppliance(_witOracleRadonRequestModalsBuilder).witOracle();\r\n _require(\r\n witOracle != address(0) \r\n && witOracle.code.length > 0\r\n && witOracle == IWitOracleAppliance(_witOracleRadonRequestTemplatesBuilder).witOracle(),\r\n \"invalid builders\"\r\n );\r\n __witOracleRadonRegistry = IWitOracle(witOracle).registry();\r\n witOracleRadonRequestModalsBuilder = WitOracleRadonRequestFactoryModals(_witOracleRadonRequestModalsBuilder);\r\n witOracleRadonRequestTemplatesBuilder = WitOracleRadonRequestFactoryTemplates(_witOracleRadonRequestTemplatesBuilder);\r\n }\r\n\r\n /// ===============================================================================================================\r\n /// --- Implementation of IWitOracleRadonRequestFactory -----------------------------------------------------------\r\n\r\n function buildRadonRequestModal(\r\n DataSourceRequest calldata commonDataRequest,\r\n Witnet.RadonReducer memory crowdAttestationTally\r\n )\r\n virtual override\r\n external \r\n returns (IWitOracleRadonRequestModal)\r\n {\r\n bytes32 _commonRetrievalHash = __witOracleRadonRegistry.verifyRadonRetrieval(\r\n commonDataRequest.method,\r\n \"\",\r\n commonDataRequest.body,\r\n commonDataRequest.headers,\r\n commonDataRequest.script\r\n );\r\n bytes15 _crowdAttestationTallyHash = bytes15(__witOracleRadonRegistry.verifyRadonReducer(\r\n crowdAttestationTally\r\n ));\r\n address _modal = witOracleRadonRequestModalsBuilder.determineAddress(\r\n _commonRetrievalHash,\r\n _crowdAttestationTallyHash\r\n );\r\n if (_modal.code.length == 0) {\r\n witOracleRadonRequestModalsBuilder.buildRadonRequestModal(\r\n _commonRetrievalHash,\r\n _crowdAttestationTallyHash\r\n );\r\n _checkCloneWasDeployed(_modal);\r\n emit NewRadonRequestModal(_modal);\r\n }\r\n return IWitOracleRadonRequestModal(_modal);\r\n }\r\n\r\n function buildRadonRequestTemplate(\r\n bytes32[] memory radonRetrieveHashes,\r\n Witnet.RadonReducer memory dataSourcesAggregator,\r\n Witnet.RadonReducer memory crowdAttestationTally\r\n )\r\n virtual override\r\n public\r\n returns (IWitOracleRadonRequestTemplate)\r\n {\r\n bytes15 _dataSourcesAggregatorHash = bytes15(__witOracleRadonRegistry.verifyRadonReducer(dataSourcesAggregator));\r\n bytes15 _crowdAttestationTallyHash = bytes15(__witOracleRadonRegistry.verifyRadonReducer(crowdAttestationTally));\r\n address _template = witOracleRadonRequestTemplatesBuilder.determineAddress(\r\n radonRetrieveHashes,\r\n _dataSourcesAggregatorHash,\r\n _crowdAttestationTallyHash\r\n );\r\n if (_template.code.length == 0) {\r\n witOracleRadonRequestTemplatesBuilder.buildRadonRequestTemplate(\r\n radonRetrieveHashes,\r\n _dataSourcesAggregatorHash,\r\n _crowdAttestationTallyHash\r\n );\r\n _checkCloneWasDeployed(_template);\r\n emit NewRadonRequestTemplate(_template);\r\n }\r\n return IWitOracleRadonRequestTemplate(_template);\r\n }\r\n\r\n function buildRadonRequestTemplate(\r\n DataSource[] calldata dataSources,\r\n Witnet.RadonReducer calldata dataSourcesAggregator,\r\n Witnet.RadonReducer calldata crowdAttestationTally\r\n )\r\n virtual override\r\n external \r\n returns (IWitOracleRadonRequestTemplate)\r\n {\r\n bytes32[] memory _radonRetrieveHashes = new bytes32[](dataSources.length);\r\n for (uint _ix; _ix < dataSources.length; ++ _ix) {\r\n DataSourceRequest memory _request = dataSources[_ix].request;\r\n _radonRetrieveHashes[_ix] = __witOracleRadonRegistry.verifyRadonRetrieval(\r\n _request.method,\r\n dataSources[_ix].url,\r\n _request.body,\r\n _request.headers,\r\n _request.script\r\n );\r\n }\r\n return buildRadonRequestTemplate(\r\n _radonRetrieveHashes,\r\n dataSourcesAggregator,\r\n crowdAttestationTally\r\n );\r\n }\r\n\r\n\r\n /// ===============================================================================================================\r\n /// --- Internal virtual methods ----------------------------------------------------------------------------------\r\n\r\n function _checkCloneWasDeployed(address _clone) virtual internal view {\r\n _require(\r\n _clone.code.length > 0,\r\n \"cannot clone\"\r\n );\r\n }\r\n}\r\n",
"sourcePath": "C:\\Users\\guill\\github\\guidiaz\\witnet-solidity-bridge\\contracts\\core\\base\\WitOracleRadonRequestFactoryBase.sol",
"ast": {
"absolutePath": "project:/contracts/core/base/WitOracleRadonRequestFactoryBase.sol",
"exportedSymbols": {
"Bech32": [
31372
],
"Clonable": [
45518
],
"IWitAppliance": [
26514
],
"IWitOracle": [
26581
],
"IWitOracleAppliance": [
26593
],
"IWitOracleRadonRegistry": [
27394
],
"IWitOracleRadonRegistryEvents": [
27414
],
"IWitOracleRadonRequestFactory": [
27489
],
"IWitOracleRadonRequestModal": [
27541
],
"IWitOracleRadonRequestTemplate": [
27592
],
"Initializable": [
267
],
"Secp256k1": [
32535
],
"WitOracleRadonRequestFactory": [
751
],
"WitOracleRadonRequestFactoryBase": [
15679
],
"WitOracleRadonRequestFactoryModals": [
16188
],
"WitOracleRadonRequestFactoryTemplates": [
16677
],
"Witnet": [
40741
],
"WitnetBuffer": [
42631
],
"WitnetCBOR": [
44174
]
},
"id": 15680,
"license": "MIT",
"nodeType": "SourceUnit",
"nodes": [
{
"id": 15357,
"literals": [
"solidity",
">=",
"0.8",
".0",
"<",
"0.9",
".0"
],
"nodeType": "PragmaDirective",
"src": "35:31:37"
},
{
"absolutePath": "project:/contracts/WitOracleRadonRequestFactory.sol",
"file": "../../WitOracleRadonRequestFactory.sol",
"id": 15358,
"nameLocation": "-1:-1:-1",
"nodeType": "ImportDirective",
"scope": 15680,
"sourceUnit": 752,
"src": "70:48:37",
"symbolAliases": [],
"unitAlias": ""
},
{
"absolutePath": "project:/contracts/core/base/WitOracleRadonRequestFactoryModals.sol",
"file": "./WitOracleRadonRequestFactoryModals.sol",
"id": 15359,
"nameLocation": "-1:-1:-1",
"nodeType": "ImportDirective",
"scope": 15680,
"sourceUnit": 16189,
"src": "122:50:37",
"symbolAliases": [],
"unitAlias": ""
},
{
"absolutePath": "project:/contracts/core/base/WitOracleRadonRequestFactoryTemplates.sol",
"file": "./WitOracleRadonRequestFactoryTemplates.sol",
"id": 15360,
"nameLocation": "-1:-1:-1",
"nodeType": "ImportDirective",
"scope": 15680,
"sourceUnit": 16678,
"src": "174:53:37",
"symbolAliases": [],
"unitAlias": ""
},
{
"abstract": true,
"baseContracts": [
{
"baseName": {
"id": 15361,
"name": "WitOracleRadonRequestFactory",
"nameLocations": [
"299:28:37"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 751,
"src": "299:28:37"
},
"id": 15362,
"nodeType": "InheritanceSpecifier",
"src": "299:28:37"
}
],
"canonicalName": "WitOracleRadonRequestFactoryBase",
"contractDependencies": [],
"contractKind": "contract",
"fullyImplemented": false,
"id": 15679,
"linearizedBaseContracts": [
15679,
751,
27489,
27414,
26593,
26514
],
"name": "WitOracleRadonRequestFactoryBase",
"nameLocation": "249:32:37",
"nodeType": "ContractDefinition",
"nodes": [
{
"global": false,
"id": 15366,
"libraryName": {
"id": 15363,
"name": "Witnet",
"nameLocations": [
"342:6:37"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 40741,
"src": "342:6:37"
},
"nodeType": "UsingForDirective",
"src": "336:34:37",
"typeName": {
"id": 15365,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 15364,
"name": "Witnet.RadonHash",
"nameLocations": [
"353:6:37",
"360:9:37"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 37153,
"src": "353:16:37"
},
"referencedDeclaration": 37153,
"src": "353:16:37",
"typeDescriptions": {
"typeIdentifier": "t_userDefinedValueType$_RadonHash_$37153",
"typeString": "Witnet.RadonHash"
}
}
},
{
"baseFunctions": [
26592
],
"constant": false,
"documentation": {
"id": 15367,
"nodeType": "StructuredDocumentation",
"src": "378:111:37",
"text": "@notice Reference to the Witnet Request Board that all templates built out from this factory will refer to."
},
"functionSelector": "1014d375",
"id": 15370,
"mutability": "immutable",
"name": "witOracle",
"nameLocation": "529:9:37",
"nodeType": "VariableDeclaration",
"overrides": {
"id": 15369,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "520:8:37"
},
"scope": 15679,
"src": "495:43:37",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 15368,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "495:7:37",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "public"
},
{
"constant": false,
"id": 15373,
"mutability": "immutable",
"name": "__witOracleRadonRegistry",
"nameLocation": "594:24:37",
"nodeType": "VariableDeclaration",
"scope": 15679,
"src": "551:67:37",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_contract$_IWitOracleRadonRegistry_$27394",
"typeString": "contract IWitOracleRadonRegistry"
},
"typeName": {
"id": 15372,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 15371,
"name": "IWitOracleRadonRegistry",
"nameLocations": [
"551:23:37"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 27394,
"src": "551:23:37"
},
"referencedDeclaration": 27394,
"src": "551:23:37",
"typeDescriptions": {
"typeIdentifier": "t_contract$_IWitOracleRadonRegistry_$27394",
"typeString": "contract IWitOracleRadonRegistry"
}
},
"visibility": "internal"
},
{
"constant": false,
"functionSelector": "52fdb7cf",
"id": 15376,
"mutability": "immutable",
"name": "witOracleRadonRequestModalsBuilder",
"nameLocation": "683:34:37",
"nodeType": "VariableDeclaration",
"scope": 15679,
"src": "631:86:37",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_contract$_WitOracleRadonRequestFactoryModals_$16188",
"typeString": "contract WitOracleRadonRequestFactoryModals"
},
"typeName": {
"id": 15375,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 15374,
"name": "WitOracleRadonRequestFactoryModals",
"nameLocations": [
"631:34:37"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 16188,
"src": "631:34:37"
},
"referencedDeclaration": 16188,
"src": "631:34:37",
"typeDescriptions": {
"typeIdentifier": "t_contract$_WitOracleRadonRequestFactoryModals_$16188",
"typeString": "contract WitOracleRadonRequestFactoryModals"
}
},
"visibility": "public"
},
{
"constant": false,
"functionSelector": "6f00eef9",
"id": 15379,
"mutability": "immutable",
"name": "witOracleRadonRequestTemplatesBuilder",
"nameLocation": "779:37:37",
"nodeType": "VariableDeclaration",
"scope": 15679,
"src": "724:92:37",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_contract$_WitOracleRadonRequestFactoryTemplates_$16677",
"typeString": "contract WitOracleRadonRequestFactoryTemplates"
},
"typeName": {
"id": 15378,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 15377,
"name": "WitOracleRadonRequestFactoryTemplates",
"nameLocations": [
"724:37:37"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 16677,
"src": "724:37:37"
},
"referencedDeclaration": 16677,
"src": "724:37:37",
"typeDescriptions": {
"typeIdentifier": "t_contract$_WitOracleRadonRequestFactoryTemplates_$16677",
"typeString": "contract WitOracleRadonRequestFactoryTemplates"
}
},
"visibility": "public"
},
{
"body": {
"id": 15438,
"nodeType": "Block",
"src": "972:669:37",
"statements": [
{
"expression": {
"id": 15392,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"id": 15386,
"name": "witOracle",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 15370,
"src": "983:9:37",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"arguments": [],
"expression": {
"argumentTypes": [],
"expression": {
"arguments": [
{
"id": 15388,
"name": "_witOracleRadonRequestModalsBuilder",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 15381,
"src": "1015:35:37",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"id": 15387,
"name": "IWitOracleAppliance",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 26593,
"src": "995:19:37",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_IWitOracleAppliance_$26593_$",
"typeString": "type(contract IWitOracleAppliance)"
}
},
"id": 15389,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "995:56:37",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_contract$_IWitOracleAppliance_$26593",
"typeString": "contract IWitOracleAppliance"
}
},
"id": 15390,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "1052:9:37",
"memberName": "witOracle",
"nodeType": "MemberAccess",
"referencedDeclaration": 26592,
"src": "995:66:37",
"typeDescriptions": {
"typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
"typeString": "function () view external returns (address)"
}
},
"id": 15391,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "995:68:37",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "983:80:37",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 15393,
"nodeType": "ExpressionStatement",
"src": "983:80:37"
},
{
"expression": {
"arguments": [
{
"commonType": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"id": 15414,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"commonType": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"id": 15406,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"commonType": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"id": 15400,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 15395,
"name": "witOracle",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 15370,
"src": "1097:9:37",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "BinaryOperation",
"operator": "!=",
"rightExpression": {
"arguments": [
{
"hexValue": "30",
"id": 15398,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1118:1:37",
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
}
],
"expression": {