UNPKG

@gooddollar/goodcontracts

Version:
1,050 lines 66.7 kB
{ "contractName": "UniversalScheme", "abi": [], "metadata": "{\"compiler\":{\"version\":\"0.5.4+commit.9549d8ff\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"@daostack/arc/contracts/universalSchemes/UniversalScheme.sol\":\"UniversalScheme\"},\"evmVersion\":\"byzantium\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@daostack/arc/contracts/controller/Avatar.sol\":{\"keccak256\":\"0x4e4fb9d3bc21f42fbfc6a01e9f8aa483a59e9f447b0d604f55b587a81ec09ef4\",\"urls\":[\"bzzr://b0af60e651a75274a028dc4b53d06091a46ca0efa3bfb4153879e76cf86a49dc\"]},\"@daostack/arc/contracts/controller/ControllerInterface.sol\":{\"keccak256\":\"0x933e92612c90f292c7b59908958b003f1a13d90b97bed0572b566353c20974dc\",\"urls\":[\"bzzr://e8050774c20b9b22636b47cdd353eaf5df72e0bca8f2b8569365be30f4eaef0c\"]},\"@daostack/arc/contracts/controller/DAOToken.sol\":{\"keccak256\":\"0x9b213e4e3ceeffcfc1c962a43b70b8d763d8091a2dd713fc1989b97bb68786e6\",\"urls\":[\"bzzr://7ba306fdbad344e01474e3ae9c37b27b64efdc1cb17ffc0f3ec1c4427fde359d\"]},\"@daostack/arc/contracts/globalConstraints/GlobalConstraintInterface.sol\":{\"keccak256\":\"0xc006c4591ec10b845a56e13f6791db2c428610953034686d52b2a934b6c8f36f\",\"urls\":[\"bzzr://d1f293a0bbaa292296a83977cb36a14048db404a32e3f6aa9bd79ea61ac3c4c3\"]},\"@daostack/arc/contracts/libs/SafeERC20.sol\":{\"keccak256\":\"0xf6727d432f67046145b078f40c1cc4f6be7b0d12a6678ecaf457edf7550d244c\",\"urls\":[\"bzzr://cd706a2dc7540d093b591a280b464256c596ddad598b68886e6db2e7958f9916\"]},\"@daostack/arc/contracts/universalSchemes/UniversalScheme.sol\":{\"keccak256\":\"0xcfdb7d336d21b3b16a31125d3bd8c88f7c4c944510f4488162247badb6411017\",\"urls\":[\"bzzr://6cd99ec0b19ae06f7845a3ca56d2dc43ec122cfa809969248e6742e0c56076ca\"]},\"@daostack/arc/contracts/universalSchemes/UniversalSchemeInterface.sol\":{\"keccak256\":\"0x956b0dbe20b6aeea74565a9204f72fba1580874d27cd63955f93e9491cabb6b1\",\"urls\":[\"bzzr://29eac5d525cc39129df30c5b8deada4350d40c5261a85ce0b29c12fe80b10b15\"]},\"@daostack/infra/contracts/Reputation.sol\":{\"keccak256\":\"0x3d226dac0fe7d758f0287fb28bc25fcec1f69d19888ae3a550fa49856d61c482\",\"urls\":[\"bzzr://7f219e1874d4f1aea860cc665b75015797f55f149e9bf490abab5d7ad2adfeb9\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x965012d27b4262d7a41f5028cbb30c51ebd9ecd4be8fb30380aaa7a3c64fbc8b\",\"urls\":[\"bzzr://41ca38f6b0fa4b77b0feec43e422cfbec48b7eb38a41edf0b85c77e8d9a296b1\"]},\"openzeppelin-solidity/contracts/ownership/Ownable.sol\":{\"keccak256\":\"0x980de387a1a020a498f53d00f89fecebb12c949a17e8f160093c0303ede2b786\",\"urls\":[\"bzzr://08894efa2a557982070beda6a81a032407e70532d24bdafe80d39660c74904d9\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xba431353cb4fe70777ac026231eb5468e41aa1e81240a2b8136917acc5fff4dc\",\"urls\":[\"bzzr://80cd02a56e6e33504318124d0d645c82e615cc8a4b5829cc9d82d17635c644c8\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20Burnable.sol\":{\"keccak256\":\"0xa3e68fd7f987c8fbdaf4867d428a69a15f3cf2f69709a5b0a0fbef750b0e6fbc\",\"urls\":[\"bzzr://f4ebb7c5b9e429b98b07e2caca6156c13c3724e9b1191cca8423ab8427bc6265\"]},\"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x079c4e23ee448f529e43bfa3c4e8fb4be52cd0318ee923a276835bedf45b93d8\",\"urls\":[\"bzzr://48248e86f64407a95f241d6c5c8cfea6b4d4ebf4ebb467e5c98c8af3868fafe4\"]},\"openzeppelin-solidity/contracts/utils/Address.sol\":{\"keccak256\":\"0x5c731061b804fa256fc8c05150eafe5d20b6bb94541a8f187912bf84f7033f34\",\"urls\":[\"bzzr://63fc4af0d7a99a770925b96a6cf48f25fc00d30274266f82db05f30baa238267\"]}},\"version\":1}", "bytecode": "0x6080604052348015600f57600080fd5b50603580601d6000396000f3fe6080604052600080fdfea165627a7a72305820ff48d4dc5c5d6dda3ce6298e7d4b569c87690edd514c97f74bb551da5137219e0029", "deployedBytecode": "0x6080604052600080fdfea165627a7a72305820ff48d4dc5c5d6dda3ce6298e7d4b569c87690edd514c97f74bb551da5137219e0029", "sourceMap": "151:490:49:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;151:490:49;;;;;;;", "deployedSourceMap": "151:490:49:-;;;;;", "source": "pragma solidity ^0.5.4;\n\nimport \"./UniversalSchemeInterface.sol\";\nimport \"../controller/ControllerInterface.sol\";\nimport \"../controller/Avatar.sol\";\n\n\ncontract UniversalScheme is UniversalSchemeInterface {\n /**\n * @dev get the parameters for the current scheme from the controller\n */\n function getParametersFromController(Avatar _avatar) internal view returns(bytes32) {\n require(ControllerInterface(_avatar.owner()).isSchemeRegistered(address(this), address(_avatar)),\n \"scheme is not registered\");\n return ControllerInterface(_avatar.owner()).getSchemeParameters(address(this), address(_avatar));\n }\n}\n", "sourcePath": "@daostack/arc/contracts/universalSchemes/UniversalScheme.sol", "ast": { "absolutePath": "@daostack/arc/contracts/universalSchemes/UniversalScheme.sol", "exportedSymbols": { "UniversalScheme": [ 9834 ] }, "id": 9835, "nodeType": "SourceUnit", "nodes": [ { "id": 9789, "literals": [ "solidity", "^", "0.5", ".4" ], "nodeType": "PragmaDirective", "src": "0:23:49" }, { "absolutePath": "@daostack/arc/contracts/universalSchemes/UniversalSchemeInterface.sol", "file": "./UniversalSchemeInterface.sol", "id": 9790, "nodeType": "ImportDirective", "scope": 9835, "sourceUnit": 9846, "src": "25:40:49", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "@daostack/arc/contracts/controller/ControllerInterface.sol", "file": "../controller/ControllerInterface.sol", "id": 9791, "nodeType": "ImportDirective", "scope": 9835, "sourceUnit": 9006, "src": "66:47:49", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "@daostack/arc/contracts/controller/Avatar.sol", "file": "../controller/Avatar.sol", "id": 9792, "nodeType": "ImportDirective", "scope": 9835, "sourceUnit": 7317, "src": "114:34:49", "symbolAliases": [], "unitAlias": "" }, { "baseContracts": [ { "arguments": null, "baseName": { "contractScope": null, "id": 9793, "name": "UniversalSchemeInterface", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 9845, "src": "179:24:49", "typeDescriptions": { "typeIdentifier": "t_contract$_UniversalSchemeInterface_$9845", "typeString": "contract UniversalSchemeInterface" } }, "id": 9794, "nodeType": "InheritanceSpecifier", "src": "179:24:49" } ], "contractDependencies": [ 9845 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, "id": 9834, "linearizedBaseContracts": [ 9834, 9845 ], "name": "UniversalScheme", "nodeType": "ContractDefinition", "nodes": [ { "body": { "id": 9832, "nodeType": "Block", "src": "383:256:49", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 9809, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16832, "src": "465:4:49", "typeDescriptions": { "typeIdentifier": "t_contract$_UniversalScheme_$9834", "typeString": "contract UniversalScheme" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_contract$_UniversalScheme_$9834", "typeString": "contract UniversalScheme" } ], "id": 9808, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "457:7:49", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 9810, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "457:13:49", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 9812, "name": "_avatar", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9796, "src": "480:7:49", "typeDescriptions": { "typeIdentifier": "t_contract$_Avatar_$7316", "typeString": "contract Avatar" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_contract$_Avatar_$7316", "typeString": "contract Avatar" } ], "id": 9811, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "472:7:49", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 9813, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "472:16:49", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address_payable", "typeString": "address payable" } ], "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "expression": { "argumentTypes": null, "id": 9803, "name": "_avatar", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9796, "src": "421:7:49", "typeDescriptions": { "typeIdentifier": "t_contract$_Avatar_$7316", "typeString": "contract Avatar" } }, "id": 9804, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "owner", "nodeType": "MemberAccess", "referencedDeclaration": 15953, "src": "421:13:49", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", "typeString": "function () view external returns (address)" } }, "id": 9805, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "421:15:49", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 9802, "name": "ControllerInterface", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9005, "src": "401:19:49", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_ControllerInterface_$9005_$", "typeString": "type(contract ControllerInterface)" } }, "id": 9806, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "401:36:49", "typeDescriptions": { "typeIdentifier": "t_contract$_ControllerInterface_$9005", "typeString": "contract ControllerInterface" } }, "id": 9807, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "isSchemeRegistered", "nodeType": "MemberAccess", "referencedDeclaration": 8959, "src": "401:55:49", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_bool_$", "typeString": "function (address,address) view external returns (bool)" } }, "id": 9814, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "401:88:49", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "736368656d65206973206e6f742072656769737465726564", "id": 9815, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "499:26:49", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_f49accaed0fc85cca97fe84c1d1aed7770001ae630847b7bcf2d35045e44c8d1", "typeString": "literal_string \"scheme is not registered\"" }, "value": "scheme is not registered" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_f49accaed0fc85cca97fe84c1d1aed7770001ae630847b7bcf2d35045e44c8d1", "typeString": "literal_string \"scheme is not registered\"" } ], "id": 9801, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 16785, 16786 ], "referencedDeclaration": 16786, "src": "393:7:49", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 9816, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "393:133:49", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 9817, "nodeType": "ExpressionStatement", "src": "393:133:49" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 9825, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16832, "src": "608:4:49", "typeDescriptions": { "typeIdentifier": "t_contract$_UniversalScheme_$9834", "typeString": "contract UniversalScheme" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_contract$_UniversalScheme_$9834", "typeString": "contract UniversalScheme" } ], "id": 9824, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "600:7:49", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 9826, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "600:13:49", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 9828, "name": "_avatar", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9796, "src": "623:7:49", "typeDescriptions": { "typeIdentifier": "t_contract$_Avatar_$7316", "typeString": "contract Avatar" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_contract$_Avatar_$7316", "typeString": "contract Avatar" } ], "id": 9827, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "615:7:49", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 9829, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "615:16:49", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address_payable", "typeString": "address payable" } ], "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "expression": { "argumentTypes": null, "id": 9819, "name": "_avatar", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9796, "src": "563:7:49", "typeDescriptions": { "typeIdentifier": "t_contract$_Avatar_$7316", "typeString": "contract Avatar" } }, "id": 9820, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "owner", "nodeType": "MemberAccess", "referencedDeclaration": 15953, "src": "563:13:49", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", "typeString": "function () view external returns (address)" } }, "id": 9821, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "563:15:49", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 9818, "name": "ControllerInterface", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9005, "src": "543:19:49", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_ControllerInterface_$9005_$", "typeString": "type(contract ControllerInterface)" } }, "id": 9822, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "543:36:49", "typeDescriptions": { "typeIdentifier": "t_contract$_ControllerInterface_$9005", "typeString": "contract ControllerInterface" } }, "id": 9823, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "getSchemeParameters", "nodeType": "MemberAccess", "referencedDeclaration": 8968, "src": "543:56:49", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_bytes32_$", "typeString": "function (address,address) view external returns (bytes32)" } }, "id": 9830, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "543:89:49", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "functionReturnParameters": 9800, "id": 9831, "nodeType": "Return", "src": "536:96:49" } ] }, "documentation": " @dev get the parameters for the current scheme from the controller", "id": 9833, "implemented": true, "kind": "function", "modifiers": [], "name": "getParametersFromController", "nodeType": "FunctionDefinition", "parameters": { "id": 9797, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 9796, "name": "_avatar", "nodeType": "VariableDeclaration", "scope": 9833, "src": "336:14:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_contract$_Avatar_$7316", "typeString": "contract Avatar" }, "typeName": { "contractScope": null, "id": 9795, "name": "Avatar", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 7316, "src": "336:6:49", "typeDescriptions": { "typeIdentifier": "t_contract$_Avatar_$7316", "typeString": "contract Avatar" } }, "value": null, "visibility": "internal" } ], "src": "335:16:49" }, "returnParameters": { "id": 9800, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 9799, "name": "", "nodeType": "VariableDeclaration", "scope": 9833, "src": "374:7:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "typeName": { "id": 9798, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "374:7:49", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "value": null, "visibility": "internal" } ], "src": "373:9:49" }, "scope": 9834, "src": "299:340:49", "stateMutability": "view", "superFunction": 9844, "visibility": "internal" } ], "scope": 9835, "src": "151:490:49" } ], "src": "0:642:49" }, "legacyAST": { "absolutePath": "@daostack/arc/contracts/universalSchemes/UniversalScheme.sol", "exportedSymbols": { "UniversalScheme": [ 9834 ] }, "id": 9835, "nodeType": "SourceUnit", "nodes": [ { "id": 9789, "literals": [ "solidity", "^", "0.5", ".4" ], "nodeType": "PragmaDirective", "src": "0:23:49" }, { "absolutePath": "@daostack/arc/contracts/universalSchemes/UniversalSchemeInterface.sol", "file": "./UniversalSchemeInterface.sol", "id": 9790, "nodeType": "ImportDirective", "scope": 9835, "sourceUnit": 9846, "src": "25:40:49", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "@daostack/arc/contracts/controller/ControllerInterface.sol", "file": "../controller/ControllerInterface.sol", "id": 9791, "nodeType": "ImportDirective", "scope": 9835, "sourceUnit": 9006, "src": "66:47:49", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "@daostack/arc/contracts/controller/Avatar.sol", "file": "../controller/Avatar.sol", "id": 9792, "nodeType": "ImportDirective", "scope": 9835, "sourceUnit": 7317, "src": "114:34:49", "symbolAliases": [], "unitAlias": "" }, { "baseContracts": [ { "arguments": null, "baseName": { "contractScope": null, "id": 9793, "name": "UniversalSchemeInterface", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 9845, "src": "179:24:49", "typeDescriptions": { "typeIdentifier": "t_contract$_UniversalSchemeInterface_$9845", "typeString": "contract UniversalSchemeInterface" } }, "id": 9794, "nodeType": "InheritanceSpecifier", "src": "179:24:49" } ], "contractDependencies": [ 9845 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, "id": 9834, "linearizedBaseContracts": [ 9834, 9845 ], "name": "UniversalScheme", "nodeType": "ContractDefinition", "nodes": [ { "body": { "id": 9832, "nodeType": "Block", "src": "383:256:49", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 9809, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16832, "src": "465:4:49", "typeDescriptions": { "typeIdentifier": "t_contract$_UniversalScheme_$9834", "typeString": "contract UniversalScheme" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_contract$_UniversalScheme_$9834", "typeString": "contract UniversalScheme" } ], "id": 9808, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "457:7:49", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 9810, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "457:13:49", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 9812, "name": "_avatar", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9796, "src": "480:7:49", "typeDescriptions": { "typeIdentifier": "t_contract$_Avatar_$7316", "typeString": "contract Avatar" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_contract$_Avatar_$7316", "typeString": "contract Avatar" } ], "id": 9811, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "472:7:49", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 9813, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "472:16:49", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address_payable", "typeString": "address payable" } ], "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "expression": { "argumentTypes": null, "id": 9803, "name": "_avatar", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9796, "src": "421:7:49", "typeDescriptions": { "typeIdentifier": "t_contract$_Avatar_$7316", "typeString": "contract Avatar" } }, "id": 9804, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "owner", "nodeType": "MemberAccess", "referencedDeclaration": 15953, "src": "421:13:49", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", "typeString": "function () view external returns (address)" } }, "id": 9805, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "421:15:49", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 9802, "name": "ControllerInterface", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9005, "src": "401:19:49", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_ControllerInterface_$9005_$", "typeString": "type(contract ControllerInterface)" } }, "id": 9806, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "401:36:49", "typeDescriptions": { "typeIdentifier": "t_contract$_ControllerInterface_$9005", "typeString": "contract ControllerInterface" } }, "id": 9807, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "isSchemeRegistered", "nodeType": "MemberAccess", "referencedDeclaration": 8959, "src": "401:55:49", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_bool_$", "typeString": "function (address,address) view external returns (bool)" } }, "id": 9814, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "401:88:49", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue