UNPKG

@gooddollar/goodcontracts

Version:
920 lines 1.89 MB
{ "contractName": "Controller", "abi": [ { "constant": true, "inputs": [ { "name": "", "type": "address" } ], "name": "globalConstraintsRegisterPre", "outputs": [ { "name": "isRegistered", "type": "bool" }, { "name": "index", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "newController", "outputs": [ { "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "name": "", "type": "uint256" } ], "name": "globalConstraintsPre", "outputs": [ { "name": "gcAddress", "type": "address" }, { "name": "params", "type": "bytes32" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "avatar", "outputs": [ { "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "name": "", "type": "address" } ], "name": "globalConstraintsRegisterPost", "outputs": [ { "name": "isRegistered", "type": "bool" }, { "name": "index", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "nativeReputation", "outputs": [ { "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "name": "", "type": "address" } ], "name": "schemes", "outputs": [ { "name": "paramsHash", "type": "bytes32" }, { "name": "permissions", "type": "bytes4" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "nativeToken", "outputs": [ { "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "name": "", "type": "uint256" } ], "name": "globalConstraintsPost", "outputs": [ { "name": "gcAddress", "type": "address" }, { "name": "params", "type": "bytes32" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "inputs": [ { "name": "_avatar", "type": "address" } ], "payable": false, "stateMutability": "nonpayable", "type": "constructor" }, { "payable": false, "stateMutability": "nonpayable", "type": "fallback" }, { "anonymous": false, "inputs": [ { "indexed": true, "name": "_sender", "type": "address" }, { "indexed": true, "name": "_to", "type": "address" }, { "indexed": false, "name": "_amount", "type": "uint256" } ], "name": "MintReputation", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "name": "_sender", "type": "address" }, { "indexed": true, "name": "_from", "type": "address" }, { "indexed": false, "name": "_amount", "type": "uint256" } ], "name": "BurnReputation", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "name": "_sender", "type": "address" }, { "indexed": true, "name": "_beneficiary", "type": "address" }, { "indexed": false, "name": "_amount", "type": "uint256" } ], "name": "MintTokens", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "name": "_sender", "type": "address" }, { "indexed": true, "name": "_scheme", "type": "address" } ], "name": "RegisterScheme", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "name": "_sender", "type": "address" }, { "indexed": true, "name": "_scheme", "type": "address" } ], "name": "UnregisterScheme", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "name": "_oldController", "type": "address" }, { "indexed": false, "name": "_newController", "type": "address" } ], "name": "UpgradeController", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "name": "_globalConstraint", "type": "address" }, { "indexed": false, "name": "_params", "type": "bytes32" }, { "indexed": false, "name": "_when", "type": "uint8" } ], "name": "AddGlobalConstraint", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "name": "_globalConstraint", "type": "address" }, { "indexed": false, "name": "_index", "type": "uint256" }, { "indexed": false, "name": "_isPre", "type": "bool" } ], "name": "RemoveGlobalConstraint", "type": "event" }, { "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": 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": "_value", "type": "uint256" } ], "name": "genericCall", "outputs": [ { "name": "", "type": "bool" }, { "name": "", "type": "bytes" } ], "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": "_value", "type": "uint256" }, { "name": "_avatar", "type": "address" } ], "name": "externalTokenApproval", "outputs": [ { "name": "", "type": "bool" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "_metaData", "type": "string" }, { "name": "_avatar", "type": "address" } ], "name": "metaData", "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" }, { "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": "_scheme", "type": "address" }, { "name": "_avatar", "type": "address" } ], "name": "getSchemePermissions", "outputs": [ { "name": "", "type": "bytes4" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "name": "_globalConstraint", "type": "address" }, { "name": "", "type": "address" } ], "name": "getGlobalConstraintParameters", "outputs": [ { "name": "", "type": "bytes32" } ], "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" } ], "metadata": "{\"compiler\":{\"version\":\"0.5.4+commit.9549d8ff\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":false,\"inputs\":[{\"name\":\"_scheme\",\"type\":\"address\"},{\"name\":\"_avatar\",\"type\":\"address\"}],\"name\":\"unregisterScheme\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"}],\"name\":\"globalConstraintsRegisterPre\",\"outputs\":[{\"name\":\"isRegistered\",\"type\":\"bool\"},{\"name\":\"index\",\"type\":\"uint256\"}],\"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\":\"newController\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"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\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"globalConstraintsPre\",\"outputs\":[{\"name\":\"gcAddress\",\"type\":\"address\"},{\"name\":\"params\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"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\":\"_externalToken\",\"type\":\"address\"},{\"name\":\"_spender\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"},{\"name\":\"_avatar\",\"type\":\"address\"}],\"name\":\"externalTokenApproval\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"avatar\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"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\":\"_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\":\"_avatar\",\"type\":\"address\"}],\"name\":\"unregisterSelf\",\"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\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"}],\"name\":\"globalConstraintsRegisterPost\",\"outputs\":[{\"name\":\"isRegistered\",\"type\":\"bool\"},{\"name\":\"index\",\"type\":\"uint256\"}],\"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\":\"nativeReputation\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_avatar\",\"type\":\"address\"}],\"name\":\"getNativeReputation\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"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\":\"_scheme\",\"type\":\"address\"},{\"name\":\"_avatar\",\"type\":\"address\"}],\"name\":\"isSchemeRegistered\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"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\":\"_metaData\",\"type\":\"string\"},{\"name\":\"_avatar\",\"type\":\"address\"}],\"name\":\"metaData\",\"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\":\"_value\",\"type\":\"uint256\"}],\"name\":\"genericCall\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"},{\"name\":\"\",\"type\":\"bytes\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"}],\"name\":\"schemes\",\"outputs\":[{\"name\":\"paramsHash\",\"type\":\"bytes32\"},{\"name\":\"permissions\",\"type\":\"bytes4\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_globalConstraint\",\"type\":\"address\"},{\"name\":\"\",\"type\":\"address\"}],\"name\":\"getGlobalConstraintParameters\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"nativeToken\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"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\":\"_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\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"globalConstraintsPost\",\"outputs\":[{\"name\":\"gcAddress\",\"type\":\"address\"},{\"name\":\"params\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"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\":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\":\"_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\"},{\"inputs\":[{\"name\":\"_avatar\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"fallback\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_sender\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"_to\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"MintReputation\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_sender\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"_from\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"BurnReputation\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_sender\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"_beneficiary\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"MintTokens\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_sender\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"_scheme\",\"type\":\"address\"}],\"name\":\"RegisterScheme\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_sender\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"_scheme\",\"type\":\"address\"}],\"name\":\"UnregisterScheme\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_oldController\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_newController\",\"type\":\"address\"}],\"name\":\"UpgradeController\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_globalConstraint\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_params\",\"type\":\"bytes32\"},{\"indexed\":false,\"name\":\"_when\",\"type\":\"uint8\"}],\"name\":\"AddGlobalConstraint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_globalConstraint\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_index\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"_isPre\",\"type\":\"bool\"}],\"name\":\"RemoveGlobalConstraint\",\"type\":\"event\"}],\"devdoc\":{\"details\":\"A controller controls the organizations tokens, reputation and avatar. It is subject to a set of schemes and constraints that determine its behavior. Each scheme has it own parameters and operation permissions.\",\"methods\":{\"addGlobalConstraint(address,bytes32,address)\":{\"details\":\"add or update Global Constraint\",\"params\":{\"_globalConstraint\":\"the address of the global constraint to be added.\",\"_params\":\"the constraint parameters hash.\"},\"return\":\"bool which represents a success\"},\"burnReputation(uint256,address,address)\":{\"details\":\"Burns `_amount` of reputation from `_from`\",\"params\":{\"_amount\":\"amount of reputation to burn\",\"_from\":\"The address that will lose the reputation\"},\"return\":\"bool which represents a success\"},\"externalTokenApproval(address,address,uint256,address)\":{\"details\":\"externalTokenApproval approve the spender address to spend a specified amount of tokens on behalf of msg.sender.\",\"params\":{\"_externalToken\":\"the address of the Token Contract\",\"_spender\":\"address\",\"_value\":\"the amount of ether (in Wei) which the approval is referring to.\"},\"return\":\"bool which represents a success\"},\"externalTokenTransfer(address,address,uint256,address)\":{\"details\":\"send some amount of arbitrary ERC20 Tokens\",\"params\":{\"_externalToken\":\"the address of the Token Contract\",\"_to\":\"address of the beneficiary\",\"_value\":\"the amount of ether (in Wei) to send\"},\"return\":\"bool which represents a success\"},\"externalTokenTransferFrom(address,address,address,uint256,address)\":{\"details\":\"transfer token \\\"from\\\" address \\\"to\\\" address One must to approve the amount of tokens which can be spend from the \\\"from\\\" account.This can be done using externalTokenApprove.\",\"params\":{\"_externalToken\":\"the address of the Token Contract\",\"_from\":\"address of the account to send from\",\"_to\":\"address of the beneficiary\",\"_value\":\"the amount of ether (in Wei) to send\"},\"return\":\"bool which represents a success\"},\"genericCall(address,bytes,address,uint256)\":{\"details\":\"perform a generic call to an arbitrary contract\",\"params\":{\"_avatar\":\"the controller's avatar address\",\"_contract\":\"the contract's address to call\",\"_data\":\"ABI-encoded contract call to call `_contract` address.\",\"_value\":\"value (ETH) to transfer with the transaction\"},\"return\":\"bool -success bytes - the return value of the called _contract's function.\"},\"getNativeReputation(address)\":{\"details\":\"getNativeReputation\",\"params\":{\"_avatar\":\"the organization avatar.\"},\"return\":\"organization native reputation\"},\"globalConstraintsCount(address)\":{\"details\":\"globalConstraintsCount return the global constraint pre and post count\",\"return\":\"uint256 globalConstraintsPre count.uint256 globalConstraintsPost count.\"},\"metaData(string,address)\":{\"details\":\"metaData emits an event with a string, should contain the hash of some meta data.\",\"params\":{\"_avatar\":\"Avatar\",\"_metaData\":\"a string representing a hash of the meta data\"},\"return\":\"bool which represents a success\"},\"mintReputation(uint256,address,address)\":{\"details\":\"Mint `_amount` of reputation that are assigned to `_to` .\",\"params\":{\"_amount\":\"amount of reputation to mint\",\"_to\":\"beneficiary address\"},\"return\":\"bool which represents a success\"},\"mintTokens(uint256,address,address)\":{\"details\":\"mint tokens .\",\"params\":{\"_amount\":\"amount of token to mint\",\"_beneficiary\":\"beneficiary address\"},\"return\":\"bool which represents a success\"},\"registerScheme(address,bytes32,bytes4,address)\":{\"details\":\"register a scheme\",\"params\":{\"_paramsHash\":\"a hashed configuration of the usage of the scheme\",\"_permissions\":\"the permissions the new scheme will have\",\"_scheme\":\"the address of the scheme\"},\"return\":\"bool which represents a success\"},\"removeGlobalConstraint(address,address)\":{\"details\":\"remove Global Constraint\",\"params\":{\"_globalConstraint\":\"the address of the global constraint to be remove.\"},\"return\":\"bool which represents a success\"},\"sendEther(uint256,address,address)\":{\"details\":\"send some ether\",\"params\":{\"_amountInWei\":\"the amount of ether (in Wei) to send\",\"_to\":\"address of the beneficiary\"},\"return\":\"bool which represents a success\"},\"unregisterScheme(address,address)\":{\"details\":\"unregister a scheme\",\"params\":{\"_scheme\":\"the address of the scheme\"},\"return\":\"bool which represents a success\"},\"unregisterSelf(address)\":{\"details\":\"unregister the caller's scheme\",\"return\":\"bool which represents a success\"},\"upgradeController(address,address)\":{\"details\":\"upgrade the Controller The function will trigger an event 'UpgradeController'.\",\"params\":{\"_newController\":\"the address of the new controller.\"},\"return\":\"bool which represents a success\"}},\"title\":\"Controller contract\"},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"@daostack/arc/contracts/controller/Controller.sol\":\"Controller\"},\"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/Controller.sol\":{\"keccak256\":\"0xb46102ed94ae64c1c4cdb758e0f35b652f3bea6f7a32fa1fe988cbbeb489872a\",\"urls\":[\"bzzr://9467146ce6219d7bef810e57371991ed2fac2d8bdf3aae036c226b1b8ecb162b\"]},\"@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/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": "0x60806040523480156200001157600080fd5b5060405160208062003f0b833981018060405260208110156200003357600080fd5b505160018054600160a060020a031916600160a060020a038084169190911791829055604080517fe1758bd80000000000000000000000000000000000000000000000000000000081529051929091169163e1758bd891600480820192602092909190829003018186803b158015620000ab57600080fd5b505afa158015620000c0573d6000803e3d6000fd5b505050506040513d6020811015620000d757600080fd5b505160028054600160a060020a031916600160a060020a03928316179055600154604080517f89ae1c90000000000000000000000000000000000000000000000000000000008152905191909216916389ae1c90916004808301926020929190829003018186803b1580156200014c57600080fd5b505afa15801562000161573d6000803e3d6000fd5b505050506040513d60208110156200017857600080fd5b505160038054600160a060020a031916600160a060020a039092169190911790555060408051808201825260008082527c1f000000000000000000000000000000000000000000000000000000006020808401918252338352829052928120915182559151600191909101805463ffffffff19167c0100000000000000000000000000000000000000000000000000000000909204919091179055613ce79081906200022490396000f3fe608060405234801561001057600080fd5b50600436106101e95760003560e060020a9004806389ae1c9011610113578063e08738da116100a6578063e8c98b2211610075578063e8c98b2214610842578063eaf994b21461085f578063f76488be14610893578063fb4856a2146108c1576101e9565b8063e08738da14610792578063e1758bd8146107c0578063e4537a74146107c8578063e869d45f146107fe576101e9565b8063b9a04cdd116100e2578063b9a04cdd14610583578063c9b62eb1146105bf578063d1b7089a14610638578063db6149ce1461074a576101e9565b806389ae1c90146104dc5780638da03997146104e45780639b51e35a1461050a5780639be2faed14610555576101e9565b806351803cd81161018b5780636c525b131161015a5780636c525b131461041d5780636e94d27814610443578063814784f614610477578063824f2f1f1461049d576101e9565b806351803cd8146103715780635aef7de6146103ad578063634965da146103b55780636407e432146103e9576101e9565b80633a02263c116101c75780633a02263c146102b157806342427bf8146102d55780634422d372146103035780634f52b5be14610343576101e9565b8063039de01d146101ee578063177eebb0146102305780631c4d560814610271575b600080fd5b61021c6004803603604081101561020457600080fd5b50600160a060020a0381358116916020013516610907565b604080519115158252519081900360200190f35b6102566004803603602081101561024657600080fd5b5035600160a060020a0316610c60565b60408051921515835260208301919091528051918290030190f35b61029f6004803603604081101561028757600080fd5b50600160a060020a0381358116916020013516610c7f565b60408051918252519081900360200190f35b6102b9610cc1565b60408051600160a060020a039092168252519081900360200190f35b61021c600480360360408110156102eb57600080fd5b50600160a060020a0381358116916020013516610cd0565b6103206004803603602081101561031957600080fd5b5035611243565b60408051600160a060020a03909316835260208301919091528051918290030190f35b61021c6004803603604081101561035957600080fd5b50600160a060020a0381358116916020013516611279565b61021c6004803603608081101561038757600080fd5b50600160a060020a038135811691602081013582169160408201359160600135166116ad565b6102b96119b5565b61021c600480360360608110156103cb57600080fd5b50803590600160a060020a03602082013581169160400135166119c4565b61021c600480360360608110156103ff57600080fd5b50803590600160a060020a0360208201358116916040013516611cc3565b61021c6004803603602081101561043357600080fd5b5035600160a060020a0316611ff9565b61021c6004803603606081101561045957600080fd5b50803590600160a060020a0360208201358116916040013516612082565b6102566004803603602081101561048d57600080fd5b5035600160a060020a03166123b8565b6104c3600480360360208110156104b357600080fd5b5035600160a060020a03166123d7565b6040805192835260208301919091528051918290030190f35b6102b9612409565b6102b9600480360360208110156104fa57600080fd5b5035600160a060020a0316612418565b6105386004803603604081101561052057600080fd5b50600160a060020a038135811691602001351661244a565b60408051600160e060020a03199092168252519081900360200190f35b61021c6004803603604081101561056b57600080fd5b50600160a060020a0381358116916020013516612490565b61021c6004803603608081101561059957600080fd5b50600160a060020a038135811691602081013582169160408201359160600135166124c0565b61021c600480360360408110156105d557600080fd5b8101906020810181356401000000008111156105f057600080fd5b82018360208201111561060257600080fd5b8035906020019184600183028401116401000000008311171561062457600080fd5b919350915035600160a060020a03166127be565b6106c76004803603608081101561064e57600080fd5b600160a060020a03823516919081019060408101602082013564010000000081111561067957600080fd5b82018360208201111561068b57600080fd5b803590602001918460018302840111640100000000831117156106ad57600080fd5b9193509150600160a060020a0381351690602001356128e3565b604051808315151515815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561070e5781810151838201526020016106f6565b50505050905090810190601f16801561073b5780820380516001836020036101000a031916815260200191505b50935050505060405180910390f35b6107706004803603602081101561076057600080fd5b5035600160a060020a0316612ca4565b60408051928352600160e060020a031990911660208301528051918290030190f35b61029f600480360360408110156107a857600080fd5b50600160a060020a0381358116916020013516612cc3565b6102b9612d93565b61021c600480360360608110156107de57600080fd5b50600160a060020a03813581169160208101359160409091013516612da2565b61021c6004803603608081101561081457600080fd5b50600160a060020a038135811691602081013591600160e060020a03196040830135169160600135166131ab565b6103206004803603602081101561085857600080fd5b5035613554565b61021c6004803603606081101561087557600080fd5b50803590600160a060020a0360208201358116916040013516613562565b61021c600480360360408110156108a957600080fd5b50600160a060020a0381358116916020013516613898565b61021c600480360360a08110156108d757600080fd5b50600160a060020a03813581169160208101358216916040820135811691606081013591608090910135166138fa565b3360009081526020819052604081206001015460e060020a027c02000000000000000000000000000000000000000000000000000000009081161461094b57600080fd5b7f756e7265676973746572536368656d650000000000000000000000000000000060005b600554811015610a6557600580548290811061098757fe5b600091825260209091206002909102015460058054600160a060020a039092169163c1786ab2913391859081106109ba57fe5b906000526020600020906002020160010154856040518463ffffffff1660e060020a0281526004018084600160a060020a0316600160a060020a031681526020018381526020018281526020019350505050602060405180830381600087803b158015610a2657600080fd5b505af1158015610a3a573d6000803e3d6000fd5b505050506040513d6020811015610a5057600080fd5b50511515610a5d57600080fd5b60010161096f565b6001548490600160a060020a03808316911614610a8157600080fd5b610a8a86613c0b565b1515610a995760009350610b5c565b33600090815260208190526040808220600190810154600160a060020a038a168452919092209091015460e060020a918202199102167c1f000000000000000000000000000000000000000000000000000000001615610af857600080fd5b604051600160a060020a0387169033907f10bb2cf04cb8b902a8e736d494f1a51003be6d4b16ef6fb95ce62c38445023bf90600090a3600160a060020a03861660009081526020819052604081209081556001908101805463ffffffff1916905593505b50600090505b600654811015610c58576006805482908110610b7a57fe5b600091825260209091206002909102015460068054600160a060020a0390921691638043154d91339185908110610bad57fe5b906000526020600020906002020160010154856040518463ffffffff1660e060020a0281526004018084600160a060020a0316600160a060020a031681526020018381526020018281526020019350505050602060405180830381600087803b158015610c1957600080fd5b505af1158015610c2d573d6000803e3d6000fd5b505050506040513d6020811015610c4357600080fd5b50511515610c5057600080fd5b600101610b62565b505092915050565b6007602052600090815260409020805460019091015460ff9091169082565b6001546000908290600160a060020a03808316911614610c9e57600080fd5b600160a060020a03841660009081526020819052604090205491505b5092915050565b600454600160a060020a031681565b3360009081526020819052604081206001015460e060020a027c080000000000000000000000000000000000000000000000000000000090811614610d1457600080fd5b6001548290600160a060020a03808316911614610d3057600080fd5b600454600160a060020a031615610d4657600080fd5b600160a060020a0384161515610d5b57600080fd5b6004805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038681169182178355600154604080517ff2fde38b00000000000000000000000000000000000000000000000000000000815294850193909352915191169163f2fde38b91602480830192600092919082900301818387803b158015610de257600080fd5b505af1158015610df6573d6000803e3d6000fd5b5050505083600160a060020a0316600160009054906101000a9004600160a060020a0316600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a02815260040160206040518083038186803b158015610e5557600080fd5b505afa158015610e69573d6000803e3d6000fd5b505050506040513d6020811015610e7f57600080fd5b5051600160a060020a031614610e9457600080fd5b600254604080517f8da5cb5b00000000000000000000000000000000000000000000000000000000815290513092600160a060020a031691638da5cb5b916004808301926020929190829003018186803b158015610ef157600080fd5b505afa158015610f05573d6000803e3d6000fd5b505050506040513d6020811015610f1b57600080fd5b5051600160a060020a0316141561104557600254604080517ff2fde38b000000000000000000000000000000000000000000000000000000008152600160a060020a0387811660048301529151919092169163f2fde38b91602480830192600092919082900301818387803b158015610f9357600080fd5b505af1158015610fa7573d6000803e3d6000fd5b5050505083600160a060020a0316600260009054906101000a9004600160a060020a0316600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a02815260040160206040518083038186803b15801561100657600080fd5b505afa15801561101a573d6000803e3d6000fd5b505050506040513d602081101561103057600080fd5b5051600160a060020a03161461104557600080fd5b600354604080517f8da5cb5b00000000000000000000000000000000000000000000000000000000815290513092600160a060020a031691638da5cb5b916004808301926020929190829003018186803b1580156110a257600080fd5b505afa1580156110b6573d6000803e3d6000fd5b505050506040513d60208110156110cc57600080fd5b5051600160a060020a031614156111f657600354604080517ff2fde38b000000000000000000000000000000000000000000000000000000008152600160a060020a0387811660048301529151919092169163f2fde38b91602480830192600092919082900301818387803b15801561114457600080fd5b505af1158015611158573d6000803e3d6000fd5b5050505083600160a060020a0316600360009054906101000a9004600160a060020a0316600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a02815260040160206040518083038186803b1580156111b757600080fd5b505afa1580156111cb573d6000803e3d6000fd5b505050506040513d60208110156111e157600080fd5b5051600160a060020a0316146111f657600080fd5b60045460408051600160a060020a039290921682525130917fdb7cbacf8df312d794506c0cc9af07f64d29ca075796ea2e950a3832cc9a63dd919081900360200190a25060019392505050565b600580548290811061125157fe5b600091825260209091206002909102018054600190910154600160a060020a03909116915082565b3360009081526020819052604081206001015460e060020a027c0400000000000000000000000000000000000000000000000000000000908116146112bd57600080fd5b6001548290600160a060020a038083169116146112d957600080fd5b6112e1613c34565b6112e9613c34565b600086600160a060020a031663e2b0caef6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561132957600080fd5b505af115801561133d573d6000803e3d6000fd5b505050506040513d602081101561135357600080fd5b5051905060008082600281111561136657fe5b148061137d5750600282600281111561137b57fe5b145b156114ce57600160a060020a0388166000908152600760209081526040918290208251808401909352805460ff161580158452600190910154918301919091529094506114ce576001600580549050038460200151101561148f576005805460001981019081106113ea57fe5b6000918252602091829020604080518082019091526002909202018054600160a060020a03168252600101548183015290850151600580549295508592909190811061143257fe5b60009182526020808320845160029390930201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03938416178155938101516001948501558781015187519092168352600790526040909120909101555b60058054906114a2906000198301613c4b565b5050600160a060020a0387166000908152600760205260408120805460ff191681556001908101919091555b60018260028111156114dc57fe5b14806114f3575060028260028111156114f157fe5b145b1561164457600160a060020a0388166000908152600860209081526040918290208251808401909352805460ff1615801584526001909101549183019190915290945061164457600160068054905003846020015110156116055760068054600019810190811061156057fe5b6000918252602091829020604080518082019091526002909202018054600160a060020a0316825260010154818301529085015160068054929550859290919081106115a857fe5b60009182526020808320845160029390930201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03938416178155938101516001948501558781015187519092168352600890526040909120909101555b6006805490611618906000198301613c4b565b5050600160a060020a0387166000908152600860205260408120805460ff191681556001908101919091555b80156116a2576020840151600160a060020a038916907fcdf1a50ea6b7de555bd409f8a4a53ea43c6dc6b4caa961889da9e005f21bbaa990600085600281111561168a57fe5b60408051938452911460208301528051918290030190a25b979650505050505050565b3360009081526020819052604081206001015460e060020a9081028116146116d457600080fd5b7f65787465726e616c546f6b656e496e637265617365417070726f766