UNPKG

@aragon/apps-payroll

Version:

_**Code in Github:**_ [aragon-apps/apps/payroll](https://github.com/aragon/aragon-apps/tree/master/future-apps/payroll)

747 lines 263 kB
{ "contractName": "DAOFactory", "abi": [ { "constant": true, "inputs": [], "name": "baseACL", "outputs": [ { "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "regFactory", "outputs": [ { "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "baseKernel", "outputs": [ { "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "inputs": [ { "name": "_baseKernel", "type": "address" }, { "name": "_baseACL", "type": "address" }, { "name": "_regFactory", "type": "address" } ], "payable": false, "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": false, "name": "dao", "type": "address" } ], "name": "DeployDAO", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "name": "reg", "type": "address" } ], "name": "DeployEVMScriptRegistry", "type": "event" }, { "constant": false, "inputs": [ { "name": "_root", "type": "address" } ], "name": "newDAO", "outputs": [ { "name": "", "type": "address" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" } ], "bytecode": "0x608060405234801561001057600080fd5b5060405160608061107d833981016040908152815160208301519190920151600160a060020a0381161561005a5760028054600160a060020a031916600160a060020a0383161790555b5060008054600160a060020a03938416600160a060020a03199182161790915560018054929093169116179055610fe7806100966000396000f3006080604052600436106100615763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663086b339e811461006657806321687444146100a4578063656362b5146100d2578063b16dd130146100e7575b600080fd5b34801561007257600080fd5b5061007b6100fc565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b3480156100b057600080fd5b5061007b73ffffffffffffffffffffffffffffffffffffffff60043516610118565b3480156100de57600080fd5b5061007b610a95565b3480156100f357600080fd5b5061007b610ab1565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b600080548190819081908190819073ffffffffffffffffffffffffffffffffffffffff16610144610acd565b73ffffffffffffffffffffffffffffffffffffffff909116815260405190819003602001906000f08015801561017e573d6000803e3d6000fd5b5060025490955073ffffffffffffffffffffffffffffffffffffffff16151561023a57600154604080517f485cc95500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9283166004820152898316602482015290519187169163485cc9559160448082019260009290919082900301818387803b15801561021d57600080fd5b505af1158015610231573d6000803e3d6000fd5b50505050610a41565b600154604080517f485cc95500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff928316600482015230602482015290519187169163485cc9559160448082019260009290919082900301818387803b1580156102b457600080fd5b505af11580156102c8573d6000803e3d6000fd5b505050508473ffffffffffffffffffffffffffffffffffffffff1663de2873596040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561033057600080fd5b505af1158015610344573d6000803e3d6000fd5b505050506040513d602081101561035a57600080fd5b5051604080517f3d6ab68f000000000000000000000000000000000000000000000000000000008152905191955073ffffffffffffffffffffffffffffffffffffffff861691633d6ab68f916004808201926020929091908290030181600087803b1580156103c857600080fd5b505af11580156103dc573d6000803e3d6000fd5b505050506040513d60208110156103f257600080fd5b5051604080517f8ea8dc9d000000000000000000000000000000000000000000000000000000008152905191945073ffffffffffffffffffffffffffffffffffffffff871691638ea8dc9d916004808201926020929091908290030181600087803b15801561046057600080fd5b505af1158015610474573d6000803e3d6000fd5b505050506040513d602081101561048a57600080fd5b5051600254604080517f0a8ed3db00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff92831660048201529187166024830181905260448301879052905192945091630a8ed3db9160648082019260009290919082900301818387803b15801561051157600080fd5b505af1158015610525573d6000803e3d6000fd5b5050600254604080517fbe03847800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff92831660048201528983166024820152604481018790523060648201529051918816935063be038478925060848082019260009290919082900301818387803b1580156105b257600080fd5b505af11580156105c6573d6000803e3d6000fd5b5050600254604080517f3340414300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8a8116600483015291519190921693506333404143925060248083019260209291908290030181600087803b15801561063f57600080fd5b505af1158015610653573d6000803e3d6000fd5b505050506040513d602081101561066957600080fd5b50516040805173ffffffffffffffffffffffffffffffffffffffff8316815290519192507f1a40224412580c1ae5a2fbe8029a565f49a3a029608a8fd9320b32477f314579919081900360200190a1600254604080517f9d0effdb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9283166004820152878316602482015260448101859052905191861691639d0effdb9160648082019260009290919082900301818387803b15801561073b57600080fd5b505af115801561074f573d6000803e3d6000fd5b5050604080517fa885508a00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8981166004830152602482018790529151918816935063a885508a925060448082019260009290919082900301818387803b1580156107cb57600080fd5b505af11580156107df573d6000803e3d6000fd5b5050600254604080517f9d0effdb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff928316600482015291881660248301819052604483018890529051909350639d0effdb9250606480830192600092919082900301818387803b15801561086557600080fd5b505af1158015610879573d6000803e3d6000fd5b5050604080517f9d0effdb00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff881660248201819052604482018890529151919350639d0effdb925060648082019260009290919082900301818387803b1580156108fa57600080fd5b505af115801561090e573d6000803e3d6000fd5b5050604080517f0a8ed3db00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8b81166004830152881660248201819052604482018890529151919350630a8ed3db925060648082019260009290919082900301818387803b15801561099157600080fd5b505af11580156109a5573d6000803e3d6000fd5b5050604080517fafd925df00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8b8116600483015288166024820181905260448201889052915191935063afd925df925060648082019260009290919082900301818387803b158015610a2857600080fd5b505af1158015610a3c573d6000803e3d6000fd5b505050505b6040805173ffffffffffffffffffffffffffffffffffffffff8716815290517f3a7eb042a769adf51e9be78b68ed7af0ad7b379246536efc376ed2ca012382829181900360200190a1509295945050505050565b60025473ffffffffffffffffffffffffffffffffffffffff1681565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b6040516104de80610ade833901905600608060405234801561001057600080fd5b506040516020806104de833981016040525161003481640100000000610120810204565b151561003f57600080fd5b7f3b4bf6bf3ad5000ecf0f989d5befde585c6860fea3e574a4fab4c49d1c177d9c60008190527fc67454ed56db7ff90a4bb32fc9a8de1ab3174b221e5fecea22b7503a3111791f60209081527f8e2ed18767e9c33b25344c240cdf92034fae56be99e2c07f3d9946d949ffede48054600160a060020a031916600160a060020a03851690811790915560408051918252517fc681a85306374a5ab27f0bbc385296a54bcd314a1948b6cf61c4ea1bc44bb9f8927f2ec1ae0a449b7ae354b9dacfb3ade6b6332ba26b7fcbb935835fa39dd7263b23928290030190a35061014d565b600080600160a060020a038316151561013c5760009150610147565b823b90506000811191505b50919050565b6103828061015c6000396000f30060806040526004361061006c5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416634555d5c9811461012b5780634558850c1461015257806348a0c8dd146101965780635c60da1b146101bf57806386070cfe146101d4575b6127107f665fd576fbbe6f247aff98f5c94a561e3f71ec2d3c988d56f12d342396c50cea6000825a10156100e15760003411361583541616156100dc576040513381523460208201527f15eeaa57c7bd188c1388020bcadc2c436ec60d647d36ef5b9eb3c742217ddee1604082a1005b600080fd5b6100e96101e9565b9050610126816000368080601f0160208091040260200160405190810160405280939291908181526020018383808284375061026c945050505050565b505050005b34801561013757600080fd5b506101406102ad565b60408051918252519081900360200190f35b34801561015e57600080fd5b5061016d6004356024356102b2565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b3480156101a257600080fd5b506101ab6102e2565b604080519115158252519081900360200190f35b3480156101cb57600080fd5b5061016d6101e9565b3480156101e057600080fd5b50610140610312565b7f3b4bf6bf3ad5000ecf0f989d5befde585c6860fea3e574a4fab4c49d1c177d9c6000527fc67454ed56db7ff90a4bb32fc9a8de1ab3174b221e5fecea22b7503a3111791f6020527f8e2ed18767e9c33b25344c240cdf92034fae56be99e2c07f3d9946d949ffede45473ffffffffffffffffffffffffffffffffffffffff1690565b600061027783610318565b151561028257600080fd5b612710905060008083516020850186855a03f43d604051816000823e8280156102a9578282f35b8282fd5b600290565b600060208181529281526040808220909352908152205473ffffffffffffffffffffffffffffffffffffffff1681565b600061030d7f665fd576fbbe6f247aff98f5c94a561e3f71ec2d3c988d56f12d342396c50cea610352565b905090565b60015481565b60008073ffffffffffffffffffffffffffffffffffffffff83161515610341576000915061034c565b823b90506000811191505b50919050565b54905600a165627a7a7230582005a1e02182395229234e7c1f5f8f78ac5043605628b961154e417e50f0489ea00029a165627a7a723058200f09aa9586790d1ba776fe3a9e2cf9b4b50b18be202877108c81f27ecb3263c10029", "deployedBytecode": "0x6080604052600436106100615763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663086b339e811461006657806321687444146100a4578063656362b5146100d2578063b16dd130146100e7575b600080fd5b34801561007257600080fd5b5061007b6100fc565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b3480156100b057600080fd5b5061007b73ffffffffffffffffffffffffffffffffffffffff60043516610118565b3480156100de57600080fd5b5061007b610a95565b3480156100f357600080fd5b5061007b610ab1565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b600080548190819081908190819073ffffffffffffffffffffffffffffffffffffffff16610144610acd565b73ffffffffffffffffffffffffffffffffffffffff909116815260405190819003602001906000f08015801561017e573d6000803e3d6000fd5b5060025490955073ffffffffffffffffffffffffffffffffffffffff16151561023a57600154604080517f485cc95500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9283166004820152898316602482015290519187169163485cc9559160448082019260009290919082900301818387803b15801561021d57600080fd5b505af1158015610231573d6000803e3d6000fd5b50505050610a41565b600154604080517f485cc95500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff928316600482015230602482015290519187169163485cc9559160448082019260009290919082900301818387803b1580156102b457600080fd5b505af11580156102c8573d6000803e3d6000fd5b505050508473ffffffffffffffffffffffffffffffffffffffff1663de2873596040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561033057600080fd5b505af1158015610344573d6000803e3d6000fd5b505050506040513d602081101561035a57600080fd5b5051604080517f3d6ab68f000000000000000000000000000000000000000000000000000000008152905191955073ffffffffffffffffffffffffffffffffffffffff861691633d6ab68f916004808201926020929091908290030181600087803b1580156103c857600080fd5b505af11580156103dc573d6000803e3d6000fd5b505050506040513d60208110156103f257600080fd5b5051604080517f8ea8dc9d000000000000000000000000000000000000000000000000000000008152905191945073ffffffffffffffffffffffffffffffffffffffff871691638ea8dc9d916004808201926020929091908290030181600087803b15801561046057600080fd5b505af1158015610474573d6000803e3d6000fd5b505050506040513d602081101561048a57600080fd5b5051600254604080517f0a8ed3db00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff92831660048201529187166024830181905260448301879052905192945091630a8ed3db9160648082019260009290919082900301818387803b15801561051157600080fd5b505af1158015610525573d6000803e3d6000fd5b5050600254604080517fbe03847800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff92831660048201528983166024820152604481018790523060648201529051918816935063be038478925060848082019260009290919082900301818387803b1580156105b257600080fd5b505af11580156105c6573d6000803e3d6000fd5b5050600254604080517f3340414300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8a8116600483015291519190921693506333404143925060248083019260209291908290030181600087803b15801561063f57600080fd5b505af1158015610653573d6000803e3d6000fd5b505050506040513d602081101561066957600080fd5b50516040805173ffffffffffffffffffffffffffffffffffffffff8316815290519192507f1a40224412580c1ae5a2fbe8029a565f49a3a029608a8fd9320b32477f314579919081900360200190a1600254604080517f9d0effdb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9283166004820152878316602482015260448101859052905191861691639d0effdb9160648082019260009290919082900301818387803b15801561073b57600080fd5b505af115801561074f573d6000803e3d6000fd5b5050604080517fa885508a00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8981166004830152602482018790529151918816935063a885508a925060448082019260009290919082900301818387803b1580156107cb57600080fd5b505af11580156107df573d6000803e3d6000fd5b5050600254604080517f9d0effdb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff928316600482015291881660248301819052604483018890529051909350639d0effdb9250606480830192600092919082900301818387803b15801561086557600080fd5b505af1158015610879573d6000803e3d6000fd5b5050604080517f9d0effdb00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff881660248201819052604482018890529151919350639d0effdb925060648082019260009290919082900301818387803b1580156108fa57600080fd5b505af115801561090e573d6000803e3d6000fd5b5050604080517f0a8ed3db00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8b81166004830152881660248201819052604482018890529151919350630a8ed3db925060648082019260009290919082900301818387803b15801561099157600080fd5b505af11580156109a5573d6000803e3d6000fd5b5050604080517fafd925df00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8b8116600483015288166024820181905260448201889052915191935063afd925df925060648082019260009290919082900301818387803b158015610a2857600080fd5b505af1158015610a3c573d6000803e3d6000fd5b505050505b6040805173ffffffffffffffffffffffffffffffffffffffff8716815290517f3a7eb042a769adf51e9be78b68ed7af0ad7b379246536efc376ed2ca012382829181900360200190a1509295945050505050565b60025473ffffffffffffffffffffffffffffffffffffffff1681565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b6040516104de80610ade833901905600608060405234801561001057600080fd5b506040516020806104de833981016040525161003481640100000000610120810204565b151561003f57600080fd5b7f3b4bf6bf3ad5000ecf0f989d5befde585c6860fea3e574a4fab4c49d1c177d9c60008190527fc67454ed56db7ff90a4bb32fc9a8de1ab3174b221e5fecea22b7503a3111791f60209081527f8e2ed18767e9c33b25344c240cdf92034fae56be99e2c07f3d9946d949ffede48054600160a060020a031916600160a060020a03851690811790915560408051918252517fc681a85306374a5ab27f0bbc385296a54bcd314a1948b6cf61c4ea1bc44bb9f8927f2ec1ae0a449b7ae354b9dacfb3ade6b6332ba26b7fcbb935835fa39dd7263b23928290030190a35061014d565b600080600160a060020a038316151561013c5760009150610147565b823b90506000811191505b50919050565b6103828061015c6000396000f30060806040526004361061006c5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416634555d5c9811461012b5780634558850c1461015257806348a0c8dd146101965780635c60da1b146101bf57806386070cfe146101d4575b6127107f665fd576fbbe6f247aff98f5c94a561e3f71ec2d3c988d56f12d342396c50cea6000825a10156100e15760003411361583541616156100dc576040513381523460208201527f15eeaa57c7bd188c1388020bcadc2c436ec60d647d36ef5b9eb3c742217ddee1604082a1005b600080fd5b6100e96101e9565b9050610126816000368080601f0160208091040260200160405190810160405280939291908181526020018383808284375061026c945050505050565b505050005b34801561013757600080fd5b506101406102ad565b60408051918252519081900360200190f35b34801561015e57600080fd5b5061016d6004356024356102b2565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b3480156101a257600080fd5b506101ab6102e2565b604080519115158252519081900360200190f35b3480156101cb57600080fd5b5061016d6101e9565b3480156101e057600080fd5b50610140610312565b7f3b4bf6bf3ad5000ecf0f989d5befde585c6860fea3e574a4fab4c49d1c177d9c6000527fc67454ed56db7ff90a4bb32fc9a8de1ab3174b221e5fecea22b7503a3111791f6020527f8e2ed18767e9c33b25344c240cdf92034fae56be99e2c07f3d9946d949ffede45473ffffffffffffffffffffffffffffffffffffffff1690565b600061027783610318565b151561028257600080fd5b612710905060008083516020850186855a03f43d604051816000823e8280156102a9578282f35b8282fd5b600290565b600060208181529281526040808220909352908152205473ffffffffffffffffffffffffffffffffffffffff1681565b600061030d7f665fd576fbbe6f247aff98f5c94a561e3f71ec2d3c988d56f12d342396c50cea610352565b905090565b60015481565b60008073ffffffffffffffffffffffffffffffffffffffff83161515610341576000915061034c565b823b90506000811191505b50919050565b54905600a165627a7a7230582005a1e02182395229234e7c1f5f8f78ac5043605628b961154e417e50f0489ea00029a165627a7a723058200f09aa9586790d1ba776fe3a9e2cf9b4b50b18be202877108c81f27ecb3263c10029", "sourceMap": "220:2369:49:-;;;744:324;8:9:-1;5:2;;;30:1;27;20:12;5:2;744:324:49;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;914:34:49;;;910:89;;964:10;:24;;-1:-1:-1;;;;;;964:24:49;-1:-1:-1;;;;;964:24:49;;;;;910:89;-1:-1:-1;1009:10:49;:24;;-1:-1:-1;;;;;1009:24:49;;;-1:-1:-1;;;;;;1009:24:49;;;;;;;;1043:18;;;;;;;;;;;220:2369;;;;;;", "deployedSourceMap": "220:2369:49:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;277:19;;8:9:-1;5:2;;;30:1;27;20:12;5:2;277:19:49;;;;;;;;;;;;;;;;;;;;;;;1271:1316;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1271:1316:49;;;;;;;302:42;;8:9:-1;5:2;;;30:1;27;20:12;5:2;302:42:49;;;;246:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;246:25:49;;;;277:19;;;;;;:::o;1271:1316::-;1318:6;1372:10;;1318:6;;;;;;;;;;1372:10;;1356:27;;:::i;:::-;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;1407:10:49;;1336:48;;-1:-1:-1;1399:33:49;1407:10;1399:33;1395:1126;;;1463:7;;1448:30;;;;;;:14;1463:7;;;1448:30;;;;;;;;;;;;;:14;;;;;;:30;;;;;1463:7;;1448:30;;;;;;;;1463:7;1448:14;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;1448:30:49;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1448:30:49;;;;1395:1126;;;1524:7;;1509:29;;;;;;:14;1524:7;;;1509:29;;;;1533:4;1509:29;;;;;;:14;;;;;;:29;;;;;1524:7;;1509:29;;;;;;;;1524:7;1509:14;:29;;;5:2:-1;;;;30:1;27;20:12;5:2;1509:29:49;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1509:29:49;;;;1567:3;:7;;;:9;;;;;;;;;;;;;;;;;;;;;;;8::-1;5:2;;;30:1;27;20:12;5:2;1567:9:49;;;;8::-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1567:9:49;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1567:9:49;1610:29;;;;;;;;1567:9;;-1:-1:-1;1610:27:49;;;;;;:29;;;;;1567:9;;1610:29;;;;;;;;;:27;:29;;;5:2:-1;;;;30:1;27;20:12;5:2;1610:29:49;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1610:29:49;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1610:29:49;1678:22;;;;;;;;1610:29;;-1:-1:-1;1678:20:49;;;;;;:22;;;;;1610:29;;1678:22;;;;;;;;;:20;:22;;;5:2:-1;;;;30:1;27;20:12;5:2;1678:22:49;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1678:22:49;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1678:22:49;1735:10;;1715:46;;;;;;:19;1735:10;;;1715:46;;;;:19;;;:46;;;;;;;;;;;;;;1678:22;;-1:-1:-1;1715:19:49;;;:46;;;;;1735:10;;1715:46;;;;;;;;1735:10;1715:19;:46;;;5:2:-1;;;;30:1;27;20:12;5:2;1715:46:49;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;1797:10:49;;1776:59;;;;;;:20;1797:10;;;1776:59;;;;;;;;;;;;;;;;;1830:4;1776:59;;;;;;:20;;;;-1:-1:-1;1776:20:49;;-1:-1:-1;1776:59:49;;;;;1797:10;;1776:59;;;;;;;;1797:10;1776:20;:59;;;5:2:-1;;;;30:1;27;20:12;5:2;1776:59:49;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;1874:10:49;;:36;;;;;;:10;:36;;;;;;;;;:10;;;;;-1:-1:-1;1874:31:49;;-1:-1:-1;1874:36:49;;;;;;;;;;;;;;:10;;:36;;;5:2:-1;;;;30:1;27;20:12;5:2;1874:36:49;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1874:36:49;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1874:36:49;1929:37;;;;;;;;;;1874:36;;-1:-1:-1;1929:37:49;;;;;;1874:36;1929:37;;;2098:10;;2077:53;;;;;;:20;2098:10;;;2077:53;;;;;;;;;;;;;;;;;;;:20;;;;;;:53;;;;;2098:10;;2077:53;;;;;;;;2098:10;2077:20;:53;;;5:2:-1;;;;30:1;27;20:12;5:2;2077:53:49;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;2144:48:49;;;;;;:27;:48;;;;;;;;;;;;;;;:27;;;;-1:-1:-1;2144:27:49;;-1:-1:-1;2144:48:49;;;;;-1:-1:-1;;2144:48:49;;;;;;;;-1:-1:-1;2144:27:49;:48;;;5:2:-1;;;;30:1;27;20:12;5:2;2144:48:49;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;2314:10:49;;2293:47;;;;;;:20;2314:10;;;2293:47;;;;:20;;;:47;;;;;;;;;;;;;;:20;;-1:-1:-1;2293:20:49;;-1:-1:-1;2293:47:49;;;;;2314:10;;2293:47;;;;;;;2314:10;2293:20;:47;;;5:2:-1;;;;30:1;27;20:12;5:2;2293:47:49;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;2354:41:49;;;;;;2375:4;2354:41;;;;:20;;;:41;;;;;;;;;;;;;;:20;;-1:-1:-1;2354:20:49;;-1:-1:-1;2354:41:49;;;;;-1:-1:-1;;2354:41:49;;;;;;;;-1:-1:-1;2354:20:49;:41;;;5:2:-1;;;;30:1;27;20:12;5:2;2354:41:49;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;2409:41:49;;;;;;:19;:41;;;;;;;:19;;:41;;;;;;;;;;;;;;:19;;-1:-1:-1;2409:19:49;;-1:-1:-1;2409:41:49;;;;;-1:-1:-1;;2409:41:49;;;;;;;;-1:-1:-1;2409:19:49;:41;;;5:2:-1;;;;30:1;27;20:12;5:2;2409:41:49;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;2464:46:49;;;;;;:24;:46;;;;;;;:24;;:46;;;;;;;;;;;;;;:24;;-1:-1:-1;2464:24:49;;-1:-1:-1;2464:46:49;;;;;-1:-1:-1;;2464:46:49;;;;;;;;-1:-1:-1;2464:24:49;:46;;;5:2:-1;;;;30:1;27;20:12;5:2;2464:46:49;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2464:46:49;;;;1395:1126;2536:23;;;;;;;;;;;;;;;;;;;-1:-1:-1;2577:3:49;;1271:1316;-1:-1:-1;;;;;1271:1316:49:o;302:42::-;;;;;;:::o;246:25::-;;;;;;:::o;220:2369::-;;;;;;;;;;:::o", "source": "pragma solidity 0.4.24;\n\nimport \"../kernel/IKernel.sol\";\nimport \"../kernel/Kernel.sol\";\nimport \"../kernel/KernelProxy.sol\";\n\nimport \"../acl/IACL.sol\";\nimport \"../acl/ACL.sol\";\n\nimport \"./EVMScriptRegistryFactory.sol\";\n\n\ncontract DAOFactory {\n IKernel public baseKernel;\n IACL public baseACL;\n EVMScriptRegistryFactory public regFactory;\n\n event DeployDAO(address dao);\n event DeployEVMScriptRegistry(address reg);\n\n /**\n * @notice Create a new DAOFactory, creating DAOs with Kernels proxied to `_baseKernel`, ACLs proxied to `_baseACL`, and new EVMScriptRegistries created from `_regFactory`.\n * @param _baseKernel Base Kernel\n * @param _baseACL Base ACL\n * @param _regFactory EVMScriptRegistry factory\n */\n constructor(IKernel _baseKernel, IACL _baseACL, EVMScriptRegistryFactory _regFactory) public {\n // No need to init as it cannot be killed by devops199\n if (address(_regFactory) != address(0)) {\n regFactory = _regFactory;\n }\n\n baseKernel = _baseKernel;\n baseACL = _baseACL;\n }\n\n /**\n * @notice Create a new DAO with `_root` set as the initial admin\n * @param _root Address that will be granted control to setup DAO permissions\n * @return Newly created DAO\n */\n function newDAO(address _root) public returns (Kernel) {\n Kernel dao = Kernel(new KernelProxy(baseKernel));\n\n if (address(regFactory) == address(0)) {\n dao.initialize(baseACL, _root);\n } else {\n dao.initialize(baseACL, this);\n\n ACL acl = ACL(dao.acl());\n bytes32 permRole = acl.CREATE_PERMISSIONS_ROLE();\n bytes32 appManagerRole = dao.APP_MANAGER_ROLE();\n\n acl.grantPermission(regFactory, acl, permRole);\n\n acl.createPermission(regFactory, dao, appManagerRole, this);\n\n EVMScriptRegistry reg = regFactory.newEVMScriptRegistry(dao);\n emit DeployEVMScriptRegistry(address(reg));\n\n // Clean up permissions\n // First, completely reset the APP_MANAGER_ROLE\n acl.revokePermission(regFactory, dao, appManagerRole);\n acl.removePermissionManager(dao, appManagerRole);\n\n // Then, make root the only holder and manager of CREATE_PERMISSIONS_ROLE\n acl.revokePermission(regFactory, acl, permRole);\n acl.revokePermission(this, acl, permRole);\n acl.grantPermission(_root, acl, permRole);\n acl.setPermissionManager(_root, acl, permRole);\n }\n\n emit DeployDAO(address(dao));\n\n return dao;\n }\n}\n", "sourcePath": "@aragon/os/contracts/factory/DAOFactory.sol", "ast": { "absolutePath": "@aragon/os/contracts/factory/DAOFactory.sol", "exportedSymbols": { "DAOFactory": [ 12439 ] }, "id": 12440, "nodeType": "SourceUnit", "nodes": [ { "id": 12241, "literals": [ "solidity", "0.4", ".24" ], "nodeType": "PragmaDirective", "src": "0:23:49" }, { "absolutePath": "@aragon/os/contracts/kernel/IKernel.sol", "file": "../kernel/IKernel.sol", "id": 12242, "nodeType": "ImportDirective", "scope": 12440, "sourceUnit": 12601, "src": "25:31:49", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "@aragon/os/contracts/kernel/Kernel.sol", "file": "../kernel/Kernel.sol", "id": 12243, "nodeType": "ImportDirective", "scope": 12440, "sourceUnit": 13093, "src": "57:30:49", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "@aragon/os/contracts/kernel/KernelProxy.sol", "file": "../kernel/KernelProxy.sol", "id": 12244, "nodeType": "ImportDirective", "scope": 12440, "sourceUnit": 13183, "src": "88:35:49", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "@aragon/os/contracts/acl/IACL.sol", "file": "../acl/IACL.sol", "id": 12245, "nodeType": "ImportDirective", "scope": 12440, "sourceUnit": 9674, "src": "125:25:49", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "@aragon/os/contracts/acl/ACL.sol", "file": "../acl/ACL.sol", "id": 12246, "nodeType": "ImportDirective", "scope": 12440, "sourceUnit": 9153, "src": "151:24:49", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "@aragon/os/contracts/factory/EVMScriptRegistryFactory.sol", "file": "./EVMScriptRegistryFactory.sol", "id": 12247, "nodeType": "ImportDirective", "scope": 12440, "sourceUnit": 12547, "src": "177:40:49", "symbolAliases": [], "unitAlias": "" }, { "baseContracts": [], "contractDependencies": [ 13182 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, "id": 12439, "linearizedBaseContracts": [ 12439 ], "name": "DAOFactory", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, "id": 12249, "name": "baseKernel", "nodeType": "VariableDeclaration", "scope": 12439, "src": "246:25:49", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_contract$_IKernel_$12600", "typeString": "contract IKernel" }, "typeName": { "contractScope": null, "id": 12248, "name": "IKernel", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 12600, "src": "246:7:49", "typeDescriptions": { "typeIdentifier": "t_contract$_IKernel_$12600", "typeString": "contract IKernel" } }, "value": null, "visibility": "public" }, { "constant": false, "id": 12251, "name": "baseACL", "nodeType": "VariableDeclaration", "scope": 12439, "src": "277:19:49", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_contract$_IACL_$9673", "typeString": "contract IACL" }, "typeName": { "contractScope": null, "id": 12250, "name": "IACL", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 9673, "src": "277:4:49", "typeDescriptions": { "typeIdentifier": "t_contract$_IACL_$9673", "typeString": "contract IACL" } }, "value": null, "visibility": "public" }, { "constant": false, "id": 12253, "name": "regFactory", "nodeType": "VariableDeclaration", "scope": 12439, "src": "302:42:49", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_contract$_EVMScriptRegistryFactory_$12546", "typeString": "contract EVMScriptRegistryFactory" }, "typeName": { "contractScope": null, "id": 12252, "name": "EVMScriptRegistryFactory", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 12546, "src": "302:24:49", "typeDescriptions": { "typeIdentifier": "t_contract$_EVMScriptRegistryFactory_$12546", "typeString": "contract EVMScriptRegistryFactory" } }, "value": null, "visibility": "public" }, { "anonymous": false, "documentation": null, "id": 12257, "name": "DeployDAO", "nodeType": "EventDefinition", "parameters": { "id": 12256, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 12255, "indexed": false, "name": "dao", "nodeType": "VariableDeclaration", "scope": 12257, "src": "367:11:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 12254, "name": "address", "nodeType": "ElementaryTypeName", "src": "367:7:49", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "366:13:49" }, "src": "351:29:49" }, { "anonymous": false, "documentation": null, "id": 12261, "name": "DeployEVMScriptRegistry", "nodeType": "EventDefinition", "parameters": { "id": 12260, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 12259, "indexed": false, "name": "reg", "nodeType": "VariableDeclaration", "scope": 12261, "src": "415:11:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 12258, "name": "address", "nodeType": "ElementaryTypeName", "src": "415:7:49", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "414:13:49" }, "src": "385:43:49" }, { "body": { "id": 12291, "nodeType": "Block", "src": "837:231:49", "statements": [ { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 12276, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 12271, "name": "_regFactory", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12267, "src": "922:11:49", "typeDescriptions": { "typeIdentifier": "t_contract$_EVMScriptRegistryFactory_$12546", "typeString": "contract EVMScriptRegistryFactory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_contract$_EVMScriptRegistryFactory_$12546", "typeString": "contract EVMScriptRegistryFactory" } ], "id": 12270, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "914:7:49", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 12272, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "914:20:49", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", "id": 12274, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "946:1:49", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" } ], "id": 12273, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "938:7:49", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 12275, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "938:10:49", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "914:34:49", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 12282, "nodeType": "IfStatement", "src": "910:89:49", "trueBody": { "id": 12281, "nodeType": "Block", "src": "950:49:49", "statements": [ { "expression": { "argumentTypes": null, "id": 12279, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 12277, "name": "regFactory", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12253, "src": "964:10:49", "typeDescriptions": { "typeIdentifier": "t_contract$_EVMScriptRegistryFactory_$12546", "typeString": "contract EVMScriptRegistryFactory" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 12278, "name": "_regFactory", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12267, "src": "977:11:49", "typeDescriptions": { "typeIdentifier": "t_contract$_EVMScriptRegistryFactory_$12546", "typeString": "contract EVMScriptRegistryFactory" } }, "src": "964:24:49", "typeDescriptions": { "typeIdentifier": "t_contract$_EVMScriptRegistryFactory_$12546", "typeString": "contract EVMScriptRegistryFactory" } }, "id": 12280, "nodeType": "ExpressionStatement", "src": "964:24:49" } ] } }, { "expression": { "argumentTypes": null, "id": 12285, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 12283, "name": "baseKernel", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12249, "src": "1009:10:49", "typeDescriptions": { "typeIdentifier": "t_contract$_IKernel_$12600", "typeString": "contract IKernel" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 12284, "name": "_baseKernel", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12263, "src": "1022:11:49", "typeDescriptions": { "typeIdentifier": "t_contract$_IKernel_$12600", "typeString": "contract IKernel" } }, "src": "1009:24:49", "typeDescriptions": { "typeIdentifier": "t_contract$_IKernel_$12600", "typeString": "contract IKernel" } }, "id": 12286, "nodeType": "ExpressionStatement", "src": "1009:24:49" }, { "expression": { "argumentTypes": null, "id": 12289, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 12287, "name": "baseACL", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12251, "src": "1043:7:49", "typeDescriptions": { "typeIdentifier": "t_contract$_IACL_$9673", "typeString": "contract IACL" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 12288, "name": "_baseACL", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12265, "src": "1053:8:49", "typeDescriptions": { "typeIdentifier": "t_contract$_IACL_$9673", "typeString": "contract IACL" } }, "src": "1043:18:49", "typeDescriptions": { "typeIdentifier": "t_contract$_IACL_$9673", "typeString": "contract IACL" } }, "id": 12290, "nodeType": "ExpressionStatement", "src": "1043:18:49" } ] }, "documentation": "@notice Create a new DAOFactory, creating DAOs with Kernels proxied to `_baseKernel`, ACLs proxied to `_baseACL`, and new EVMScriptRegistries created from `_regFactory`.\n@param _baseKernel Base Kernel\n@param _baseACL Base ACL\n@param _regFactory EVMScriptRegistry factory", "id": 12292, "implemented": true, "isConstructor": true, "isDeclaredConst": false, "modifiers": [], "name": "", "nodeType": "FunctionDefinition", "parameters": { "id": 12268, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 12263, "name": "_baseKernel", "nodeType": "VariableDeclaration", "scope": 12292, "src": "756:19:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_contract$_IKernel_$12600", "typeString": "contract IKernel" }, "typeName": { "contractScope": null, "id": 12262, "name": "IKernel", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 12600, "src": "756:7:49", "typeDescriptions": { "typeIdentifier": "t_contract$_IKernel_$12600", "typeString": "contract IKernel" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 12265, "name": "_baseACL", "nodeType": "VariableDeclaration", "scope": 12292, "src": "777:13:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_contract$_IACL_$9673", "typeString": "contract IACL" }, "typeName": { "contractScope": null, "id": 12264, "name": "IACL", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 9673, "src": "777:4:49", "typeDescriptions": { "typeIdentifier": "t_contract$_IACL_$9673", "typeString": "contract IACL" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 12267, "name": "_regFactory", "nodeType": "VariableDeclaration", "scope": 12292, "src": "792:36:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier