arc_dx
Version:
A platform for building DAOs
1,437 lines (1,436 loc) • 229 kB
JSON
{
"contractName": "ControllerInterface",
"abi": [
{
"constant": false,
"inputs": [
{
"name": "_amount",
"type": "uint256"
},
{
"name": "_to",
"type": "address"
},
{
"name": "_avatar",
"type": "address"
}
],
"name": "mintReputation",
"outputs": [
{
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_amount",
"type": "uint256"
},
{
"name": "_from",
"type": "address"
},
{
"name": "_avatar",
"type": "address"
}
],
"name": "burnReputation",
"outputs": [
{
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_amount",
"type": "uint256"
},
{
"name": "_beneficiary",
"type": "address"
},
{
"name": "_avatar",
"type": "address"
}
],
"name": "mintTokens",
"outputs": [
{
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_scheme",
"type": "address"
},
{
"name": "_paramsHash",
"type": "bytes32"
},
{
"name": "_permissions",
"type": "bytes4"
},
{
"name": "_avatar",
"type": "address"
}
],
"name": "registerScheme",
"outputs": [
{
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_scheme",
"type": "address"
},
{
"name": "_avatar",
"type": "address"
}
],
"name": "unregisterScheme",
"outputs": [
{
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_avatar",
"type": "address"
}
],
"name": "unregisterSelf",
"outputs": [
{
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "_scheme",
"type": "address"
},
{
"name": "_avatar",
"type": "address"
}
],
"name": "isSchemeRegistered",
"outputs": [
{
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "_scheme",
"type": "address"
},
{
"name": "_avatar",
"type": "address"
}
],
"name": "getSchemeParameters",
"outputs": [
{
"name": "",
"type": "bytes32"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "_globalConstraint",
"type": "address"
},
{
"name": "_avatar",
"type": "address"
}
],
"name": "getGlobalConstraintParameters",
"outputs": [
{
"name": "",
"type": "bytes32"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "_scheme",
"type": "address"
},
{
"name": "_avatar",
"type": "address"
}
],
"name": "getSchemePermissions",
"outputs": [
{
"name": "",
"type": "bytes4"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "_avatar",
"type": "address"
}
],
"name": "globalConstraintsCount",
"outputs": [
{
"name": "",
"type": "uint256"
},
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "_globalConstraint",
"type": "address"
},
{
"name": "_avatar",
"type": "address"
}
],
"name": "isGlobalConstraintRegistered",
"outputs": [
{
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_globalConstraint",
"type": "address"
},
{
"name": "_params",
"type": "bytes32"
},
{
"name": "_avatar",
"type": "address"
}
],
"name": "addGlobalConstraint",
"outputs": [
{
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_globalConstraint",
"type": "address"
},
{
"name": "_avatar",
"type": "address"
}
],
"name": "removeGlobalConstraint",
"outputs": [
{
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_newController",
"type": "address"
},
{
"name": "_avatar",
"type": "address"
}
],
"name": "upgradeController",
"outputs": [
{
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_contract",
"type": "address"
},
{
"name": "_data",
"type": "bytes"
},
{
"name": "_avatar",
"type": "address"
}
],
"name": "genericCall",
"outputs": [
{
"name": "",
"type": "bytes32"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_amountInWei",
"type": "uint256"
},
{
"name": "_to",
"type": "address"
},
{
"name": "_avatar",
"type": "address"
}
],
"name": "sendEther",
"outputs": [
{
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_externalToken",
"type": "address"
},
{
"name": "_to",
"type": "address"
},
{
"name": "_value",
"type": "uint256"
},
{
"name": "_avatar",
"type": "address"
}
],
"name": "externalTokenTransfer",
"outputs": [
{
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_externalToken",
"type": "address"
},
{
"name": "_from",
"type": "address"
},
{
"name": "_to",
"type": "address"
},
{
"name": "_value",
"type": "uint256"
},
{
"name": "_avatar",
"type": "address"
}
],
"name": "externalTokenTransferFrom",
"outputs": [
{
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_externalToken",
"type": "address"
},
{
"name": "_spender",
"type": "address"
},
{
"name": "_addedValue",
"type": "uint256"
},
{
"name": "_avatar",
"type": "address"
}
],
"name": "externalTokenIncreaseApproval",
"outputs": [
{
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_externalToken",
"type": "address"
},
{
"name": "_spender",
"type": "address"
},
{
"name": "_subtractedValue",
"type": "uint256"
},
{
"name": "_avatar",
"type": "address"
}
],
"name": "externalTokenDecreaseApproval",
"outputs": [
{
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "_avatar",
"type": "address"
}
],
"name": "getNativeReputation",
"outputs": [
{
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
}
],
"bytecode": "0x",
"deployedBytecode": "0x",
"sourceMap": "",
"deployedSourceMap": "",
"source": "pragma solidity ^0.4.25;\n\nimport \"./Avatar.sol\";\nimport \"../globalConstraints/GlobalConstraintInterface.sol\";\n\n/**\n * @title Controller contract\n * @dev A controller controls the organizations tokens ,reputation and avatar.\n * It is subject to a set of schemes and constraints that determine its behavior.\n * Each scheme has it own parameters and operation permissions.\n */\ninterface ControllerInterface {\n\n /**\n * @dev Mint `_amount` of reputation that are assigned to `_to` .\n * @param _amount amount of reputation to mint\n * @param _to beneficiary address\n * @return bool which represents a success\n */\n function mintReputation(uint256 _amount, address _to,address _avatar)\n external\n returns(bool);\n\n /**\n * @dev Burns `_amount` of reputation from `_from`\n * @param _amount amount of reputation to burn\n * @param _from The address that will lose the reputation\n * @return bool which represents a success\n */\n function burnReputation(uint256 _amount, address _from,address _avatar)\n external\n returns(bool);\n\n /**\n * @dev mint tokens .\n * @param _amount amount of token to mint\n * @param _beneficiary beneficiary address\n * @param _avatar address\n * @return bool which represents a success\n */\n function mintTokens(uint256 _amount, address _beneficiary,address _avatar)\n external\n returns(bool);\n\n /**\n * @dev register or update a scheme\n * @param _scheme the address of the scheme\n * @param _paramsHash a hashed configuration of the usage of the scheme\n * @param _permissions the permissions the new scheme will have\n * @param _avatar address\n * @return bool which represents a success\n */\n function registerScheme(address _scheme, bytes32 _paramsHash, bytes4 _permissions,address _avatar)\n external\n returns(bool);\n\n /**\n * @dev unregister a scheme\n * @param _avatar address\n * @param _scheme the address of the scheme\n * @return bool which represents a success\n */\n function unregisterScheme(address _scheme,address _avatar)\n external\n returns(bool);\n /**\n * @dev unregister the caller's scheme\n * @param _avatar address\n * @return bool which represents a success\n */\n function unregisterSelf(address _avatar) external returns(bool);\n\n function isSchemeRegistered( address _scheme,address _avatar) external view returns(bool);\n\n function getSchemeParameters(address _scheme,address _avatar) external view returns(bytes32);\n\n function getGlobalConstraintParameters(address _globalConstraint,address _avatar) external view returns(bytes32);\n\n function getSchemePermissions(address _scheme,address _avatar) external view returns(bytes4);\n\n /**\n * @dev globalConstraintsCount return the global constraint pre and post count\n * @return uint globalConstraintsPre count.\n * @return uint globalConstraintsPost count.\n */\n function globalConstraintsCount(address _avatar) external view returns(uint,uint);\n\n function isGlobalConstraintRegistered(address _globalConstraint,address _avatar) external view returns(bool);\n\n /**\n * @dev add or update Global Constraint\n * @param _globalConstraint the address of the global constraint to be added.\n * @param _params the constraint parameters hash.\n * @param _avatar the avatar of the organization\n * @return bool which represents a success\n */\n function addGlobalConstraint(address _globalConstraint, bytes32 _params,address _avatar)\n external returns(bool);\n\n /**\n * @dev remove Global Constraint\n * @param _globalConstraint the address of the global constraint to be remove.\n * @param _avatar the organization avatar.\n * @return bool which represents a success\n */\n function removeGlobalConstraint (address _globalConstraint,address _avatar)\n external returns(bool);\n\n /**\n * @dev upgrade the Controller\n * The function will trigger an event 'UpgradeController'.\n * @param _newController the address of the new controller.\n * @param _avatar address\n * @return bool which represents a success\n */\n function upgradeController(address _newController,address _avatar)\n external returns(bool);\n\n /**\n * @dev perform a generic call to an arbitrary contract\n * @param _contract the contract's address to call\n * @param _data ABI-encoded contract call to call `_contract` address.\n * @param _avatar the controller's avatar address\n * @return bytes32 - the return value of the called _contract's function.\n */\n function genericCall(address _contract,bytes _data,address _avatar)\n external\n returns(bytes32);\n\n /**\n * @dev send some ether\n * @param _amountInWei the amount of ether (in Wei) to send\n * @param _to address of the beneficiary\n * @param _avatar address\n * @return bool which represents a success\n */\n function sendEther(uint _amountInWei, address _to,address _avatar)\n external returns(bool);\n\n /**\n * @dev send some amount of arbitrary ERC20 Tokens\n * @param _externalToken the address of the Token Contract\n * @param _to address of the beneficiary\n * @param _value the amount of ether (in Wei) to send\n * @param _avatar address\n * @return bool which represents a success\n */\n function externalTokenTransfer(StandardToken _externalToken, address _to, uint _value,address _avatar)\n external\n returns(bool);\n\n /**\n * @dev transfer token \"from\" address \"to\" address\n * One must to approve the amount of tokens which can be spend from the\n * \"from\" account.This can be done using externalTokenApprove.\n * @param _externalToken the address of the Token Contract\n * @param _from address of the account to send from\n * @param _to address of the beneficiary\n * @param _value the amount of ether (in Wei) to send\n * @param _avatar address\n * @return bool which represents a success\n */\n function externalTokenTransferFrom(StandardToken _externalToken, address _from, address _to, uint _value,address _avatar)\n external\n returns(bool);\n\n /**\n * @dev increase approval for the spender address to spend a specified amount of tokens\n * on behalf of msg.sender.\n * @param _externalToken the address of the Token Contract\n * @param _spender address\n * @param _addedValue the amount of ether (in Wei) which the approval is referring to.\n * @param _avatar address\n * @return bool which represents a success\n */\n function externalTokenIncreaseApproval(StandardToken _externalToken, address _spender, uint _addedValue,address _avatar)\n external\n returns(bool);\n\n /**\n * @dev decrease approval for the spender address to spend a specified amount of tokens\n * on behalf of msg.sender.\n * @param _externalToken the address of the Token Contract\n * @param _spender address\n * @param _subtractedValue the amount of ether (in Wei) which the approval is referring to.\n * @param _avatar address\n * @return bool which represents a success\n */\n function externalTokenDecreaseApproval(StandardToken _externalToken, address _spender, uint _subtractedValue,address _avatar)\n external\n returns(bool);\n\n /**\n * @dev getNativeReputation\n * @param _avatar the organization avatar.\n * @return organization native reputation\n */\n function getNativeReputation(address _avatar)\n external\n view\n returns(address);\n}\n",
"sourcePath": "/Users/oren/daostack/daostack2/daostack/contracts/controller/ControllerInterface.sol",
"ast": {
"absolutePath": "/Users/oren/daostack/daostack2/daostack/contracts/controller/ControllerInterface.sol",
"exportedSymbols": {
"ControllerInterface": [
2006
]
},
"id": 2007,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 1775,
"literals": [
"solidity",
"^",
"0.4",
".25"
],
"nodeType": "PragmaDirective",
"src": "0:24:3"
},
{
"absolutePath": "/Users/oren/daostack/daostack2/daostack/contracts/controller/Avatar.sol",
"file": "./Avatar.sol",
"id": 1776,
"nodeType": "ImportDirective",
"scope": 2007,
"sourceUnit": 334,
"src": "26:22:3",
"symbolAliases": [],
"unitAlias": ""
},
{
"absolutePath": "/Users/oren/daostack/daostack2/daostack/contracts/globalConstraints/GlobalConstraintInterface.sol",
"file": "../globalConstraints/GlobalConstraintInterface.sol",
"id": 1777,
"nodeType": "ImportDirective",
"scope": 2007,
"sourceUnit": 3843,
"src": "49:60:3",
"symbolAliases": [],
"unitAlias": ""
},
{
"baseContracts": [],
"contractDependencies": [],
"contractKind": "interface",
"documentation": "@title Controller contract\n@dev A controller controls the organizations tokens ,reputation and avatar.\nIt is subject to a set of schemes and constraints that determine its behavior.\nEach scheme has it own parameters and operation permissions.",
"fullyImplemented": false,
"id": 2006,
"linearizedBaseContracts": [
2006
],
"name": "ControllerInterface",
"nodeType": "ContractDefinition",
"nodes": [
{
"body": null,
"documentation": "@dev Mint `_amount` of reputation that are assigned to `_to` .\n@param _amount amount of reputation to mint\n@param _to beneficiary address\n@return bool which represents a success",
"id": 1788,
"implemented": false,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "mintReputation",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 1784,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 1779,
"name": "_amount",
"nodeType": "VariableDeclaration",
"scope": 1788,
"src": "657:15:3",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 1778,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "657:7:3",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 1781,
"name": "_to",
"nodeType": "VariableDeclaration",
"scope": 1788,
"src": "674:11:3",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 1780,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "674:7:3",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 1783,
"name": "_avatar",
"nodeType": "VariableDeclaration",
"scope": 1788,
"src": "686:15:3",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 1782,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "686:7:3",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "656:46:3"
},
"payable": false,
"returnParameters": {
"id": 1787,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 1786,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 1788,
"src": "728:4:3",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 1785,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "728:4:3",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "727:6:3"
},
"scope": 2006,
"src": "633:101:3",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "external"
},
{
"body": null,
"documentation": "@dev Burns `_amount` of reputation from `_from`\n@param _amount amount of reputation to burn\n@param _from The address that will lose the reputation\n@return bool which represents a success",
"id": 1799,
"implemented": false,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "burnReputation",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 1795,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 1790,
"name": "_amount",
"nodeType": "VariableDeclaration",
"scope": 1799,
"src": "995:15:3",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 1789,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "995:7:3",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 1792,
"name": "_from",
"nodeType": "VariableDeclaration",
"scope": 1799,
"src": "1012:13:3",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 1791,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1012:7:3",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 1794,
"name": "_avatar",
"nodeType": "VariableDeclaration",
"scope": 1799,
"src": "1026:15:3",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 1793,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1026:7:3",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "994:48:3"
},
"payable": false,
"returnParameters": {
"id": 1798,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 1797,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 1799,
"src": "1068:4:3",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 1796,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "1068:4:3",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1067:6:3"
},
"scope": 2006,
"src": "971:103:3",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "external"
},
{
"body": null,
"documentation": "@dev mint tokens .\n@param _amount amount of token to mint\n@param _beneficiary beneficiary address\n@param _avatar address\n@return bool which represents a success",
"id": 1810,
"implemented": false,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "mintTokens",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 1806,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 1801,
"name": "_amount",
"nodeType": "VariableDeclaration",
"scope": 1810,
"src": "1313:15:3",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 1800,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1313:7:3",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 1803,
"name": "_beneficiary",
"nodeType": "VariableDeclaration",
"scope": 1810,
"src": "1330:20:3",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 1802,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1330:7:3",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 1805,
"name": "_avatar",
"nodeType": "VariableDeclaration",
"scope": 1810,
"src": "1351:15:3",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 1804,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1351:7:3",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1312:55:3"
},
"payable": false,
"returnParameters": {
"id": 1809,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 1808,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 1810,
"src": "1393:4:3",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 1807,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "1393:4:3",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1392:6:3"
},
"scope": 2006,
"src": "1293:106:3",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "external"
},
{
"body": null,
"documentation": "@dev register or update a scheme\n@param _scheme the address of the scheme\n@param _paramsHash a hashed configuration of the usage of the scheme\n@param _permissions the permissions the new scheme will have\n@param _avatar address\n@return bool which represents a success",
"id": 1823,
"implemented": false,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "registerScheme",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 1819,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 1812,
"name": "_scheme",
"nodeType": "VariableDeclaration",
"scope": 1823,
"src": "1738:15:3",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 1811,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1738:7:3",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 1814,
"name": "_paramsHash",
"nodeType": "VariableDeclaration",
"scope": 1823,
"src": "1755:19:3",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 1813,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "1755:7:3",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 1816,
"name": "_permissions",
"nodeType": "VariableDeclaration",
"scope": 1823,
"src": "1776:19:3",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
},
"typeName": {
"id": 1815,
"name": "bytes4",
"nodeType": "ElementaryTypeName",
"src": "1776:6:3",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 1818,
"name": "_avatar",
"nodeType": "VariableDeclaration",
"scope": 1823,
"src": "1796:15:3",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 1817,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1796:7:3",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1737:75:3"
},
"payable": false,
"returnParameters": {
"id": 1822,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 1821,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 1823,
"src": "1838:4:3",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 1820,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "1838:4:3",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1837:6:3"
},
"scope": 2006,
"src": "1714:130:3",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "external"
},
{
"body": null,
"documentation": "@dev unregister a scheme\n@param _avatar address\n@param _scheme the address of the scheme\n@return bool which represents a success",
"id": 1832,
"implemented": false,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "unregisterScheme",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 1828,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 1825,
"name": "_scheme",
"nodeType": "VariableDeclaration",
"scope": 1832,
"src": "2049:15:3",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 1824,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "2049:7:3",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 1827,
"name": "_avatar",
"nodeType": "VariableDeclaration",
"scope": 1832,
"src": "2065:15:3",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 1826,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "2065:7:3",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "2048:33:3"
},
"payable": false,
"returnParameters": {
"id": 1831,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 1830,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 1832,
"src": "2107:4:3",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 1829,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "2107:4:3",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "2106:6:3"
},
"scope": 2006,
"src": "2023:90:3",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "external"
},
{
"body": null,
"documentation": "@dev unregister the caller's scheme\n@param _avatar address\n@return bool which represents a success",
"id": 1839,
"implemented": false,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "unregisterSelf",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 1835,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 1834,
"name": "_avatar",
"nodeType": "VariableDeclaration",
"scope": 1839,
"src": "2278:15:3",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 1833,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "2278:7:3",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "2277:17:3"
},
"payable": false,
"returnParameters": {
"id": 1838,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 1837,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 1839,
"src": "2312:4:3",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 1836,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "2312:4:3",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "2311:6:3"
},
"scope": 2006,
"src": "2254:64:3",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "external"
},
{
"body": null,
"documentation": null,
"id": 1848,
"implemented": false,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "isSchemeRegistered",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 1844,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 1841,
"name": "_scheme",
"nodeType": "VariableDeclaration",
"scope": 1848,
"src": "2353:15:3",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 1840,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "2353:7:3",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 1843,
"name": "_avatar",
"nodeType": "VariableDeclaration",
"scope": 1848,