@witnet/solidity 2.2.8 → 2.2.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (84) hide show
  1. package/README.md +1 -1
  2. package/build/contracts/Clonable.json +2 -2
  3. package/build/contracts/Context.json +1 -1
  4. package/build/contracts/Create3.json +2 -2
  5. package/build/contracts/ERC165.json +1 -1
  6. package/build/contracts/IERC165.json +1 -1
  7. package/build/contracts/IERC20.json +1 -1
  8. package/build/contracts/IERC2362.json +1 -1
  9. package/build/contracts/IFeeds.json +2 -2
  10. package/build/contracts/IWitnetConsumer.json +2 -2
  11. package/build/contracts/IWitnetFeeds.json +2 -2
  12. package/build/contracts/IWitnetFeedsAdmin.json +2 -2
  13. package/build/contracts/IWitnetOracle.json +2 -2
  14. package/build/contracts/IWitnetOracleEvents.json +2 -2
  15. package/build/contracts/IWitnetOracleReporter.json +2 -2
  16. package/build/contracts/IWitnetPriceFeeds.json +2 -2
  17. package/build/contracts/IWitnetPriceSolver.json +2 -2
  18. package/build/contracts/IWitnetPriceSolverDeployer.json +2 -2
  19. package/build/contracts/IWitnetRandomness.json +2 -2
  20. package/build/contracts/IWitnetRandomnessAdmin.json +2 -2
  21. package/build/contracts/IWitnetRandomnessEvents.json +2 -2
  22. package/build/contracts/IWitnetRequestBoardAdmin.json +2 -2
  23. package/build/contracts/IWitnetRequestBoardAdminACLs.json +2 -2
  24. package/build/contracts/IWitnetRequestBytecodes.json +2 -2
  25. package/build/contracts/IWitnetRequestFactory.json +2 -2
  26. package/build/contracts/Initializable.json +1 -1
  27. package/build/contracts/OVM_GasPriceOracle.json +2 -2
  28. package/build/contracts/Ownable.json +1 -1
  29. package/build/contracts/Ownable2Step.json +2 -2
  30. package/build/contracts/Payable.json +2 -2
  31. package/build/contracts/Proxiable.json +2 -2
  32. package/build/contracts/ReentrancyGuard.json +1 -1
  33. package/build/contracts/Slices.json +2 -2
  34. package/build/contracts/Upgradeable.json +2 -2
  35. package/build/contracts/UsingWitnet.json +2 -2
  36. package/build/contracts/UsingWitnetRandomness.json +2 -2
  37. package/build/contracts/UsingWitnetRequest.json +2 -2
  38. package/build/contracts/UsingWitnetRequestTemplate.json +2 -2
  39. package/build/contracts/Witnet.json +2 -2
  40. package/build/contracts/WitnetBuffer.json +2 -2
  41. package/build/contracts/WitnetCBOR.json +2 -2
  42. package/build/contracts/WitnetConsumer.json +2 -2
  43. package/build/contracts/WitnetDeployer.json +2 -2
  44. package/build/contracts/WitnetDeployerCfxCore.json +2 -2
  45. package/build/contracts/WitnetDeployerMeter.json +2 -2
  46. package/build/contracts/WitnetEncodingLib.json +2 -2
  47. package/build/contracts/WitnetErrorsLib.json +2 -2
  48. package/build/contracts/WitnetFeeds.json +2 -2
  49. package/build/contracts/WitnetMockedOracle.json +2 -2
  50. package/build/contracts/WitnetMockedPriceFeeds.json +2 -2
  51. package/build/contracts/WitnetMockedRandomness.json +2 -2
  52. package/build/contracts/WitnetMockedRequestBytecodes.json +2 -2
  53. package/build/contracts/WitnetMockedRequestFactory.json +2 -2
  54. package/build/contracts/WitnetOracle.json +2 -2
  55. package/build/contracts/WitnetOracleDataLib.json +2 -2
  56. package/build/contracts/WitnetOracleTrustableBase.json +2 -2
  57. package/build/contracts/WitnetOracleTrustableDefault.json +2 -2
  58. package/build/contracts/WitnetOracleTrustableObscuro.json +2 -2
  59. package/build/contracts/WitnetOracleTrustableOvm2.json +2 -2
  60. package/build/contracts/WitnetOracleTrustableReef.json +2 -2
  61. package/build/contracts/WitnetPriceFeeds.json +2 -2
  62. package/build/contracts/WitnetPriceFeedsData.json +2 -2
  63. package/build/contracts/WitnetPriceFeedsDefault.json +2 -2
  64. package/build/contracts/WitnetPriceFeedsLib.json +2 -2
  65. package/build/contracts/WitnetPriceSolverBase.json +2 -2
  66. package/build/contracts/WitnetProxy.json +2 -2
  67. package/build/contracts/WitnetRandomness.json +2 -2
  68. package/build/contracts/WitnetRandomnessRequestConsumer.json +2 -2
  69. package/build/contracts/WitnetRandomnessV2.json +2 -2
  70. package/build/contracts/WitnetRequest.json +2 -2
  71. package/build/contracts/WitnetRequestBytecodes.json +2 -2
  72. package/build/contracts/WitnetRequestBytecodesData.json +2 -2
  73. package/build/contracts/WitnetRequestBytecodesDefault.json +2 -2
  74. package/build/contracts/WitnetRequestBytecodesNoSha256.json +2 -2
  75. package/build/contracts/WitnetRequestConsumer.json +2 -2
  76. package/build/contracts/WitnetRequestFactory.json +2 -2
  77. package/build/contracts/WitnetRequestFactoryCfxCore.json +2 -2
  78. package/build/contracts/WitnetRequestFactoryData.json +2 -2
  79. package/build/contracts/WitnetRequestFactoryDefault.json +2 -2
  80. package/build/contracts/WitnetRequestTemplate.json +2 -2
  81. package/build/contracts/WitnetRequestTemplateConsumer.json +2 -2
  82. package/build/contracts/WitnetUpgradableBase.json +2 -2
  83. package/build/contracts/WitnetV2.json +2 -2
  84. package/package.json +1 -1
package/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # witnet-solidity-bridge
1
+ # witnet-solidity
2
2
 
3
3
  Solidity source code of the smart contracts composing the **Witnet EVM Bridge** framework. This framework enables smart contracts operating in a long range of EVM-compatible chains to interact with the [Witnet Oracle Blockchain](https://witnet.io) for retrieving and aggregating offchain public data, or as an entropy source for randomness generation.
4
4
 
@@ -98,7 +98,7 @@
98
98
  "sourceMap": "",
99
99
  "deployedSourceMap": "",
100
100
  "source": "// SPDX-License-Identifier: MIT\n\npragma solidity >=0.6.0 <0.9.0;\n\nimport \"./Initializable.sol\";\n\nabstract contract Clonable\n is\n Initializable\n{\n address immutable internal _SELF = address(this);\n\n event Cloned(address indexed by, address indexed self, address indexed clone);\n\n modifier onlyDelegateCalls virtual {\n require(address(this) != _SELF, \"Clonable: not a delegate call\");\n _;\n }\n\n modifier wasInitialized {\n require(initialized(), \"Clonable: not initialized\");\n _;\n }\n\n /// @notice Tells whether this contract is a clone of `self()`\n function cloned()\n public view\n returns (bool)\n {\n return (\n address(this) != self()\n );\n }\n\n /// @notice Tells whether this instance has been initialized.\n function initialized() virtual public view returns (bool);\n\n /// @notice Contract address to which clones will be re-directed.\n function self() virtual public view returns (address) {\n return _SELF;\n }\n\n /// Deploys and returns the address of a minimal proxy clone that replicates contract\n /// behaviour while using its own EVM storage.\n /// @dev This function should always provide a new address, no matter how many times \n /// @dev is actually called from the same `msg.sender`.\n /// @dev See https://eips.ethereum.org/EIPS/eip-1167.\n /// @dev See https://blog.openzeppelin.com/deep-dive-into-the-minimal-proxy-contract/.\n function _clone()\n internal\n returns (address _instance)\n {\n bytes memory ptr = _cloneBytecodePtr();\n assembly {\n // CREATE new instance:\n _instance := create(0, ptr, 0x37)\n } \n require(_instance != address(0), \"Clonable: CREATE failed\");\n emit Cloned(msg.sender, self(), _instance);\n }\n\n /// @notice Returns minimal proxy's deploy bytecode.\n function _cloneBytecode()\n virtual internal view\n returns (bytes memory)\n {\n return abi.encodePacked(\n hex\"3d602d80600a3d3981f3363d3d373d3d3d363d73\",\n bytes20(self()),\n hex\"5af43d82803e903d91602b57fd5bf3\"\n );\n }\n\n /// @notice Returns mem pointer to minimal proxy's deploy bytecode.\n function _cloneBytecodePtr()\n virtual internal view\n returns (bytes memory ptr)\n {\n address _base = self();\n assembly {\n // ptr to free mem:\n ptr := mload(0x40)\n // begin minimal proxy construction bytecode:\n mstore(ptr, 0x3d602d80600a3d3981f3363d3d373d3d3d363d73000000000000000000000000)\n // make minimal proxy delegate all calls to `self()`:\n mstore(add(ptr, 0x14), shl(0x60, _base))\n // end minimal proxy construction bytecode:\n mstore(add(ptr, 0x28), 0x5af43d82803e903d91602b57fd5bf30000000000000000000000000000000000)\n }\n }\n\n /// Deploys and returns the address of a minimal proxy clone that replicates contract \n /// behaviour while using its own EVM storage.\n /// @dev This function uses the CREATE2 opcode and a `_salt` to deterministically deploy\n /// @dev the clone. Using the same `_salt` multiple times will revert, since\n /// @dev no contract can be deployed more than once at the same address.\n /// @dev See https://eips.ethereum.org/EIPS/eip-1167.\n /// @dev See https://blog.openzeppelin.com/deep-dive-into-the-minimal-proxy-contract/.\n function _cloneDeterministic(bytes32 _salt)\n virtual internal\n returns (address _instance)\n {\n bytes memory ptr = _cloneBytecodePtr();\n assembly {\n // CREATE2 new instance:\n _instance := create2(0, ptr, 0x37, _salt)\n }\n require(_instance != address(0), \"Clonable: CREATE2 failed\");\n emit Cloned(msg.sender, self(), _instance);\n }\n}",
101
- "sourcePath": "/home/asdpc/Witnet/witnet-solidity-bridge/contracts/patterns/Clonable.sol",
101
+ "sourcePath": "/home/runner/work/witnet-solidity-bridge/witnet-solidity-bridge/contracts/patterns/Clonable.sol",
102
102
  "ast": {
103
103
  "absolutePath": "project:/contracts/patterns/Clonable.sol",
104
104
  "exportedSymbols": {
@@ -2661,7 +2661,7 @@
2661
2661
  },
2662
2662
  "networks": {},
2663
2663
  "schemaVersion": "3.4.16",
2664
- "updatedAt": "2025-10-15T17:39:33.054Z",
2664
+ "updatedAt": "2025-10-15T18:03:23.939Z",
2665
2665
  "devdoc": {
2666
2666
  "errors": {
2667
2667
  "InvalidInitialization()": [
@@ -341,7 +341,7 @@
341
341
  },
342
342
  "networks": {},
343
343
  "schemaVersion": "3.4.16",
344
- "updatedAt": "2025-10-15T17:39:32.406Z",
344
+ "updatedAt": "2025-10-15T18:03:23.531Z",
345
345
  "devdoc": {
346
346
  "details": "Provides information about the current execution context, including the sender of the transaction and its data. While these are generally available via msg.sender and msg.data, they should not be accessed in such a direct manner, since when dealing with meta-transactions the account sending and paying for execution may not be the actual sender (as far as an application is concerned). This contract is only required for intermediate, library-like contracts.",
347
347
  "kind": "dev",
@@ -10,7 +10,7 @@
10
10
  "sourceMap": "337:5732:62:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;337:5732:62;;;;;;;;;;;;;;;;;",
11
11
  "deployedSourceMap": "337:5732:62:-:0;;;;;;;;",
12
12
  "source": "// SPDX-License-Identifier: AGPL-3.0-only\n\npragma solidity ^0.8.0;\n\n/// @notice Deploy to deterministic addresses without an initcode factor.\n/// @author Solmate (https://github.com/transmissions11/solmate/blob/main/src/utils/CREATE3.sol)\n/// @author 0xSequence (https://github.com/0xSequence/create3/blob/master/contracts/Create3.sol)\n\nlibrary Create3 {\n\n //--------------------------------------------------------------------------------//\n // Opcode | Opcode + Arguments | Description | Stack View //\n //--------------------------------------------------------------------------------//\n // 0x36 | 0x36 | CALLDATASIZE | size //\n // 0x3d | 0x3d | RETURNDATASIZE | 0 size //\n // 0x3d | 0x3d | RETURNDATASIZE | 0 0 size //\n // 0x37 | 0x37 | CALLDATACOPY | //\n // 0x36 | 0x36 | CALLDATASIZE | size //\n // 0x3d | 0x3d | RETURNDATASIZE | 0 size //\n // 0x34 | 0x34 | CALLVALUE | value 0 size //\n // 0xf0 | 0xf0 | CREATE | newContract //\n //--------------------------------------------------------------------------------//\n // Opcode | Opcode + Arguments | Description | Stack View //\n //--------------------------------------------------------------------------------//\n // 0x67 | 0x67XXXXXXXXXXXXXXXX | PUSH8 bytecode | bytecode //\n // 0x3d | 0x3d | RETURNDATASIZE | 0 bytecode //\n // 0x52 | 0x52 | MSTORE | //\n // 0x60 | 0x6008 | PUSH1 08 | 8 //\n // 0x60 | 0x6018 | PUSH1 18 | 24 8 //\n // 0xf3 | 0xf3 | RETURN | //\n //--------------------------------------------------------------------------------//\n \n bytes internal constant CREATE3_FACTORY_BYTECODE = hex\"67_36_3d_3d_37_36_3d_34_f0_3d_52_60_08_60_18_f3\";\n bytes32 internal constant CREATE3_FACTORY_CODEHASH = keccak256(CREATE3_FACTORY_BYTECODE);\n\n /// @notice Creates a new contract with given `_creationCode` and `_salt`\n /// @param _salt Salt of the contract creation, resulting address will be derivated from this value only\n /// @param _creationCode Creation code (constructor) of the contract to be deployed, this value doesn't affect the resulting address\n /// @return addr of the deployed contract, reverts on error\n function deploy(bytes32 _salt, bytes memory _creationCode)\n internal \n returns (address)\n {\n return deploy(_salt, _creationCode, 0);\n }\n\n /// @notice Creates a new contract with given `_creationCode`, `_salt` and `_value`. \n /// @param _salt Salt of the contract creation, resulting address will be derivated from this value only\n /// @param _creationCode Creation code (constructor) of the contract to be deployed, this value doesn't affect the resulting address\n /// @param _value In WEI of ETH to be forwarded to child contract\n /// @return _deployed The address of the deployed contract.\n function deploy(bytes32 _salt, bytes memory _creationCode, uint256 _value)\n internal\n returns (address _deployed)\n {\n // Get target final address\n _deployed = determineAddr(_salt);\n if (_deployed.code.length != 0) revert(\"Create3: target already exists\");\n\n // Create factory\n address _factory;\n bytes memory _factoryBytecode = CREATE3_FACTORY_BYTECODE;\n /// @solidity memory-safe-assembly\n assembly {\n // Deploy a factory contract with our pre-made bytecode via CREATE2.\n // We start 32 bytes into the code to avoid copying the byte length.\n _factory := create2(0, add(_factoryBytecode, 32), mload(_factoryBytecode), _salt)\n }\n require(_factory != address(0), \"Create3: error creating factory\"); \n\n // Use factory to deploy target\n (bool _success, ) = _factory.call{value: _value}(_creationCode);\n require(_success && _deployed.code.length != 0, \"Create3: error creating target\");\n }\n\n /// @notice Computes the resulting address of a contract deployed using address(this) and the given `_salt`\n /// @param _salt Salt of the contract creation, resulting address will be derivated from this value only\n /// @return addr of the deployed contract, reverts on error\n /// @dev The address creation formula is: keccak256(rlp([keccak256(0xff ++ address(this) ++ _salt ++ keccak256(childBytecode))[12:], 0x01]))\n function determineAddr(bytes32 _salt) internal view returns (address) {\n address _factory = address(\n uint160(\n uint256(\n keccak256(\n abi.encodePacked(\n hex'ff',\n address(this),\n _salt,\n CREATE3_FACTORY_CODEHASH\n )\n )\n )\n )\n );\n return address(\n uint160(\n uint256(\n keccak256(\n abi.encodePacked(\n // 0xd6 = 0xc0 (short RLP prefix) + 0x16 (length of: 0x94 ++ _factory ++ 0x01)\n // 0x94 = 0x80 + 0x14 (0x14 = the length of an address, 20 bytes, in hex)\n hex\"d6_94\",\n _factory,\n // _factory's nonce on which the target is created: 0x1\n hex\"01\"\n )\n )\n )\n )\n );\n }\n\n}",
13
- "sourcePath": "/home/asdpc/Witnet/witnet-solidity-bridge/contracts/libs/Create3.sol",
13
+ "sourcePath": "/home/runner/work/witnet-solidity-bridge/witnet-solidity-bridge/contracts/libs/Create3.sol",
14
14
  "ast": {
15
15
  "absolutePath": "project:/contracts/libs/Create3.sol",
16
16
  "exportedSymbols": {
@@ -2207,7 +2207,7 @@
2207
2207
  },
2208
2208
  "networks": {},
2209
2209
  "schemaVersion": "3.4.16",
2210
- "updatedAt": "2025-10-15T17:39:32.789Z",
2210
+ "updatedAt": "2025-10-15T18:03:23.789Z",
2211
2211
  "devdoc": {
2212
2212
  "author": "Solmate (https://github.com/transmissions11/solmate/blob/main/src/utils/CREATE3.sol)0xSequence (https://github.com/0xSequence/create3/blob/master/contracts/Create3.sol)",
2213
2213
  "kind": "dev",
@@ -333,7 +333,7 @@
333
333
  },
334
334
  "networks": {},
335
335
  "schemaVersion": "3.4.16",
336
- "updatedAt": "2025-10-15T17:39:32.408Z",
336
+ "updatedAt": "2025-10-15T18:03:23.532Z",
337
337
  "devdoc": {
338
338
  "details": "Implementation of the {IERC165} interface. Contracts that want to implement ERC-165 should inherit from this contract and override {supportsInterface} to check for the additional interface id that will be supported. For example: ```solidity function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId); } ```",
339
339
  "kind": "dev",
@@ -178,7 +178,7 @@
178
178
  },
179
179
  "networks": {},
180
180
  "schemaVersion": "3.4.16",
181
- "updatedAt": "2025-10-15T17:39:32.409Z",
181
+ "updatedAt": "2025-10-15T18:03:23.533Z",
182
182
  "devdoc": {
183
183
  "details": "Interface of the ERC-165 standard, as defined in the https://eips.ethereum.org/EIPS/eip-165[ERC]. Implementers can declare support of contract interfaces, which can then be queried by others ({ERC165Checker}). For an implementation, see {ERC165}.",
184
184
  "kind": "dev",
@@ -1120,7 +1120,7 @@
1120
1120
  },
1121
1121
  "networks": {},
1122
1122
  "schemaVersion": "3.4.16",
1123
- "updatedAt": "2025-10-15T17:39:32.405Z",
1123
+ "updatedAt": "2025-10-15T18:03:23.531Z",
1124
1124
  "devdoc": {
1125
1125
  "details": "Interface of the ERC-20 standard as defined in the ERC.",
1126
1126
  "events": {
@@ -245,7 +245,7 @@
245
245
  },
246
246
  "networks": {},
247
247
  "schemaVersion": "3.4.16",
248
- "updatedAt": "2025-10-15T17:39:32.410Z",
248
+ "updatedAt": "2025-10-15T18:03:23.533Z",
249
249
  "devdoc": {
250
250
  "details": "EIP2362 Interface for pull oracles https://github.com/adoracles/EIPs/blob/erc-2362/EIPS/eip-2362.md",
251
251
  "kind": "dev",
@@ -117,7 +117,7 @@
117
117
  "sourceMap": "",
118
118
  "deployedSourceMap": "",
119
119
  "source": "// SPDX-License-Identifier: MIT\n\npragma solidity >=0.8.0 <0.9.0;\n\ninterface IFeeds {\n function footprint() external view returns (bytes4);\n function hash(string calldata caption) external pure returns (bytes4);\n function lookupCaption(bytes4) external view returns (string memory);\n function supportedFeeds() external view returns (bytes4[] memory, string[] memory, bytes32[] memory);\n function supportsCaption(string calldata) external view returns (bool);\n function totalFeeds() external view returns (uint256);\n}",
120
- "sourcePath": "/home/asdpc/Witnet/witnet-solidity-bridge/contracts/interfaces/IFeeds.sol",
120
+ "sourcePath": "/home/runner/work/witnet-solidity-bridge/witnet-solidity-bridge/contracts/interfaces/IFeeds.sol",
121
121
  "ast": {
122
122
  "absolutePath": "project:/contracts/interfaces/IFeeds.sol",
123
123
  "exportedSymbols": {
@@ -668,7 +668,7 @@
668
668
  },
669
669
  "networks": {},
670
670
  "schemaVersion": "3.4.16",
671
- "updatedAt": "2025-10-15T17:39:32.730Z",
671
+ "updatedAt": "2025-10-15T18:03:23.778Z",
672
672
  "devdoc": {
673
673
  "kind": "dev",
674
674
  "methods": {},
@@ -189,7 +189,7 @@
189
189
  "sourceMap": "",
190
190
  "deployedSourceMap": "",
191
191
  "source": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\nimport \"../libs/Witnet.sol\";\n\ninterface IWitnetConsumer {\n\n /// @notice Method to be called from the WitnetOracle contract as soon as the given Witnet `queryId`\n /// @notice gets reported, if reported with no errors.\n /// @dev It should revert if called from any other address different to the WitnetOracle being used\n /// @dev by the WitnetConsumer contract. \n /// @param witnetQueryId The unique identifier of the Witnet query being reported.\n /// @param witnetResultTallyHash Hash of the commit/reveal witnessing act that took place in the Witnet blockahin.\n /// @param witnetResultTimestamp Timestamp at which the reported value was captured by the Witnet blockchain. \n /// @param witnetEvmFinalityBlock EVM block at which the provided data can be considered to be final.\n /// @param witnetResultCborValue The CBOR-encoded resulting value of the Witnet query being reported.\n function reportWitnetQueryResult(\n uint256 witnetQueryId, \n uint64 witnetResultTimestamp,\n bytes32 witnetResultTallyHash,\n uint256 witnetEvmFinalityBlock,\n WitnetCBOR.CBOR calldata witnetResultCborValue\n ) external;\n\n /// @notice Method to be called from the WitnetOracle contract as soon as the given Witnet `queryId`\n /// @notice gets reported, if reported WITH errors.\n /// @dev It should revert if called from any other address different to the WitnetOracle being used\n /// @dev by the WitnetConsumer contract. \n /// @param witnetQueryId The unique identifier of the Witnet query being reported.\n /// @param witnetResultTallyHash Hash of the commit/reveal witnessing act that took place in the Witnet blockahin.\n /// @param witnetResultTimestamp Timestamp at which the reported value was captured by the Witnet blockchain. \n /// @param witnetEvmFinalityBlock EVM block at which the provided data can be considered to be final.\n /// @param errorCode The error code enum identifying the error produced during resolution on the Witnet blockchain.\n /// @param errorArgs Error arguments, if any. An empty buffer is to be passed if no error arguments apply.\n function reportWitnetQueryError(\n uint256 witnetQueryId, \n uint64 witnetResultTimestamp,\n bytes32 witnetResultTallyHash,\n uint256 witnetEvmFinalityBlock,\n Witnet.ResultErrorCodes errorCode, \n WitnetCBOR.CBOR calldata errorArgs\n ) external;\n\n /// @notice Determines if Witnet queries can be reported from given address.\n /// @dev In practice, must only be true on the WitnetOracle address that's being used by\n /// @dev the WitnetConsumer to post queries. \n function reportableFrom(address) external view returns (bool);\n}",
192
- "sourcePath": "/home/asdpc/Witnet/witnet-solidity-bridge/contracts/interfaces/IWitnetConsumer.sol",
192
+ "sourcePath": "/home/runner/work/witnet-solidity-bridge/witnet-solidity-bridge/contracts/interfaces/IWitnetConsumer.sol",
193
193
  "ast": {
194
194
  "absolutePath": "project:/contracts/interfaces/IWitnetConsumer.sol",
195
195
  "exportedSymbols": {
@@ -751,7 +751,7 @@
751
751
  },
752
752
  "networks": {},
753
753
  "schemaVersion": "3.4.16",
754
- "updatedAt": "2025-10-15T17:39:32.731Z",
754
+ "updatedAt": "2025-10-15T18:03:23.778Z",
755
755
  "devdoc": {
756
756
  "kind": "dev",
757
757
  "methods": {
@@ -670,7 +670,7 @@
670
670
  "sourceMap": "",
671
671
  "deployedSourceMap": "",
672
672
  "source": "// SPDX-License-Identifier: MIT\n\npragma solidity >=0.8.0 <0.9.0;\n\nimport \"../WitnetOracle.sol\";\nimport \"../WitnetRequestBytecodes.sol\";\n\ninterface IWitnetFeeds {\n\n event WitnetFeedDeleted(bytes4 feedId);\n event WitnetFeedSettled(bytes4 feedId, bytes32 radHash);\n event WitnetFeedSolverSettled(bytes4 feedId, address solver);\n event WitnetRadonSLA(WitnetV2.RadonSLA sla);\n \n event WitnetFeedUpdateRequested(\n address indexed origin, \n bytes4 indexed feedId, \n uint256 witnetQueryId, \n uint256 witnetQueryEvmReward, \n WitnetV2.RadonSLA witnetQuerySLA\n );\n \n event WitnetFeedUpdateRequested(\n address indexed origin, \n bytes4 indexed feedId, \n uint256 witnetQueryId, \n uint256 witnetQueryReward\n );\n \n function dataType() external view returns (Witnet.RadonDataTypes);\n function prefix() external view returns (string memory);\n function registry() external view returns (WitnetRequestBytecodes);\n function witnet() external view returns (WitnetOracle);\n \n function defaultRadonSLA() external view returns (Witnet.RadonSLA memory);\n function estimateUpdateBaseFee(uint256 evmGasPrice) external view returns (uint);\n\n function lastValidQueryId(bytes4 feedId) external view returns (uint256);\n function lastValidResponse(bytes4 feedId) external view returns (WitnetV2.Response memory);\n\n function latestUpdateQueryId(bytes4 feedId) external view returns (uint256);\n function latestUpdateRequest(bytes4 feedId) external view returns (WitnetV2.Request memory);\n function latestUpdateResponse(bytes4 feedId) external view returns (WitnetV2.Response memory);\n function latestUpdateResponseStatus(bytes4 feedId) external view returns (WitnetV2.ResponseStatus);\n function latestUpdateResultError(bytes4 feedId) external view returns (Witnet.ResultError memory);\n \n function lookupWitnetBytecode(bytes4 feedId) external view returns (bytes memory);\n function lookupWitnetRadHash(bytes4 feedId) external view returns (bytes32);\n function lookupWitnetRetrievals(bytes4 feedId) external view returns (Witnet.RadonRetrieval[] memory);\n\n function requestUpdate(bytes4 feedId) external payable returns (uint256 usedFunds);\n function requestUpdate(bytes4 feedId, WitnetV2.RadonSLA calldata updateSLA) external payable returns (uint256 usedFunds);\n}",
673
- "sourcePath": "/home/asdpc/Witnet/witnet-solidity-bridge/contracts/interfaces/IWitnetFeeds.sol",
673
+ "sourcePath": "/home/runner/work/witnet-solidity-bridge/witnet-solidity-bridge/contracts/interfaces/IWitnetFeeds.sol",
674
674
  "ast": {
675
675
  "absolutePath": "project:/contracts/interfaces/IWitnetFeeds.sol",
676
676
  "exportedSymbols": {
@@ -2840,7 +2840,7 @@
2840
2840
  },
2841
2841
  "networks": {},
2842
2842
  "schemaVersion": "3.4.16",
2843
- "updatedAt": "2025-10-15T17:39:32.757Z",
2843
+ "updatedAt": "2025-10-15T18:03:23.779Z",
2844
2844
  "devdoc": {
2845
2845
  "kind": "dev",
2846
2846
  "methods": {},
@@ -210,7 +210,7 @@
210
210
  "sourceMap": "",
211
211
  "deployedSourceMap": "",
212
212
  "source": "// SPDX-License-Identifier: MIT\n\npragma solidity >=0.8.0 <0.9.0;\n\nimport \"../libs/WitnetV2.sol\";\nimport \"../WitnetRequest.sol\";\n\ninterface IWitnetFeedsAdmin {\n function acceptOwnership() external;\n function baseFeeOverheadPercentage() external view returns (uint16);\n function deleteFeed(string calldata caption) external;\n function deleteFeeds() external;\n function owner() external view returns (address);\n function pendingOwner() external returns (address);\n function settleBaseFeeOverheadPercentage(uint16) external;\n function settleDefaultRadonSLA(WitnetV2.RadonSLA calldata) external;\n function settleFeedRequest(string calldata caption, bytes32 radHash) external;\n function settleFeedRequest(string calldata caption, WitnetRequest request) external;\n function settleFeedRequest(string calldata caption, WitnetRequestTemplate template, string[][] calldata) external;\n function settleFeedSolver (string calldata caption, address solver, string[] calldata deps) external;\n function transferOwnership(address) external;\n}",
213
- "sourcePath": "/home/asdpc/Witnet/witnet-solidity-bridge/contracts/interfaces/IWitnetFeedsAdmin.sol",
213
+ "sourcePath": "/home/runner/work/witnet-solidity-bridge/witnet-solidity-bridge/contracts/interfaces/IWitnetFeedsAdmin.sol",
214
214
  "ast": {
215
215
  "absolutePath": "project:/contracts/interfaces/IWitnetFeedsAdmin.sol",
216
216
  "exportedSymbols": {
@@ -1212,7 +1212,7 @@
1212
1212
  },
1213
1213
  "networks": {},
1214
1214
  "schemaVersion": "3.4.16",
1215
- "updatedAt": "2025-10-15T17:39:32.759Z",
1215
+ "updatedAt": "2025-10-15T18:03:23.780Z",
1216
1216
  "devdoc": {
1217
1217
  "kind": "dev",
1218
1218
  "methods": {},
@@ -610,7 +610,7 @@
610
610
  "sourceMap": "",
611
611
  "deployedSourceMap": "",
612
612
  "source": "// SPDX-License-Identifier: MIT\npragma solidity >=0.7.0 <0.9.0;\n\nimport \"../libs/WitnetV2.sol\";\n\ninterface IWitnetOracle {\n\n /// @notice Estimate the minimum reward required for posting a data request.\n /// @dev Underestimates if the size of returned data is greater than `resultMaxSize`. \n /// @param gasPrice Expected gas price to pay upon posting the data request.\n /// @param resultMaxSize Maximum expected size of returned data (in bytes). \n function estimateBaseFee(uint256 gasPrice, uint16 resultMaxSize) external view returns (uint256);\n\n /// @notice Estimate the minimum reward required for posting a data request.\n /// @dev Fails if the RAD hash was not previously verified on the WitnetRequestBytecodes registry.\n /// @param gasPrice Expected gas price to pay upon posting the data request.\n /// @param radHash The RAD hash of the data request to be solved by Witnet.\n function estimateBaseFee(uint256 gasPrice, bytes32 radHash) external view returns (uint256);\n \n /// @notice Estimate the minimum reward required for posting a data request with a callback.\n /// @param gasPrice Expected gas price to pay upon posting the data request.\n /// @param callbackGasLimit Maximum gas to be spent when reporting the data request result.\n function estimateBaseFeeWithCallback(uint256 gasPrice, uint24 callbackGasLimit) external view returns (uint256);\n \n /// @notice Retrieves a copy of all Witnet-provable data related to a previously posted request, \n /// removing the whole query from the WRB storage.\n /// @dev Fails if the query was not in 'Reported' status, or called from an address different to\n /// @dev the one that actually posted the given request.\n /// @param queryId The unique query identifier.\n function fetchQueryResponse(uint256 queryId) external returns (WitnetV2.Response memory);\n \n /// @notice Gets the whole Query data contents, if any, no matter its current status.\n function getQuery(uint256 queryId) external view returns (WitnetV2.Query memory);\n\n /// @notice Gets the current EVM reward the report can claim, if not done yet.\n function getQueryEvmReward(uint256 queryId) external view returns (uint256);\n\n /// @notice Retrieves the RAD hash and SLA parameters of the given query.\n /// @param queryId The unique query identifier.\n function getQueryRequest(uint256 queryId) external view returns (WitnetV2.Request memory);\n\n /// @notice Retrieves the whole `Witnet.Response` record referred to a previously posted Witnet Data Request.\n /// @param queryId The unique query identifier.\n function getQueryResponse(uint256 queryId) external view returns (WitnetV2.Response memory);\n\n /// @notice Returns query's result current status from a requester's point of view:\n /// @notice - 0 => Void: the query is either non-existent or deleted;\n /// @notice - 1 => Awaiting: the query has not yet been reported;\n /// @notice - 2 => Ready: the query response was finalized, and contains a result with no erros.\n /// @notice - 3 => Error: the query response was finalized, and contains a result with errors.\n /// @param queryId The unique query identifier.\n function getQueryResponseStatus(uint256 queryId) external view returns (WitnetV2.ResponseStatus);\n\n /// @notice Retrieves the CBOR-encoded buffer containing the Witnet-provided result to the given query.\n /// @param queryId The unique query identifier.\n function getQueryResultCborBytes(uint256 queryId) external view returns (bytes memory);\n\n /// @notice Gets error code identifying some possible failure on the resolution of the given query.\n /// @param queryId The unique query identifier.\n function getQueryResultError(uint256 queryId) external view returns (Witnet.ResultError memory);\n\n /// @notice Gets current status of given query.\n function getQueryStatus(uint256 queryId) external view returns (WitnetV2.QueryStatus);\n \n /// @notice Get current status of all given query ids.\n function getQueryStatusBatch(uint256[] calldata queryIds) external view returns (WitnetV2.QueryStatus[] memory);\n\n /// @notice Returns next query id to be generated by the Witnet Request Board.\n function getNextQueryId() external view returns (uint256);\n\n /// @notice Requests the execution of the given Witnet Data Request, in expectation that it will be relayed and \n /// @notice solved by the Witnet blockchain. A reward amount is escrowed by the Witnet Request Board that will be \n /// @notice transferred to the reporter who relays back the Witnet-provable result to this request.\n /// @dev Reasons to fail:\n /// @dev - the RAD hash was not previously verified by the WitnetRequestBytecodes registry;\n /// @dev - invalid SLA parameters were provided;\n /// @dev - insufficient value is paid as reward.\n /// @param queryRAD The RAD hash of the data request to be solved by Witnet.\n /// @param querySLA The data query SLA to be fulfilled on the Witnet blockchain.\n /// @return queryId Unique query identifier.\n function postRequest(\n bytes32 queryRAD, \n WitnetV2.RadonSLA calldata querySLA\n ) external payable returns (uint256 queryId);\n\n /// @notice Requests the execution of the given Witnet Data Request, in expectation that it will be relayed and solved by \n /// @notice the Witnet blockchain. A reward amount is escrowed by the Witnet Request Board that will be transferred to the \n /// @notice reporter who relays back the Witnet-provable result to this request. The Witnet-provable result will be reported\n /// @notice directly to the requesting contract. If the report callback fails for any reason, an `WitnetQueryResponseDeliveryFailed`\n /// @notice will be triggered, and the Witnet audit trail will be saved in storage, but not so the actual CBOR-encoded result.\n /// @dev Reasons to fail:\n /// @dev - the caller is not a contract implementing the IWitnetConsumer interface;\n /// @dev - the RAD hash was not previously verified by the WitnetRequestBytecodes registry;\n /// @dev - invalid SLA parameters were provided;\n /// @dev - insufficient value is paid as reward.\n /// @param queryRAD The RAD hash of the data request to be solved by Witnet.\n /// @param querySLA The data query SLA to be fulfilled on the Witnet blockchain.\n /// @param queryCallbackGasLimit Maximum gas to be spent when reporting the data request result.\n /// @return queryId Unique query identifier.\n function postRequestWithCallback(\n bytes32 queryRAD, \n WitnetV2.RadonSLA calldata querySLA, \n uint24 queryCallbackGasLimit\n ) external payable returns (uint256 queryId);\n\n /// @notice Requests the execution of the given Witnet Data Request, in expectation that it will be relayed and solved by \n /// @notice the Witnet blockchain. A reward amount is escrowed by the Witnet Request Board that will be transferred to the \n /// @notice reporter who relays back the Witnet-provable result to this request. The Witnet-provable result will be reported\n /// @notice directly to the requesting contract. If the report callback fails for any reason, a `WitnetQueryResponseDeliveryFailed`\n /// @notice event will be triggered, and the Witnet audit trail will be saved in storage, but not so the CBOR-encoded result.\n /// @dev Reasons to fail:\n /// @dev - the caller is not a contract implementing the IWitnetConsumer interface;\n /// @dev - the provided bytecode is empty;\n /// @dev - invalid SLA parameters were provided;\n /// @dev - insufficient value is paid as reward.\n /// @param queryUnverifiedBytecode The (unverified) bytecode containing the actual data request to be solved by the Witnet blockchain.\n /// @param querySLA The data query SLA to be fulfilled on the Witnet blockchain.\n /// @param queryCallbackGasLimit Maximum gas to be spent when reporting the data request result.\n /// @return queryId Unique query identifier.\n function postRequestWithCallback(\n bytes calldata queryUnverifiedBytecode,\n WitnetV2.RadonSLA calldata querySLA, \n uint24 queryCallbackGasLimit\n ) external payable returns (uint256 queryId);\n\n /// @notice Increments the reward of a previously posted request by adding the transaction value to it.\n /// @param queryId The unique query identifier.\n function upgradeQueryEvmReward(uint256 queryId) external payable;\n\n}\n",
613
- "sourcePath": "/home/asdpc/Witnet/witnet-solidity-bridge/contracts/interfaces/IWitnetOracle.sol",
613
+ "sourcePath": "/home/runner/work/witnet-solidity-bridge/witnet-solidity-bridge/contracts/interfaces/IWitnetOracle.sol",
614
614
  "ast": {
615
615
  "absolutePath": "project:/contracts/interfaces/IWitnetOracle.sol",
616
616
  "exportedSymbols": {
@@ -2591,7 +2591,7 @@
2591
2591
  },
2592
2592
  "networks": {},
2593
2593
  "schemaVersion": "3.4.16",
2594
- "updatedAt": "2025-10-15T17:39:32.761Z",
2594
+ "updatedAt": "2025-10-15T18:03:23.781Z",
2595
2595
  "devdoc": {
2596
2596
  "kind": "dev",
2597
2597
  "methods": {
@@ -148,7 +148,7 @@
148
148
  "sourceMap": "",
149
149
  "deployedSourceMap": "",
150
150
  "source": "// SPDX-License-Identifier: MIT\npragma solidity >=0.7.0 <0.9.0;\n\nimport \"../libs/WitnetV2.sol\";\n\ninterface IWitnetOracleEvents {\n \n /// Emitted every time a new query containing some verified data request is posted to the WRB.\n event WitnetQuery(\n uint256 id, \n uint256 evmReward,\n WitnetV2.RadonSLA witnetSLA\n );\n\n /// Emitted when a query with no callback gets reported into the WRB.\n event WitnetQueryResponse(\n uint256 id, \n uint256 evmGasPrice\n );\n\n /// Emitted when a query with a callback gets successfully reported into the WRB.\n event WitnetQueryResponseDelivered(\n uint256 id, \n uint256 evmGasPrice, \n uint256 evmCallbackGas\n );\n\n /// Emitted when a query with a callback cannot get reported into the WRB.\n event WitnetQueryResponseDeliveryFailed(\n uint256 id, \n bytes resultCborBytes,\n uint256 evmGasPrice, \n uint256 evmCallbackActualGas, \n string evmCallbackRevertReason\n );\n\n /// Emitted when the reward of some not-yet reported query is upgraded.\n event WitnetQueryRewardUpgraded(\n uint256 id, \n uint256 evmReward\n );\n\n}\n",
151
- "sourcePath": "/home/asdpc/Witnet/witnet-solidity-bridge/contracts/interfaces/IWitnetOracleEvents.sol",
151
+ "sourcePath": "/home/runner/work/witnet-solidity-bridge/witnet-solidity-bridge/contracts/interfaces/IWitnetOracleEvents.sol",
152
152
  "ast": {
153
153
  "absolutePath": "project:/contracts/interfaces/IWitnetOracleEvents.sol",
154
154
  "exportedSymbols": {
@@ -775,7 +775,7 @@
775
775
  },
776
776
  "networks": {},
777
777
  "schemaVersion": "3.4.16",
778
- "updatedAt": "2025-10-15T17:39:32.763Z",
778
+ "updatedAt": "2025-10-15T18:03:23.782Z",
779
779
  "devdoc": {
780
780
  "kind": "dev",
781
781
  "methods": {},
@@ -192,7 +192,7 @@
192
192
  "sourceMap": "",
193
193
  "deployedSourceMap": "",
194
194
  "source": "// SPDX-License-Identifier: MIT\n\npragma solidity >=0.7.0 <0.9.0;\n\nimport \"../libs/WitnetV2.sol\";\n\n/// @title The Witnet Request Board Reporter interface.\n/// @author The Witnet Foundation.\ninterface IWitnetOracleReporter {\n\n /// @notice Estimates the actual earnings in WEI, that a reporter would get by reporting result to given query,\n /// @notice based on the gas price of the calling transaction. Data requesters should consider upgrading the reward on \n /// @notice queries providing no actual earnings.\n function estimateReportEarnings(\n uint256[] calldata witnetQueryIds, \n bytes calldata reportTxMsgData,\n uint256 reportTxGasPrice,\n uint256 nanoWitPrice\n ) external view returns (uint256, uint256);\n\n /// @notice Retrieves the Witnet Data Request bytecodes and SLAs of previously posted queries.\n /// @dev Returns empty buffer if the query does not exist.\n /// @param queryIds Query identifiers.\n function extractWitnetDataRequests(uint256[] calldata queryIds) \n external view returns (bytes[] memory drBytecodes);\n\n /// @notice Reports the Witnet-provided result to a previously posted request. \n /// @dev Will assume `block.timestamp` as the timestamp at which the request was solved.\n /// @dev Fails if:\n /// @dev - the `_witnetQueryId` is not in 'Posted' status.\n /// @dev - provided `_tallyHash` is zero;\n /// @dev - length of provided `_result` is zero.\n /// @param witnetQueryId The unique identifier of the data request.\n /// @param witnetQueryResultTallyHash The hash of the corresponding data request transaction in Witnet.\n /// @param witnetQueryResultCborBytes The result itself as bytes.\n function reportResult(\n uint256 witnetQueryId,\n bytes32 witnetQueryResultTallyHash,\n bytes calldata witnetQueryResultCborBytes\n ) external returns (uint256);\n\n /// @notice Reports the Witnet-provided result to a previously posted request.\n /// @dev Fails if:\n /// @dev - called from unauthorized address;\n /// @dev - the `_witnetQueryId` is not in 'Posted' status.\n /// @dev - provided `_tallyHash` is zero;\n /// @dev - length of provided `_result` is zero.\n /// @param witnetQueryId The unique query identifier\n /// @param witnetQueryResultTimestamp The timestamp of the solving tally transaction in Witnet.\n /// @param witnetQueryResultTallyHash The hash of the corresponding data request transaction in Witnet.\n /// @param witnetQueryResultCborBytes The result itself as bytes.\n function reportResult(\n uint256 witnetQueryId,\n uint32 witnetQueryResultTimestamp,\n bytes32 witnetQueryResultTallyHash,\n bytes calldata witnetQueryResultCborBytes\n ) external returns (uint256);\n\n /// @notice Reports Witnet-provided results to multiple requests within a single EVM tx.\n /// @notice Emits either a WitnetQueryResponse* or a BatchReportError event per batched report.\n /// @dev Fails only if called from unauthorized address.\n /// @param _batchResults Array of BatchResult structs, every one containing:\n /// - unique query identifier;\n /// - timestamp of the solving tally txs in Witnet. If zero is provided, EVM-timestamp will be used instead;\n /// - hash of the corresponding data request tx at the Witnet side-chain level;\n /// - data request result in raw bytes.\n function reportResultBatch(BatchResult[] calldata _batchResults) external returns (uint256);\n \n struct BatchResult {\n uint256 queryId;\n uint32 queryResultTimestamp;\n bytes32 queryResultTallyHash;\n bytes queryResultCborBytes;\n }\n\n event BatchReportError(uint256 queryId, string reason);\n}\n",
195
- "sourcePath": "/home/asdpc/Witnet/witnet-solidity-bridge/contracts/interfaces/IWitnetOracleReporter.sol",
195
+ "sourcePath": "/home/runner/work/witnet-solidity-bridge/witnet-solidity-bridge/contracts/interfaces/IWitnetOracleReporter.sol",
196
196
  "ast": {
197
197
  "absolutePath": "project:/contracts/interfaces/IWitnetOracleReporter.sol",
198
198
  "exportedSymbols": {
@@ -1206,7 +1206,7 @@
1206
1206
  },
1207
1207
  "networks": {},
1208
1208
  "schemaVersion": "3.4.16",
1209
- "updatedAt": "2025-10-15T17:39:32.764Z",
1209
+ "updatedAt": "2025-10-15T18:03:23.782Z",
1210
1210
  "devdoc": {
1211
1211
  "author": "The Witnet Foundation.",
1212
1212
  "kind": "dev",
@@ -136,7 +136,7 @@
136
136
  "sourceMap": "",
137
137
  "deployedSourceMap": "",
138
138
  "source": "// SPDX-License-Identifier: MIT\n\npragma solidity >=0.8.0 <0.9.0;\n\nimport \"./IWitnetPriceSolver.sol\";\n\ninterface IWitnetPriceFeeds { \n /// ======================================================================================================\n /// --- IFeeds extension ---------------------------------------------------------------------------------\n \n function lookupDecimals(bytes4 feedId) external view returns (uint8); \n function lookupPriceSolver(bytes4 feedId) external view returns (\n IWitnetPriceSolver solverAddress, \n string[] memory solverDeps\n );\n\n /// ======================================================================================================\n /// --- IWitnetFeeds extension ---------------------------------------------------------------------------\n\n function latestPrice(bytes4 feedId) external view returns (IWitnetPriceSolver.Price memory);\n function latestPrices(bytes4[] calldata feedIds) external view returns (IWitnetPriceSolver.Price[] memory);\n}",
139
- "sourcePath": "/home/asdpc/Witnet/witnet-solidity-bridge/contracts/interfaces/IWitnetPriceFeeds.sol",
139
+ "sourcePath": "/home/runner/work/witnet-solidity-bridge/witnet-solidity-bridge/contracts/interfaces/IWitnetPriceFeeds.sol",
140
140
  "ast": {
141
141
  "absolutePath": "project:/contracts/interfaces/IWitnetPriceFeeds.sol",
142
142
  "exportedSymbols": {
@@ -649,7 +649,7 @@
649
649
  },
650
650
  "networks": {},
651
651
  "schemaVersion": "3.4.16",
652
- "updatedAt": "2025-10-15T17:39:32.766Z",
652
+ "updatedAt": "2025-10-15T18:03:23.783Z",
653
653
  "devdoc": {
654
654
  "kind": "dev",
655
655
  "methods": {},
@@ -109,7 +109,7 @@
109
109
  "sourceMap": "",
110
110
  "deployedSourceMap": "",
111
111
  "source": "// SPDX-License-Identifier: MIT\n\npragma solidity >=0.8.0 <0.9.0;\n\nimport \"../libs/WitnetV2.sol\";\n\ninterface IWitnetPriceSolver {\n struct Price {\n uint value;\n uint timestamp;\n bytes32 tallyHash;\n WitnetV2.ResponseStatus status;\n }\n function class() external pure returns (string memory);\n function delegator() external view returns (address);\n function solve(bytes4 feedId) external view returns (Price memory);\n function specs() external pure returns (bytes4);\n function validate(bytes4 feedId, string[] calldata initdata) external;\n}",
112
- "sourcePath": "/home/asdpc/Witnet/witnet-solidity-bridge/contracts/interfaces/IWitnetPriceSolver.sol",
112
+ "sourcePath": "/home/runner/work/witnet-solidity-bridge/witnet-solidity-bridge/contracts/interfaces/IWitnetPriceSolver.sol",
113
113
  "ast": {
114
114
  "absolutePath": "project:/contracts/interfaces/IWitnetPriceSolver.sol",
115
115
  "exportedSymbols": {
@@ -670,7 +670,7 @@
670
670
  },
671
671
  "networks": {},
672
672
  "schemaVersion": "3.4.16",
673
- "updatedAt": "2025-10-15T17:39:32.767Z",
673
+ "updatedAt": "2025-10-15T18:03:23.783Z",
674
674
  "devdoc": {
675
675
  "kind": "dev",
676
676
  "methods": {},
@@ -84,7 +84,7 @@
84
84
  "sourceMap": "",
85
85
  "deployedSourceMap": "",
86
86
  "source": "// SPDX-License-Identifier: MIT\n\npragma solidity >=0.8.0 <0.9.0;\n\ninterface IWitnetPriceSolverDeployer {\n event WitnetPriceSolverDeployed(address solver, bytes32 codehash, bytes constructorParams);\n function deployPriceSolver(bytes calldata initcode, bytes calldata additionalParams) external returns (address);\n function determinePriceSolverAddress(bytes calldata initcode, bytes calldata additionalParams) external view returns (address);\n}",
87
- "sourcePath": "/home/asdpc/Witnet/witnet-solidity-bridge/contracts/interfaces/IWitnetPriceSolverDeployer.sol",
87
+ "sourcePath": "/home/runner/work/witnet-solidity-bridge/witnet-solidity-bridge/contracts/interfaces/IWitnetPriceSolverDeployer.sol",
88
88
  "ast": {
89
89
  "absolutePath": "project:/contracts/interfaces/IWitnetPriceSolverDeployer.sol",
90
90
  "exportedSymbols": {
@@ -465,7 +465,7 @@
465
465
  },
466
466
  "networks": {},
467
467
  "schemaVersion": "3.4.16",
468
- "updatedAt": "2025-10-15T17:39:32.768Z",
468
+ "updatedAt": "2025-10-15T18:03:23.784Z",
469
469
  "devdoc": {
470
470
  "kind": "dev",
471
471
  "methods": {},
@@ -294,7 +294,7 @@
294
294
  "sourceMap": "",
295
295
  "deployedSourceMap": "",
296
296
  "source": "// SPDX-License-Identifier: MIT\n\npragma solidity >=0.7.0 <0.9.0;\npragma experimental ABIEncoderV2;\n\nimport \"../WitnetOracle.sol\";\n\n/// @title The Witnet Randomness generator interface.\n/// @author Witnet Foundation.\ninterface IWitnetRandomness {\n \n /// @notice Returns amount of wei required to be paid as a fee when requesting randomization with a \n /// transaction gas price as the one given.\n function estimateRandomizeFee(uint256 evmGasPrice) external view returns (uint256);\n\n /// @notice Retrieves the result of keccak256-hashing the given block number with the randomness value \n /// @notice generated by the Witnet Oracle blockchain in response to the first non-errored randomize request solved \n /// @notice after such block number.\n /// @dev Reverts if:\n /// @dev i. no `randomize()` was requested on neither the given block, nor afterwards.\n /// @dev ii. the first non-errored `randomize()` request found on or after the given block is not solved yet.\n /// @dev iii. all `randomize()` requests that took place on or after the given block were solved with errors.\n /// @param blockNumber Block number from which the search will start.\n function fetchRandomnessAfter(uint256 blockNumber) external view returns (bytes32);\n\n /// @notice Retrieves the actual random value, unique hash and timestamp of the witnessing commit/reveal act that took\n /// @notice place in the Witnet Oracle blockchain in response to the first non-errored randomize request\n /// @notice solved after the given block number.\n /// @dev Reverts if:\n /// @dev i. no `randomize()` was requested on neither the given block, nor afterwards.\n /// @dev ii. the first non-errored `randomize()` request found on or after the given block is not solved yet.\n /// @dev iii. all `randomize()` requests that took place on or after the given block were solved with errors.\n /// @param blockNumber Block number from which the search will start.\n /// @return witnetResultRandomness Random value provided by the Witnet blockchain and used for solving randomness after given block.\n /// @return witnetResultTimestamp Timestamp at which the randomness value was generated by the Witnet blockchain.\n /// @return witnetResultTallyHash Hash of the witnessing commit/reveal act that took place on the Witnet blockchain.\n /// @return witnetResultFinalityBlock EVM block number from which the provided randomness can be considered to be final.\n function fetchRandomnessAfterProof(uint256 blockNumber) external view returns (\n bytes32 witnetResultRandomness,\n uint64 witnetResultTimestamp, \n bytes32 witnetResultTallyHash,\n uint256 witnetResultFinalityBlock\n ); \n\n /// @notice Returns last block number on which a randomize was requested.\n function getLastRandomizeBlock() external view returns (uint256);\n\n /// @notice Retrieves metadata related to the randomize request that got posted to the \n /// @notice Witnet Oracle contract on the given block number.\n /// @dev Returns zero values if no randomize request was actually posted on the given block.\n /// @return witnetQueryId Identifier of the underlying Witnet query created on the given block number. \n /// @return prevRandomizeBlock Block number in which a randomize request got posted just before this one. 0 if none.\n /// @return nextRandomizeBlock Block number in which a randomize request got posted just after this one, 0 if none.\n function getRandomizeData(uint256 blockNumber) external view returns (\n uint256 witnetQueryId,\n uint256 prevRandomizeBlock, \n uint256 nextRandomizeBlock\n );\n \n /// @notice Returns the number of the next block in which a randomize request was posted after the given one. \n /// @param blockNumber Block number from which the search will start.\n /// @return Number of the first block found after the given one, or `0` otherwise.\n function getRandomizeNextBlock(uint256 blockNumber) external view returns (uint256); \n\n /// @notice Returns the number of the previous block in which a randomize request was posted before the given one.\n /// @param blockNumber Block number from which the search will start.\n /// @return First block found before the given one, or `0` otherwise.\n function getRandomizePrevBlock(uint256 blockNumber) external view returns (uint256);\n\n /// @notice Gets current status of the first non-errored randomize request posted on or after the given block number.\n /// @dev Possible values:\n /// @dev - 0 -> Void: no randomize request was actually posted on or after the given block number.\n /// @dev - 1 -> Awaiting: a randomize request was found but it's not yet solved by the Witnet blockchain.\n /// @dev - 2 -> Ready: a successfull randomize value was reported and ready to be read.\n /// @dev - 3 -> Error: all randomize resolutions after the given block were solved with errors.\n /// @dev - 4 -> Finalizing: a randomize resolution has been reported from the Witnet blockchain, but it's not yet final. \n function getRandomizeStatus(uint256 blockNumber) external view returns (WitnetV2.ResponseStatus);\n\n /// @notice Returns `true` only if a successfull resolution from the Witnet blockchain is found for the first \n /// @notice non-errored randomize request posted on or after the given block number.\n function isRandomized(uint256 blockNumber) external view returns (bool);\n\n /// @notice Generates a pseudo-random number uniformly distributed within the range [0 .. _range), by using \n /// @notice the given `nonce` and the randomness returned by `getRandomnessAfter(blockNumber)`. \n /// @dev Fails under same conditions as `getRandomnessAfter(uint256)` does.\n /// @param range Range within which the uniformly-distributed random number will be generated.\n /// @param nonce Nonce value enabling multiple random numbers from the same randomness value.\n /// @param blockNumber Block number from which the search for the first randomize request solved aftewards will start.\n function random(uint32 range, uint256 nonce, uint256 blockNumber) external view returns (uint32);\n\n /// @notice Requests the Witnet oracle to generate an EVM-agnostic and trustless source of randomness. \n /// @dev Only one randomness request per block will be actually posted to the Witnet Oracle. \n /// @dev Unused funds will be transfered back to the `msg.sender`. \n /// @return Funds actually paid as randomize fee. \n function randomize() external payable returns (uint256);\n\n /// @notice Returns address of the Witnet Oracle bridging contract being used for solving randomness requests.\n function witnet() external view returns (WitnetOracle);\n\n /// @notice Returns the SLA parameters required for the Witnet Oracle blockchain to fulfill \n /// @notice when solving randomness requests:\n /// @notice - number of witnessing nodes contributing to randomness generation\n /// @notice - reward in $nanoWIT received per witnessing node in the Witnet blockchain\n function witnetQuerySLA() external view returns (WitnetV2.RadonSLA memory);\n\n /// @notice Returns the unique identifier of the Witnet-compliant data request being used for solving randomness.\n function witnetRadHash() external view returns (bytes32);\n}\n",
297
- "sourcePath": "/home/asdpc/Witnet/witnet-solidity-bridge/contracts/interfaces/IWitnetRandomness.sol",
297
+ "sourcePath": "/home/runner/work/witnet-solidity-bridge/witnet-solidity-bridge/contracts/interfaces/IWitnetRandomness.sol",
298
298
  "ast": {
299
299
  "absolutePath": "project:/contracts/interfaces/IWitnetRandomness.sol",
300
300
  "exportedSymbols": {
@@ -1737,7 +1737,7 @@
1737
1737
  },
1738
1738
  "networks": {},
1739
1739
  "schemaVersion": "3.4.16",
1740
- "updatedAt": "2025-10-15T17:39:32.770Z",
1740
+ "updatedAt": "2025-10-15T18:03:23.784Z",
1741
1741
  "devdoc": {
1742
1742
  "author": "Witnet Foundation.",
1743
1743
  "kind": "dev",
@@ -108,7 +108,7 @@
108
108
  "sourceMap": "",
109
109
  "deployedSourceMap": "",
110
110
  "source": "// SPDX-License-Identifier: MIT\n\npragma solidity >=0.8.0 <0.9.0;\n\nimport \"../libs/WitnetV2.sol\";\n\ninterface IWitnetRandomnessAdmin {\n function acceptOwnership() external;\n function baseFeeOverheadPercentage() external view returns (uint16);\n function owner() external view returns (address);\n function pendingOwner() external returns (address);\n function transferOwnership(address) external;\n function settleBaseFeeOverheadPercentage(uint16) external;\n function settleWitnetQuerySLA(WitnetV2.RadonSLA calldata) external;\n}",
111
- "sourcePath": "/home/asdpc/Witnet/witnet-solidity-bridge/contracts/interfaces/IWitnetRandomnessAdmin.sol",
111
+ "sourcePath": "/home/runner/work/witnet-solidity-bridge/witnet-solidity-bridge/contracts/interfaces/IWitnetRandomnessAdmin.sol",
112
112
  "ast": {
113
113
  "absolutePath": "project:/contracts/interfaces/IWitnetRandomnessAdmin.sol",
114
114
  "exportedSymbols": {
@@ -559,7 +559,7 @@
559
559
  },
560
560
  "networks": {},
561
561
  "schemaVersion": "3.4.16",
562
- "updatedAt": "2025-10-15T17:39:32.771Z",
562
+ "updatedAt": "2025-10-15T18:03:23.785Z",
563
563
  "devdoc": {
564
564
  "kind": "dev",
565
565
  "methods": {},
@@ -60,7 +60,7 @@
60
60
  "sourceMap": "",
61
61
  "deployedSourceMap": "",
62
62
  "source": "// SPDX-License-Identifier: MIT\n\npragma solidity >=0.7.0 <0.9.0;\npragma experimental ABIEncoderV2;\n\nimport \"../libs/WitnetV2.sol\";\n\n/// @title The Witnet Randomness generator interface.\n/// @author Witnet Foundation.\ninterface IWitnetRandomnessEvents {\n event Randomizing(\n uint256 blockNumber, \n uint256 evmTxGasPrice,\n uint256 evmRandomizeFee,\n uint256 witnetQueryId, \n WitnetV2.RadonSLA witnetQuerySLA\n );\n}\n",
63
- "sourcePath": "/home/asdpc/Witnet/witnet-solidity-bridge/contracts/interfaces/IWitnetRandomnessEvents.sol",
63
+ "sourcePath": "/home/runner/work/witnet-solidity-bridge/witnet-solidity-bridge/contracts/interfaces/IWitnetRandomnessEvents.sol",
64
64
  "ast": {
65
65
  "absolutePath": "project:/contracts/interfaces/IWitnetRandomnessEvents.sol",
66
66
  "exportedSymbols": {
@@ -324,7 +324,7 @@
324
324
  },
325
325
  "networks": {},
326
326
  "schemaVersion": "3.4.16",
327
- "updatedAt": "2025-10-15T17:39:32.772Z",
327
+ "updatedAt": "2025-10-15T18:03:23.785Z",
328
328
  "devdoc": {
329
329
  "author": "Witnet Foundation.",
330
330
  "kind": "dev",
@@ -63,7 +63,7 @@
63
63
  "sourceMap": "",
64
64
  "deployedSourceMap": "",
65
65
  "source": "// SPDX-License-Identifier: MIT\n\npragma solidity >=0.7.0 <0.9.0;\n\n/// @title Witnet Request Board basic administration interface.\n/// @author The Witnet Foundation.\ninterface IWitnetRequestBoardAdmin {\n \n event OwnershipTransferred(address indexed from, address indexed to);\n\n /// Gets admin/owner address.\n function owner() external view returns (address);\n\n /// Transfers ownership.\n function transferOwnership(address) external;\n\n /// Accepts ownership.\n function acceptOwnership() external;\n}\n",
66
- "sourcePath": "/home/asdpc/Witnet/witnet-solidity-bridge/contracts/interfaces/IWitnetRequestBoardAdmin.sol",
66
+ "sourcePath": "/home/runner/work/witnet-solidity-bridge/witnet-solidity-bridge/contracts/interfaces/IWitnetRequestBoardAdmin.sol",
67
67
  "ast": {
68
68
  "absolutePath": "project:/contracts/interfaces/IWitnetRequestBoardAdmin.sol",
69
69
  "exportedSymbols": {
@@ -358,7 +358,7 @@
358
358
  },
359
359
  "networks": {},
360
360
  "schemaVersion": "3.4.16",
361
- "updatedAt": "2025-10-15T17:39:32.773Z",
361
+ "updatedAt": "2025-10-15T18:03:23.786Z",
362
362
  "devdoc": {
363
363
  "author": "The Witnet Foundation.",
364
364
  "kind": "dev",
@@ -82,7 +82,7 @@
82
82
  "sourceMap": "",
83
83
  "deployedSourceMap": "",
84
84
  "source": "// SPDX-License-Identifier: MIT\n\npragma solidity >=0.7.0 <0.9.0;\n\n/// @title Witnet Request Board ACLs administration interface.\n/// @author The Witnet Foundation.\ninterface IWitnetRequestBoardAdminACLs {\n \n event ReportersSet(address[] reporters);\n event ReportersUnset(address[] reporters);\n\n /// Tells whether given address is included in the active reporters control list.\n function isReporter(address) external view returns (bool);\n\n /// Adds given addresses to the active reporters control list.\n /// @dev Can only be called from the owner address.\n /// @dev Emits the `ReportersSet` event. \n function setReporters(address[] calldata reporters) external;\n\n /// Removes given addresses from the active reporters control list.\n /// @dev Can only be called from the owner address.\n /// @dev Emits the `ReportersUnset` event. \n function unsetReporters(address[] calldata reporters) external;\n}\n",
85
- "sourcePath": "/home/asdpc/Witnet/witnet-solidity-bridge/contracts/interfaces/IWitnetRequestBoardAdminACLs.sol",
85
+ "sourcePath": "/home/runner/work/witnet-solidity-bridge/witnet-solidity-bridge/contracts/interfaces/IWitnetRequestBoardAdminACLs.sol",
86
86
  "ast": {
87
87
  "absolutePath": "project:/contracts/interfaces/IWitnetRequestBoardAdminACLs.sol",
88
88
  "exportedSymbols": {
@@ -487,7 +487,7 @@
487
487
  },
488
488
  "networks": {},
489
489
  "schemaVersion": "3.4.16",
490
- "updatedAt": "2025-10-15T17:39:32.774Z",
490
+ "updatedAt": "2025-10-15T18:03:23.786Z",
491
491
  "devdoc": {
492
492
  "author": "The Witnet Foundation.",
493
493
  "kind": "dev",
@@ -711,7 +711,7 @@
711
711
  "sourceMap": "",
712
712
  "deployedSourceMap": "",
713
713
  "source": "// SPDX-License-Identifier: MIT\npragma solidity >=0.8.0 <0.9.0;\n\nimport \"../libs/WitnetV2.sol\";\n\ninterface IWitnetRequestBytecodes {\n\n error UnknownRadonRetrieval(bytes32 hash);\n error UnknownRadonReducer(bytes32 hash);\n error UnknownRadonRequest(bytes32 hash);\n\n event NewDataProvider(uint256 index);\n event NewRadonRetrievalHash(bytes32 hash);\n event NewRadonReducerHash(bytes32 hash);\n event NewRadHash(bytes32 hash);\n\n function bytecodeOf(bytes32 radHash) external view returns (bytes memory);\n function bytecodeOf(bytes32 radHash, WitnetV2.RadonSLA calldata sla) external view returns (bytes memory);\n function bytecodeOf(bytes calldata radBytecode, WitnetV2.RadonSLA calldata sla) external view returns (bytes memory);\n \n function hashOf(bytes calldata) external view returns (bytes32);\n\n function lookupDataProvider(uint256 index) external view returns (string memory, uint);\n function lookupDataProviderIndex(string calldata authority) external view returns (uint);\n function lookupDataProviderSources(uint256 index, uint256 offset, uint256 length) external view returns (bytes32[] memory);\n\n function lookupRadonReducer(bytes32 hash) external view returns (Witnet.RadonReducer memory);\n \n function lookupRadonRetrieval(bytes32 hash) external view returns (Witnet.RadonRetrieval memory);\n function lookupRadonRetrievalArgsCount(bytes32 hash) external view returns (uint8);\n function lookupRadonRetrievalResultDataType(bytes32 hash) external view returns (Witnet.RadonDataTypes);\n \n function lookupRadonRequestAggregator(bytes32 radHash) external view returns (Witnet.RadonReducer memory);\n function lookupRadonRequestResultMaxSize(bytes32 radHash) external view returns (uint16);\n function lookupRadonRequestResultDataType(bytes32 radHash) external view returns (Witnet.RadonDataTypes);\n function lookupRadonRequestSources(bytes32 radHash) external view returns (bytes32[] memory);\n function lookupRadonRequestSourcesCount(bytes32 radHash) external view returns (uint);\n function lookupRadonRequestTally(bytes32 radHash) external view returns (Witnet.RadonReducer memory);\n \n function verifyRadonRetrieval(\n Witnet.RadonDataRequestMethods requestMethod,\n string calldata requestURL,\n string calldata requestBody,\n string[2][] calldata requestHeaders,\n bytes calldata requestRadonScript\n ) external returns (bytes32 hash);\n \n function verifyRadonReducer(Witnet.RadonReducer calldata reducer)\n external returns (bytes32 hash);\n \n function verifyRadonRequest(\n bytes32[] calldata sources,\n bytes32 aggregator,\n bytes32 tally,\n uint16 resultMaxSize,\n string[][] calldata args\n ) external returns (bytes32 radHash);\n\n function totalDataProviders() external view returns (uint);\n}\n",
714
- "sourcePath": "/home/asdpc/Witnet/witnet-solidity-bridge/contracts/interfaces/IWitnetRequestBytecodes.sol",
714
+ "sourcePath": "/home/runner/work/witnet-solidity-bridge/witnet-solidity-bridge/contracts/interfaces/IWitnetRequestBytecodes.sol",
715
715
  "ast": {
716
716
  "absolutePath": "project:/contracts/interfaces/IWitnetRequestBytecodes.sol",
717
717
  "exportedSymbols": {
@@ -3357,7 +3357,7 @@
3357
3357
  },
3358
3358
  "networks": {},
3359
3359
  "schemaVersion": "3.4.16",
3360
- "updatedAt": "2025-10-15T17:39:32.786Z",
3360
+ "updatedAt": "2025-10-15T18:03:23.787Z",
3361
3361
  "devdoc": {
3362
3362
  "kind": "dev",
3363
3363
  "methods": {},
@@ -64,7 +64,7 @@
64
64
  "sourceMap": "",
65
65
  "deployedSourceMap": "",
66
66
  "source": "// SPDX-License-Identifier: MIT\n\npragma solidity >=0.7.0 <0.9.0;\n\ninterface IWitnetRequestFactory {\n \n event WitnetRequestTemplateBuilt(address template, bool parameterized);\n \n function buildRequestTemplate(\n bytes32[] memory sourcesIds,\n bytes32 aggregatorId,\n bytes32 tallyId,\n uint16 resultDataMaxSize\n ) external returns (address template);\n\n}",
67
- "sourcePath": "/home/asdpc/Witnet/witnet-solidity-bridge/contracts/interfaces/IWitnetRequestFactory.sol",
67
+ "sourcePath": "/home/runner/work/witnet-solidity-bridge/witnet-solidity-bridge/contracts/interfaces/IWitnetRequestFactory.sol",
68
68
  "ast": {
69
69
  "absolutePath": "project:/contracts/interfaces/IWitnetRequestFactory.sol",
70
70
  "exportedSymbols": {
@@ -369,7 +369,7 @@
369
369
  },
370
370
  "networks": {},
371
371
  "schemaVersion": "3.4.16",
372
- "updatedAt": "2025-10-15T17:39:32.787Z",
372
+ "updatedAt": "2025-10-15T18:03:23.788Z",
373
373
  "devdoc": {
374
374
  "kind": "dev",
375
375
  "methods": {},
@@ -3116,7 +3116,7 @@
3116
3116
  },
3117
3117
  "networks": {},
3118
3118
  "schemaVersion": "3.4.16",
3119
- "updatedAt": "2025-10-15T17:39:32.386Z",
3119
+ "updatedAt": "2025-10-15T18:03:23.528Z",
3120
3120
  "devdoc": {
3121
3121
  "custom:oz-upgrades-unsafe-allow": "constructor constructor() { _disableInitializers(); } ``` ====",
3122
3122
  "details": "This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer function so it can only be called once. The {initializer} modifier provided by this contract will have this effect. The initialization functions use a version number. Once a version number is used, it is consumed and cannot be reused. This mechanism prevents re-execution of each \"step\" but allows the creation of new initialization steps in case an upgrade adds a module that needs to be initialized. For example: [.hljs-theme-light.nopadding] ```solidity contract MyToken is ERC20Upgradeable { function initialize() initializer public { __ERC20_init(\"MyToken\", \"MTK\"); } } contract MyTokenV2 is MyToken, ERC20PermitUpgradeable { function initializeV2() reinitializer(2) public { __ERC20Permit_init(\"MyToken\"); } } ``` TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}. CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure that all initializers are idempotent. This is not verified automatically as constructors are by Solidity. [CAUTION] ==== Avoid leaving a contract uninitialized. An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke the {_disableInitializers} function in the constructor to automatically lock it when it is deployed: [.hljs-theme-light.nopadding] ```",
@@ -30,7 +30,7 @@
30
30
  "sourceMap": "",
31
31
  "deployedSourceMap": "",
32
32
  "source": "// SPDX-License-Identifier: MIT\n\n/* solhint-disable var-name-mixedcase */\n\npragma solidity >=0.7.0 <0.9.0;\npragma experimental ABIEncoderV2;\n\nimport \"../defaults/WitnetOracleTrustableDefault.sol\";\n\n// solhint-disable-next-line\ninterface OVM_GasPriceOracle {\n function getL1Fee(bytes calldata _data) external view returns (uint256);\n}\n\n/// @title Witnet Request Board \"trustable\" implementation contract.\n/// @notice Contract to bridge requests to Witnet Decentralized Oracle Network.\n/// @dev This contract enables posting requests that Witnet bridges will insert into the Witnet network.\n/// The result of the requests will be posted back to this contract by the bridge nodes too.\n/// @author The Witnet Foundation\ncontract WitnetOracleTrustableOvm2\n is \n WitnetOracleTrustableDefault\n{\n using WitnetV2 for WitnetV2.RadonSLA;\n\n function class() virtual override public view returns (string memory) {\n return type(WitnetOracleTrustableOvm2).name;\n }\n\n constructor(\n WitnetRequestFactory _factory,\n WitnetRequestBytecodes _registry,\n bool _upgradable,\n bytes32 _versionTag,\n uint256 _reportResultGasBase,\n uint256 _reportResultWithCallbackGasBase,\n uint256 _reportResultWithCallbackRevertGasBase,\n uint256 _sstoreFromZeroGas\n )\n WitnetOracleTrustableDefault(\n _factory,\n _registry,\n _upgradable,\n _versionTag,\n _reportResultGasBase,\n _reportResultWithCallbackGasBase,\n _reportResultWithCallbackRevertGasBase,\n _sstoreFromZeroGas\n )\n {\n __gasPriceOracleL1 = OVM_GasPriceOracle(0x420000000000000000000000000000000000000F);\n }\n\n OVM_GasPriceOracle immutable internal __gasPriceOracleL1;\n\n function _getCurrentL1Fee(uint16 _resultMaxSize) virtual internal view returns (uint256) {\n return __gasPriceOracleL1.getL1Fee(\n abi.encodePacked(\n hex\"06eb2c42000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000ffffffffff00000000000000000000000000000000000000000000000000000000fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000ff\",\n _resultMaxBuffer(_resultMaxSize)\n )\n );\n }\n\n function _resultMaxBuffer(uint16 _resultMaxSize) private pure returns (bytes memory) {\n unchecked {\n uint256[] memory _buffer = new uint256[](_resultMaxSize / 32);\n for (uint _ix = 0; _ix < _buffer.length; _ix ++) {\n _buffer[_ix] = type(uint256).max;\n }\n return abi.encodePacked(\n _buffer,\n uint256((1 << (_resultMaxSize % 32)) - 1)\n );\n }\n }\n\n // ================================================================================================================\n // --- Overrides 'IWitnetOracle' ----------------------------------------------------------------------------\n\n /// @notice Estimate the minimum reward required for posting a data request.\n /// @dev Underestimates if the size of returned data is greater than `_resultMaxSize`. \n /// @param _gasPrice Expected gas price to pay upon posting the data request.\n /// @param _resultMaxSize Maximum expected size of returned data (in bytes).\n function estimateBaseFee(uint256 _gasPrice, uint16 _resultMaxSize)\n public view \n virtual override\n returns (uint256)\n {\n return _getCurrentL1Fee(_resultMaxSize) + WitnetOracleTrustableDefault.estimateBaseFee(_gasPrice, _resultMaxSize);\n }\n\n /// @notice Estimate the minimum reward required for posting a data request with a callback.\n /// @param _gasPrice Expected gas price to pay upon posting the data request.\n /// @param _callbackGasLimit Maximum gas to be spent when reporting the data request result.\n function estimateBaseFeeWithCallback(uint256 _gasPrice, uint24 _callbackGasLimit)\n public view\n virtual override\n returns (uint256)\n {\n return _getCurrentL1Fee(32) + WitnetOracleTrustableDefault.estimateBaseFeeWithCallback(_gasPrice, _callbackGasLimit);\n }\n\n // ================================================================================================================\n // --- Overrides 'IWitnetOracleReporter' --------------------------------------------------------------------------\n\n /// @notice Estimates the actual earnings (or loss), in WEI, that a reporter would get by reporting result to given query,\n /// @notice based on the gas price of the calling transaction. Data requesters should consider upgrading the reward on \n /// @notice queries providing no actual earnings.\n function estimateReportEarnings(\n uint256[] calldata _witnetQueryIds, \n bytes calldata _reportTxMsgData,\n uint256 _reportTxGasPrice, \n uint256 _nanoWitPrice\n )\n external view\n virtual override\n returns (uint256 _revenues, uint256 _expenses)\n {\n for (uint _ix = 0; _ix < _witnetQueryIds.length; _ix ++) {\n if (WitnetOracleDataLib.seekQueryStatus(_witnetQueryIds[_ix]) == WitnetV2.QueryStatus.Posted) {\n WitnetV2.Request storage __request = WitnetOracleDataLib.seekQueryRequest(_witnetQueryIds[_ix]);\n if (__request.gasCallback > 0) {\n _expenses += WitnetOracleTrustableDefault.estimateBaseFeeWithCallback(\n _reportTxGasPrice, \n __request.gasCallback\n );\n } else {\n if (__request.witnetRAD != bytes32(0)) {\n _expenses += WitnetOracleTrustableDefault.estimateBaseFee(\n _reportTxGasPrice, \n registry.lookupRadonRequestResultMaxSize(__request.witnetRAD)\n );\n } else {\n // todo: improve profit estimation accuracy if reporting on deleted query\n _expenses += WitnetOracleTrustableDefault.estimateBaseFee(\n _reportTxGasPrice, \n uint16(0)\n ); \n }\n }\n _expenses += __request.witnetSLA.nanoWitTotalFee() * _nanoWitPrice;\n _revenues += __request.evmReward;\n }\n }\n _expenses += __gasPriceOracleL1.getL1Fee(_reportTxMsgData);\n }\n}\n",
33
- "sourcePath": "/home/asdpc/Witnet/witnet-solidity-bridge/contracts/core/customs/WitnetOracleTrustableOvm2.sol",
33
+ "sourcePath": "/home/runner/work/witnet-solidity-bridge/witnet-solidity-bridge/contracts/core/customs/WitnetOracleTrustableOvm2.sol",
34
34
  "ast": {
35
35
  "absolutePath": "project:/contracts/core/customs/WitnetOracleTrustableOvm2.sol",
36
36
  "exportedSymbols": {
@@ -4327,7 +4327,7 @@
4327
4327
  },
4328
4328
  "networks": {},
4329
4329
  "schemaVersion": "3.4.16",
4330
- "updatedAt": "2025-10-15T17:39:32.535Z",
4330
+ "updatedAt": "2025-10-15T18:03:23.598Z",
4331
4331
  "devdoc": {
4332
4332
  "kind": "dev",
4333
4333
  "methods": {},
@@ -1819,7 +1819,7 @@
1819
1819
  },
1820
1820
  "networks": {},
1821
1821
  "schemaVersion": "3.4.16",
1822
- "updatedAt": "2025-10-15T17:39:32.395Z",
1822
+ "updatedAt": "2025-10-15T18:03:23.530Z",
1823
1823
  "devdoc": {
1824
1824
  "details": "Contract module which provides a basic access control mechanism, where there is an account (an owner) that can be granted exclusive access to specific functions. The initial owner is set to the address provided by the deployer. This can later be changed with {transferOwnership}. This module is used through inheritance. It will make available the modifier `onlyOwner`, which can be applied to your functions to restrict their use to the owner.",
1825
1825
  "errors": {