UNPKG

@gnosis.pm/pm-contracts

Version:

Collection of smart contracts for the Gnosis prediction market platform

983 lines 44.5 kB
{ "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": {} } }