@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
JSON
{
"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