@gnosis.pm/pm-contracts
Version:
Collection of smart contracts for the Gnosis prediction market platform
983 lines • 44.5 kB
JSON
{
"contractName": "DifficultyOracleFactory",
"abi": [
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"name": "creator",
"type": "address"
},
{
"indexed": false,
"name": "difficultyOracle",
"type": "address"
},
{
"indexed": false,
"name": "blockNumber",
"type": "uint256"
}
],
"name": "DifficultyOracleCreation",
"type": "event"
},
{
"constant": false,
"inputs": [
{
"name": "blockNumber",
"type": "uint256"
}
],
"name": "createDifficultyOracle",
"outputs": [
{
"name": "difficultyOracle",
"type": "address"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
}
],
"metadata": "{\"compiler\":{\"version\":\"0.5.6+commit.b259423e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":false,\"inputs\":[{\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"createDifficultyOracle\",\"outputs\":[{\"name\":\"difficultyOracle\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"creator\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"difficultyOracle\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"DifficultyOracleCreation\",\"type\":\"event\"}],\"devdoc\":{\"author\":\"Stefan George - <stefan@gnosis.pm>\",\"methods\":{\"createDifficultyOracle(uint256)\":{\"details\":\"Creates a new difficulty oracle contract\",\"params\":{\"blockNumber\":\"Target block number\"},\"return\":\"Oracle contract\"}},\"title\":\"Difficulty oracle factory contract - Allows to create difficulty oracle contracts\"},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/home/alan/src/github.com/gnosis/pm-contracts/contracts/Oracles/DifficultyOracleFactory.sol\":\"DifficultyOracleFactory\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/alan/src/github.com/gnosis/pm-contracts/contracts/Oracles/DifficultyOracle.sol\":{\"keccak256\":\"0x18ae9cab2afc6d83dfad172af16b5648188434c4e16ed1e00f28539185f5d066\",\"urls\":[\"bzzr://44b5c9682a99a1434b8b25e5f4159932f8820d447b633dc984263c0b9d6531e6\"]},\"/home/alan/src/github.com/gnosis/pm-contracts/contracts/Oracles/DifficultyOracleFactory.sol\":{\"keccak256\":\"0x2eb46969b68f03b3604ec6469c77e31d353c4022f65dbc686d62cb4cb276687e\",\"urls\":[\"bzzr://44426a475aac4f342a9a1ce0f9cde2320e15f91bc73feb7a90f925356f0d6d1c\"]},\"/home/alan/src/github.com/gnosis/pm-contracts/contracts/Oracles/Oracle.sol\":{\"keccak256\":\"0xf4d12f4a59c17e66dfa6791188f621a8914e2038a4e3f72d6fc9fb903ca8e18e\",\"urls\":[\"bzzr://a477ccd203e677cc904b1a4f8fcc85251c5b5e09c5c10eed27e01318584b16d1\"]},\"@gnosis.pm/util-contracts/contracts/Proxy.sol\":{\"keccak256\":\"0xeab0e83a9ec9e7f052c0455a11577061ec6d1994db08dae429abd6faaabf6555\",\"urls\":[\"bzzr://b2c1273d4ec30e2f9e768eea8c510f8493a7359b03e01923d93eea86b57ec145\"]}},\"version\":1}",
"bytecode": "0x608060405234801561001057600080fd5b50610389806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c80639d5f242214610030575b600080fd5b61005c6004803603602081101561004657600080fd5b810190808035906020019092919050505061009e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6000816040516100ad9061015d565b80828152602001915050604051809103906000f0801580156100d3573d6000803e3d6000fd5b5090503373ffffffffffffffffffffffffffffffffffffffff167f83ecbb7b33dba848fcbd61d437ac02705db443e66f76ce6be0cf3415d07ab17f8284604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a2919050565b6101f38061016b8339019056fe608060405234801561001057600080fd5b506040516020806101f38339810180604052602081101561003057600080fd5b810190808051906020019092919050505043811161004d57600080fd5b806000819055505061018f806100646000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c80630537665d1461005c57806319cae4621461006657806357e871e7146100845780637e7e4b47146100a2578063ccdf68f3146100c0575b600080fd5b6100646100e2565b005b61006e610141565b6040518082815260200191505060405180910390f35b61008c610147565b6040518082815260200191505060405180910390f35b6100aa61014d565b6040518082815260200191505060405180910390f35b6100c8610157565b604051808215151515815260200191505060405180910390f35b60005443101580156100f657506000600154145b6100ff57600080fd5b446001819055507f39972cb21edd888c2061a2b4b37874524bbc055cfeaa3054682ba5369f5029aa6001546040518082815260200191505060405180910390a1565b60015481565b60005481565b6000600154905090565b6000806001541190509056fea165627a7a723058205336a64a8c9d2d2e7d50564cd774a5a75a46706111b37a6e21b4378caad047c60029a165627a7a72305820ef6978f666a369746411ced9c59afd4a7374cd90cbaf2224c6b92f540305a5d70029",
"deployedBytecode": "0x608060405234801561001057600080fd5b506004361061002b5760003560e01c80639d5f242214610030575b600080fd5b61005c6004803603602081101561004657600080fd5b810190808035906020019092919050505061009e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6000816040516100ad9061015d565b80828152602001915050604051809103906000f0801580156100d3573d6000803e3d6000fd5b5090503373ffffffffffffffffffffffffffffffffffffffff167f83ecbb7b33dba848fcbd61d437ac02705db443e66f76ce6be0cf3415d07ab17f8284604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a2919050565b6101f38061016b8339019056fe608060405234801561001057600080fd5b506040516020806101f38339810180604052602081101561003057600080fd5b810190808051906020019092919050505043811161004d57600080fd5b806000819055505061018f806100646000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c80630537665d1461005c57806319cae4621461006657806357e871e7146100845780637e7e4b47146100a2578063ccdf68f3146100c0575b600080fd5b6100646100e2565b005b61006e610141565b6040518082815260200191505060405180910390f35b61008c610147565b6040518082815260200191505060405180910390f35b6100aa61014d565b6040518082815260200191505060405180910390f35b6100c8610157565b604051808215151515815260200191505060405180910390f35b60005443101580156100f657506000600154145b6100ff57600080fd5b446001819055507f39972cb21edd888c2061a2b4b37874524bbc055cfeaa3054682ba5369f5029aa6001546040518082815260200191505060405180910390a1565b60015481565b60005481565b6000600154905090565b6000806001541190509056fea165627a7a723058205336a64a8c9d2d2e7d50564cd774a5a75a46706111b37a6e21b4378caad047c60029a165627a7a72305820ef6978f666a369746411ced9c59afd4a7374cd90cbaf2224c6b92f540305a5d70029",
"sourceMap": "208:632:17:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;208:632:17;;;;;;;",
"deployedSourceMap": "208:632:17:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;208:632:17;;;;;;;;;;;;;;;;;;;566:272;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;566:272:17;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;648:33;737:11;716:33;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;716:33:17;697:52;;789:10;764:67;;;801:16;819:11;764:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;566:272;;;:::o;208:632::-;;;;;;;;:::o",
"source": "pragma solidity ^0.5.0;\nimport \"../Oracles/DifficultyOracle.sol\";\n\n\n/// @title Difficulty oracle factory contract - Allows to create difficulty oracle contracts\n/// @author Stefan George - <stefan@gnosis.pm>\ncontract DifficultyOracleFactory {\n\n /*\n * Events\n */\n event DifficultyOracleCreation(address indexed creator, DifficultyOracle difficultyOracle, uint blockNumber);\n\n /*\n * Public functions\n */\n /// @dev Creates a new difficulty oracle contract\n /// @param blockNumber Target block number\n /// @return Oracle contract\n function createDifficultyOracle(uint blockNumber)\n public\n returns (DifficultyOracle difficultyOracle)\n {\n difficultyOracle = new DifficultyOracle(blockNumber);\n emit DifficultyOracleCreation(msg.sender, difficultyOracle, blockNumber);\n }\n}\n",
"sourcePath": "/home/alan/src/github.com/gnosis/pm-contracts/contracts/Oracles/DifficultyOracleFactory.sol",
"ast": {
"absolutePath": "/home/alan/src/github.com/gnosis/pm-contracts/contracts/Oracles/DifficultyOracleFactory.sol",
"exportedSymbols": {
"DifficultyOracleFactory": [
3979
]
},
"id": 3980,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 3947,
"literals": [
"solidity",
"^",
"0.5",
".0"
],
"nodeType": "PragmaDirective",
"src": "0:23:17"
},
{
"absolutePath": "/home/alan/src/github.com/gnosis/pm-contracts/contracts/Oracles/DifficultyOracle.sol",
"file": "../Oracles/DifficultyOracle.sol",
"id": 3948,
"nodeType": "ImportDirective",
"scope": 3980,
"sourceUnit": 3946,
"src": "24:41:17",
"symbolAliases": [],
"unitAlias": ""
},
{
"baseContracts": [],
"contractDependencies": [
3945
],
"contractKind": "contract",
"documentation": "@title Difficulty oracle factory contract - Allows to create difficulty oracle contracts\n @author Stefan George - <stefan@gnosis.pm>",
"fullyImplemented": true,
"id": 3979,
"linearizedBaseContracts": [
3979
],
"name": "DifficultyOracleFactory",
"nodeType": "ContractDefinition",
"nodes": [
{
"anonymous": false,
"documentation": null,
"id": 3956,
"name": "DifficultyOracleCreation",
"nodeType": "EventDefinition",
"parameters": {
"id": 3955,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3950,
"indexed": true,
"name": "creator",
"nodeType": "VariableDeclaration",
"scope": 3956,
"src": "309:23:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 3949,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "309:7:17",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3952,
"indexed": false,
"name": "difficultyOracle",
"nodeType": "VariableDeclaration",
"scope": 3956,
"src": "334:33:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_contract$_DifficultyOracle_$3945",
"typeString": "contract DifficultyOracle"
},
"typeName": {
"contractScope": null,
"id": 3951,
"name": "DifficultyOracle",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 3945,
"src": "334:16:17",
"typeDescriptions": {
"typeIdentifier": "t_contract$_DifficultyOracle_$3945",
"typeString": "contract DifficultyOracle"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3954,
"indexed": false,
"name": "blockNumber",
"nodeType": "VariableDeclaration",
"scope": 3956,
"src": "369:16:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3953,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "369:4:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "308:78:17"
},
"src": "278:109:17"
},
{
"body": {
"id": 3977,
"nodeType": "Block",
"src": "687:151:17",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 3968,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 3963,
"name": "difficultyOracle",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3961,
"src": "697:16:17",
"typeDescriptions": {
"typeIdentifier": "t_contract$_DifficultyOracle_$3945",
"typeString": "contract DifficultyOracle"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 3966,
"name": "blockNumber",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3958,
"src": "737:11:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 3965,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "NewExpression",
"src": "716:20:17",
"typeDescriptions": {
"typeIdentifier": "t_function_creation_nonpayable$_t_uint256_$returns$_t_contract$_DifficultyOracle_$3945_$",
"typeString": "function (uint256) returns (contract DifficultyOracle)"
},
"typeName": {
"contractScope": null,
"id": 3964,
"name": "DifficultyOracle",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 3945,
"src": "720:16:17",
"typeDescriptions": {
"typeIdentifier": "t_contract$_DifficultyOracle_$3945",
"typeString": "contract DifficultyOracle"
}
}
},
"id": 3967,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "716:33:17",
"typeDescriptions": {
"typeIdentifier": "t_contract$_DifficultyOracle_$3945",
"typeString": "contract DifficultyOracle"
}
},
"src": "697:52:17",
"typeDescriptions": {
"typeIdentifier": "t_contract$_DifficultyOracle_$3945",
"typeString": "contract DifficultyOracle"
}
},
"id": 3969,
"nodeType": "ExpressionStatement",
"src": "697:52:17"
},
{
"eventCall": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3971,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7920,
"src": "789:3:17",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 3972,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "789:10:17",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
{
"argumentTypes": null,
"id": 3973,
"name": "difficultyOracle",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3961,
"src": "801:16:17",
"typeDescriptions": {
"typeIdentifier": "t_contract$_DifficultyOracle_$3945",
"typeString": "contract DifficultyOracle"
}
},
{
"argumentTypes": null,
"id": 3974,
"name": "blockNumber",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3958,
"src": "819:11:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
},
{
"typeIdentifier": "t_contract$_DifficultyOracle_$3945",
"typeString": "contract DifficultyOracle"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 3970,
"name": "DifficultyOracleCreation",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3956,
"src": "764:24:17",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_contract$_DifficultyOracle_$3945_$_t_uint256_$returns$__$",
"typeString": "function (address,contract DifficultyOracle,uint256)"
}
},
"id": 3975,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "764:67:17",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3976,
"nodeType": "EmitStatement",
"src": "759:72:17"
}
]
},
"documentation": "@dev Creates a new difficulty oracle contract\n @param blockNumber Target block number\n @return Oracle contract",
"id": 3978,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "createDifficultyOracle",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3959,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3958,
"name": "blockNumber",
"nodeType": "VariableDeclaration",
"scope": 3978,
"src": "598:16:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3957,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "598:4:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "597:18:17"
},
"returnParameters": {
"id": 3962,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3961,
"name": "difficultyOracle",
"nodeType": "VariableDeclaration",
"scope": 3978,
"src": "648:33:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_contract$_DifficultyOracle_$3945",
"typeString": "contract DifficultyOracle"
},
"typeName": {
"contractScope": null,
"id": 3960,
"name": "DifficultyOracle",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 3945,
"src": "648:16:17",
"typeDescriptions": {
"typeIdentifier": "t_contract$_DifficultyOracle_$3945",
"typeString": "contract DifficultyOracle"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "647:35:17"
},
"scope": 3979,
"src": "566:272:17",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "public"
}
],
"scope": 3980,
"src": "208:632:17"
}
],
"src": "0:841:17"
},
"legacyAST": {
"absolutePath": "/home/alan/src/github.com/gnosis/pm-contracts/contracts/Oracles/DifficultyOracleFactory.sol",
"exportedSymbols": {
"DifficultyOracleFactory": [
3979
]
},
"id": 3980,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 3947,
"literals": [
"solidity",
"^",
"0.5",
".0"
],
"nodeType": "PragmaDirective",
"src": "0:23:17"
},
{
"absolutePath": "/home/alan/src/github.com/gnosis/pm-contracts/contracts/Oracles/DifficultyOracle.sol",
"file": "../Oracles/DifficultyOracle.sol",
"id": 3948,
"nodeType": "ImportDirective",
"scope": 3980,
"sourceUnit": 3946,
"src": "24:41:17",
"symbolAliases": [],
"unitAlias": ""
},
{
"baseContracts": [],
"contractDependencies": [
3945
],
"contractKind": "contract",
"documentation": "@title Difficulty oracle factory contract - Allows to create difficulty oracle contracts\n @author Stefan George - <stefan@gnosis.pm>",
"fullyImplemented": true,
"id": 3979,
"linearizedBaseContracts": [
3979
],
"name": "DifficultyOracleFactory",
"nodeType": "ContractDefinition",
"nodes": [
{
"anonymous": false,
"documentation": null,
"id": 3956,
"name": "DifficultyOracleCreation",
"nodeType": "EventDefinition",
"parameters": {
"id": 3955,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3950,
"indexed": true,
"name": "creator",
"nodeType": "VariableDeclaration",
"scope": 3956,
"src": "309:23:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 3949,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "309:7:17",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3952,
"indexed": false,
"name": "difficultyOracle",
"nodeType": "VariableDeclaration",
"scope": 3956,
"src": "334:33:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_contract$_DifficultyOracle_$3945",
"typeString": "contract DifficultyOracle"
},
"typeName": {
"contractScope": null,
"id": 3951,
"name": "DifficultyOracle",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 3945,
"src": "334:16:17",
"typeDescriptions": {
"typeIdentifier": "t_contract$_DifficultyOracle_$3945",
"typeString": "contract DifficultyOracle"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3954,
"indexed": false,
"name": "blockNumber",
"nodeType": "VariableDeclaration",
"scope": 3956,
"src": "369:16:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3953,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "369:4:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "308:78:17"
},
"src": "278:109:17"
},
{
"body": {
"id": 3977,
"nodeType": "Block",
"src": "687:151:17",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 3968,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 3963,
"name": "difficultyOracle",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3961,
"src": "697:16:17",
"typeDescriptions": {
"typeIdentifier": "t_contract$_DifficultyOracle_$3945",
"typeString": "contract DifficultyOracle"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 3966,
"name": "blockNumber",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3958,
"src": "737:11:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 3965,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "NewExpression",
"src": "716:20:17",
"typeDescriptions": {
"typeIdentifier": "t_function_creation_nonpayable$_t_uint256_$returns$_t_contract$_DifficultyOracle_$3945_$",
"typeString": "function (uint256) returns (contract DifficultyOracle)"
},
"typeName": {
"contractScope": null,
"id": 3964,
"name": "DifficultyOracle",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 3945,
"src": "720:16:17",
"typeDescriptions": {
"typeIdentifier": "t_contract$_DifficultyOracle_$3945",
"typeString": "contract DifficultyOracle"
}
}
},
"id": 3967,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "716:33:17",
"typeDescriptions": {
"typeIdentifier": "t_contract$_DifficultyOracle_$3945",
"typeString": "contract DifficultyOracle"
}
},
"src": "697:52:17",
"typeDescriptions": {
"typeIdentifier": "t_contract$_DifficultyOracle_$3945",
"typeString": "contract DifficultyOracle"
}
},
"id": 3969,
"nodeType": "ExpressionStatement",
"src": "697:52:17"
},
{
"eventCall": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3971,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7920,
"src": "789:3:17",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 3972,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "789:10:17",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
{
"argumentTypes": null,
"id": 3973,
"name": "difficultyOracle",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3961,
"src": "801:16:17",
"typeDescriptions": {
"typeIdentifier": "t_contract$_DifficultyOracle_$3945",
"typeString": "contract DifficultyOracle"
}
},
{
"argumentTypes": null,
"id": 3974,
"name": "blockNumber",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3958,
"src": "819:11:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
},
{
"typeIdentifier": "t_contract$_DifficultyOracle_$3945",
"typeString": "contract DifficultyOracle"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 3970,
"name": "DifficultyOracleCreation",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3956,
"src": "764:24:17",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_contract$_DifficultyOracle_$3945_$_t_uint256_$returns$__$",
"typeString": "function (address,contract DifficultyOracle,uint256)"
}
},
"id": 3975,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "764:67:17",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3976,
"nodeType": "EmitStatement",
"src": "759:72:17"
}
]
},
"documentation": "@dev Creates a new difficulty oracle contract\n @param blockNumber Target block number\n @return Oracle contract",
"id": 3978,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "createDifficultyOracle",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3959,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3958,
"name": "blockNumber",
"nodeType": "VariableDeclaration",
"scope": 3978,
"src": "598:16:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3957,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "598:4:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "597:18:17"
},
"returnParameters": {
"id": 3962,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3961,
"name": "difficultyOracle",
"nodeType": "VariableDeclaration",
"scope": 3978,
"src": "648:33:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_contract$_DifficultyOracle_$3945",
"typeString": "contract DifficultyOracle"
},
"typeName": {
"contractScope": null,
"id": 3960,
"name": "DifficultyOracle",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 3945,
"src": "648:16:17",
"typeDescriptions": {
"typeIdentifier": "t_contract$_DifficultyOracle_$3945",
"typeString": "contract DifficultyOracle"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "647:35:17"
},
"scope": 3979,
"src": "566:272:17",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "public"
}
],
"scope": 3980,
"src": "208:632:17"
}
],
"src": "0:841:17"
},
"compiler": {
"name": "solc",
"version": "0.5.6+commit.b259423e.Emscripten.clang"
},
"networks": {
"3": {
"events": {},
"links": {},
"address": "0x5736ac1f72673c693e527cee216dadda344b1f5e",
"transactionHash": "0xec426fa943ee2977519ea41ea98fdbfdc38a6b4196bdf224c8a1b42afbdceefb"
},
"4": {
"events": {},
"links": {},
"address": "0xc70f8f0b0e100f2e533d2fced5e525704e968e52",
"transactionHash": "0x9f4ead36127dccf9899dab5ad13ea75127ab2bb8c8faae8c50d93d354c2216ad"
},
"42": {
"events": {},
"links": {},
"address": "0x0704c329a35635574e78360dd8586c16a010752d",
"transactionHash": "0x3f587cb1392a05fa44769a49e310bdb0f60d926004f286a97d6650affce999a1"
},
"437894314312": {
"events": {},
"links": {},
"address": "0x6ed79aa1c71fd7bdbc515efda3bd4e26394435cc",
"transactionHash": "0x6b5bdd030cce53686c0a677d2ac69f3c82450a8045331c26ba6d8108365799a9"
}
},
"schemaVersion": "3.0.11",
"updatedAt": "2019-09-20T17:46:52.192Z",
"devdoc": {
"author": "Stefan George - <stefan@gnosis.pm>",
"methods": {
"createDifficultyOracle(uint256)": {
"details": "Creates a new difficulty oracle contract",
"params": {
"blockNumber": "Target block number"
},
"return": "Oracle contract"
}
},
"title": "Difficulty oracle factory contract - Allows to create difficulty oracle contracts"
},
"userdoc": {
"methods": {}
}
}