UNPKG

@aragon/apps-payroll

Version:

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

474 lines (473 loc) 157 kB
{ "contractName": "EVMScriptRegistryFactory", "abi": [ { "constant": true, "inputs": [], "name": "baseReg", "outputs": [ { "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "baseCallScript", "outputs": [ { "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "inputs": [], "payable": false, "stateMutability": "nonpayable", "type": "constructor" }, { "constant": false, "inputs": [ { "name": "_dao", "type": "address" } ], "name": "newEVMScriptRegistry", "outputs": [ { "name": "reg", "type": "address" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" } ], "bytecode": "0x608060405234801561001057600080fd5b506100196100a0565b604051809103906000f080158015610035573d6000803e3d6000fd5b5060008054600160a060020a031916600160a060020a039290921691909117905561005e6100b0565b604051809103906000f08015801561007a573d6000803e3d6000fd5b5060018054600160a060020a031916600160a060020a03929092169190911790556100c0565b604051611c6e8061088d83390190565b604051610a9a806124fb83390190565b6107be806100cf6000396000f3006080604052600436106100565763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663127d679c811461005b57806333404143146100995780634de50a3a146100c7575b600080fd5b34801561006757600080fd5b506100706100dc565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b3480156100a557600080fd5b5061007073ffffffffffffffffffffffffffffffffffffffff600435166100f8565b3480156100d357600080fd5b50610070610776565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b604080516004808252602480830184526020830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f8129fc1c000000000000000000000000000000000000000000000000000000001781526000805495517fc050a7a60000000000000000000000000000000000000000000000000000000081527fddbcfd564f642ab5627cf68b9b7d374fb4f8a36e941a75d89c87998cef03bd6194810185815273ffffffffffffffffffffffffffffffffffffffff97881694820185905260016064830181905260806044840190815288516084850152885194998a98908c169763c050a7a697919690958b95939260a4909101918083838e5b838110156102125781810151838201526020016101fa565b50505050905090810190601f16801561023f5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15801561026157600080fd5b505af1158015610275573d6000803e3d6000fd5b505050506040513d602081101561028b57600080fd5b5051604080517fde287359000000000000000000000000000000000000000000000000000000008152905191945073ffffffffffffffffffffffffffffffffffffffff86169163de287359916004808201926020929091908290030181600087803b1580156102f957600080fd5b505af115801561030d573d6000803e3d6000fd5b505050506040513d602081101561032357600080fd5b5051604080517f19f3d10f000000000000000000000000000000000000000000000000000000008152905191925073ffffffffffffffffffffffffffffffffffffffff8084169263be0384789230928892908316916319f3d10f9160048083019260209291908290030181600087803b15801561039f57600080fd5b505af11580156103b3573d6000803e3d6000fd5b505050506040513d60208110156103c957600080fd5b5051604080517c010000000000000000000000000000000000000000000000000000000063ffffffff871602815273ffffffffffffffffffffffffffffffffffffffff948516600482015292909316602483015260448201523060648201529051608480830192600092919082900301818387803b15801561044a57600080fd5b505af115801561045e573d6000803e3d6000fd5b5050600154604080517f87a16f1200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9283166004820152905191871693506387a16f1292506024808201926020929091908290030181600087803b1580156104d757600080fd5b505af11580156104eb573d6000803e3d6000fd5b505050506040513d602081101561050157600080fd5b5050604080517f19f3d10f000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff80841692639d0effdb9230928892908316916319f3d10f916004808201926020929091908290030181600087803b15801561057b57600080fd5b505af115801561058f573d6000803e3d6000fd5b505050506040513d60208110156105a557600080fd5b5051604080517c010000000000000000000000000000000000000000000000000000000063ffffffff871602815273ffffffffffffffffffffffffffffffffffffffff948516600482015292909316602483015260448201529051606480830192600092919082900301818387803b15801561062057600080fd5b505af1158015610634573d6000803e3d6000fd5b505050508073ffffffffffffffffffffffffffffffffffffffff1663a885508a848573ffffffffffffffffffffffffffffffffffffffff166319f3d10f6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156106b957600080fd5b505af11580156106cd573d6000803e3d6000fd5b505050506040513d60208110156106e357600080fd5b5051604080517c010000000000000000000000000000000000000000000000000000000063ffffffff861602815273ffffffffffffffffffffffffffffffffffffffff9093166004840152602483019190915251604480830192600092919082900301818387803b15801561075757600080fd5b505af115801561076b573d6000803e3d6000fd5b505050505050919050565b60015473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a7230582033b08ba5e367ce82d8f412d191e18d1095ab2da27dac6006051c0762d4ea18cb00296080604052620000176401000000006200001d810204565b6200023b565b6200003064010000000062000125810204565b60408051808201909152601881527f494e49545f414c52454144595f494e495449414c495a45440000000000000000602082015290156200010c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015620000d0578181015183820152602001620000b6565b50505050905090810190601f168015620000fe5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506200012360001964010000000062000154810204565b565b60006200014f60008051602062001c4e833981519152640100000000620015f86200023382021704565b905090565b6200016764010000000062000125810204565b60408051808201909152601881527f494e49545f414c52454144595f494e495449414c495a454400000000000000006020820152901562000206576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252838181518152602001915080519060200190808383600083811015620000d0578181015183820152602001620000b6565b506200023060008051602062001c4e833981519152826401000000006200194c6200023782021704565b50565b5490565b9055565b611a03806200024b6000396000f3006080604052600436106101065763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166304bf2a7f811461010b5780630803fac01461018d57806319f3d10f146101b65780632914b9bd146101dd57806332f0a3b5146102365780635ca4d4bb1461024b5780637e7db6e11461026557806380afdea8146102935780638129fc1c146102a857806387a16f12146102bd5780638b3dd749146102eb5780639d4941d814610300578063a1658fad1461032e578063a479e508146103a2578063bd8fde1c146103b7578063cff606a0146103cc578063d4aae0c4146103e4578063de4796ed146103f9578063f97a05df1461040e575b600080fd5b34801561011757600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526101649436949293602493928401919081908401838280828437509497506104569650505050505050565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b34801561019957600080fd5b506101a26105a8565b604080519115158252519081900360200190f35b3480156101c257600080fd5b506101cb6105d1565b60408051918252519081900360200190f35b3480156101e957600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526101649436949293602493928401919081908401838280828437509497506105f59650505050505050565b34801561024257600080fd5b50610164610701565b34801561025757600080fd5b5061026360043561079f565b005b34801561027157600080fd5b506101a273ffffffffffffffffffffffffffffffffffffffff600435166109b3565b34801561029f57600080fd5b506101cb6109b9565b3480156102b457600080fd5b506102636109e9565b3480156102c957600080fd5b506101cb73ffffffffffffffffffffffffffffffffffffffff60043516610a9d565b3480156102f757600080fd5b506101cb610c61565b34801561030c57600080fd5b5061026373ffffffffffffffffffffffffffffffffffffffff60043516610c8c565b34801561033a57600080fd5b5060408051602060046044358181013583810280860185019096528085526101a295833573ffffffffffffffffffffffffffffffffffffffff16956024803596369695606495939492019291829185019084908082843750949750610fae9650505050505050565b3480156103ae57600080fd5b5061016461113e565b3480156103c357600080fd5b506101cb611200565b3480156103d857600080fd5b50610263600435611224565b3480156103f057600080fd5b506101646114ff565b34801561040557600080fd5b506101a261152a565b34801561041a57600080fd5b5061042660043561155b565b6040805173ffffffffffffffffffffffffffffffffffffffff909316835290151560208301528051918290030190f35b60008060006004845110156040805190810160405280601e81526020017f45564d5245475f5343524950545f4c454e4754485f544f4f5f53484f5254000081525090151561053c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156105015781810151838201526020016104e9565b50505050905090810190601f16801561052e5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50610546846115a0565b63ffffffff1660008181526001602052604090208054919350915074010000000000000000000000000000000000000000900460ff166105875760006105a0565b805473ffffffffffffffffffffffffffffffffffffffff165b949350505050565b6000806105b3610c61565b905080158015906105cb5750806105c86115b3565b10155b91505090565b7fc4e90f38eea8c4212a009ca7b8947943ba4d4a58d19b683417f65291d1cd9ed281565b60006105ff61113e565b73ffffffffffffffffffffffffffffffffffffffff166304bf2a7f836040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561068357818101518382015260200161066b565b50505050905090810190601f1680156106b05780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1580156106cf57600080fd5b505af11580156106e3573d6000803e3d6000fd5b505050506040513d60208110156106f957600080fd5b505192915050565b600061070b6114ff565b73ffffffffffffffffffffffffffffffffffffffff166332f0a3b56040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561076e57600080fd5b505af1158015610782573d6000803e3d6000fd5b505050506040513d602081101561079857600080fd5b5051905090565b60007ff7a450ef335e1892cb42c8ca72e7242359d7711924b75db5717410da3f614aa36107cb836115b7565b6107d6338383610fae565b60408051808201909152600f81527f4150505f415554485f4641494c454400000000000000000000000000000000006020820152901515610873576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382528381815181526020019150805190602001908083836000838110156105015781810151838201526020016104e9565b5060008481526001602090815260409182902080548351808501909452601884527f45564d5245475f4558454355544f525f44495341424c4544000000000000000092840192909252945074010000000000000000000000000000000000000000900460ff161515610941576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382528381815181526020019150805190602001908083836000838110156105015781810151838201526020016104e9565b5082547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff8116845560405173ffffffffffffffffffffffffffffffffffffffff9091169085907fc13cd9238f8ab1e5ab1f95cde77e89288fe5c328d04739adffd57b144b408fd190600090a350505050565b50600190565b60006109e47fd625496217aa6a3453eecb9c3489dc5a53e6c67b444329ea2b2cbc9ff547639b6115f8565b905090565b6109f1610c61565b60408051808201909152601881527f494e49545f414c52454144595f494e495449414c495a4544000000000000000060208201529015610a8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382528381815181526020019150805190602001908083836000838110156105015781810151838201526020016104e9565b50610a966115fc565b6001600055565b6040805160008082526020820190925281907fc4e90f38eea8c4212a009ca7b8947943ba4d4a58d19b683417f65291d1cd9ed290610ade9033908390610fae565b60408051808201909152600f81527f4150505f415554485f4641494c454400000000000000000000000000000000006020820152901515610b7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382528381815181526020019150805190602001908083836000838110156105015781810151838201526020016104e9565b50600080546001808201835560408051808201825273ffffffffffffffffffffffffffffffffffffffff808a168083526020808401868152878952959052838720925183549551151574010000000000000000000000000000000000000000027fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff919093167fffffffffffffffffffffffff00000000000000000000000000000000000000009096169590951794909416179055519194509184917f7697fa3288629310075a63816e294207c84f3cfc18ccf8e18eb917ec0bb566999190a35092915050565b60006109e47febb05b386a8d34882b8711d156f463690983dc47815980fb82aeeff1aa43579e6115f8565b6000806000610c9a846109b3565b60408051808201909152601281527f5245434f5645525f444953414c4c4f57454400000000000000000000000000006020820152901515610d37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382528381815181526020019150805190602001908083836000838110156105015781810151838201526020016104e9565b50610d40610701565b9250610d4b836116df565b60408051808201909152601a81527f5245434f5645525f5641554c545f4e4f545f434f4e54524143540000000000006020820152901515610de8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382528381815181526020019150805190602001908083836000838110156105015781810151838201526020016104e9565b5073ffffffffffffffffffffffffffffffffffffffff84161515610e53576040513031925073ffffffffffffffffffffffffffffffffffffffff84169083156108fc029084906000818181858888f19350505050158015610e4d573d6000803e3d6000fd5b50610f43565b5082610e7b73ffffffffffffffffffffffffffffffffffffffff82163063ffffffff61171916565b9150610ea473ffffffffffffffffffffffffffffffffffffffff8216848463ffffffff61185216565b60408051808201909152601d81527f5245434f5645525f544f4b454e5f5452414e534645525f4641494c45440000006020820152901515610f41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382528381815181526020019150805190602001908083836000838110156105015781810151838201526020016104e9565b505b8373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f596caf56044b55fb8c4ca640089bbc2b63cae3e978b851f5745cbb7c5b288e02846040518082815260200191505060405180910390a350505050565b600080610fb96105a8565b1515610fc85760009150611136565b610fd06114ff565b905073ffffffffffffffffffffffffffffffffffffffff81161515610ff85760009150611136565b8073ffffffffffffffffffffffffffffffffffffffff1663fdef9106863087611020886118ea565b6040517c010000000000000000000000000000000000000000000000000000000063ffffffff871602815273ffffffffffffffffffffffffffffffffffffffff808616600483019081529085166024830152604482018490526080606483019081528351608484015283519192909160a490910190602085019080838360005b838110156110b85781810151838201526020016110a0565b50505050905090810190601f1680156110e55780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15801561110757600080fd5b505af115801561111b573d6000803e3d6000fd5b505050506040513d602081101561113157600080fd5b505191505b509392505050565b6000806111496114ff565b604080517fbe00bbd80000000000000000000000000000000000000000000000000000000081527fd6f028ca0e8edb4a8c9757ca4fdccab25fa1e0317da1188108f7d2dee14902fb60048201527fddbcfd564f642ab5627cf68b9b7d374fb4f8a36e941a75d89c87998cef03bd616024820152905173ffffffffffffffffffffffffffffffffffffffff929092169163be00bbd8916044808201926020929091908290030181600087803b1580156106cf57600080fd5b7ff7a450ef335e1892cb42c8ca72e7242359d7711924b75db5717410da3f614aa381565b60007ff7a450ef335e1892cb42c8ca72e7242359d7711924b75db5717410da3f614aa3611250836115b7565b61125b338383610fae565b60408051808201909152600f81527f4150505f415554485f4641494c4544000000000000000000000000000000000060208201529015156112f8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382528381815181526020019150805190602001908083836000838110156105015781810151838201526020016104e9565b508360008111801561130b575060005481105b60408051808201909152601a81527f45564d5245475f494e4558495354454e545f4558454355544f5200000000000060208201529015156113a8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382528381815181526020019150805190602001908083836000838110156105015781810151838201526020016104e9565b5060008581526001602090815260409182902080548351808501909452601784527f45564d5245475f4558454355544f525f454e41424c454400000000000000000092840192909252955074010000000000000000000000000000000000000000900460ff1615611475576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382528381815181526020019150805190602001908083836000838110156105015781810151838201526020016104e9565b5083547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16740100000000000000000000000000000000000000001780855560405173ffffffffffffffffffffffffffffffffffffffff9091169086907f7697fa3288629310075a63816e294207c84f3cfc18ccf8e18eb917ec0bb5669990600090a35050505050565b60006109e47f4172f0f7d2289153072b0a6ca36959e0cbe2efc3afe50fc81636caa96338137b6115f8565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff611555610c61565b14905090565b60016020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff81169074010000000000000000000000000000000000000000900460ff1682565b60006115ad8260006118f4565b92915050565b4390565b60408051600180825281830190925260609160208083019080388339019050509050818160008151811015156115e957fe5b60209081029091010152919050565b5490565b611604610c61565b60408051808201909152601881527f494e49545f414c52454144595f494e495449414c495a45440000000000000000602082015290156116a0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382528381815181526020019150805190602001908083836000838110156105015781810151838201526020016104e9565b506116d96116ac6115b3565b7febb05b386a8d34882b8711d156f463690983dc47815980fb82aeeff1aa43579e9063ffffffff61194c16565b565b5490565b60008073ffffffffffffffffffffffffffffffffffffffff831615156117085760009150611713565b823b90506000811191505b50919050565b6040805173ffffffffffffffffffffffffffffffffffffffff83166024808301919091528251808303909101815260449091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f70a082310000000000000000000000000000000000000000000000000000000017905260009081806117a68684611950565b60408051808201909152601c81527f534146455f4552435f32305f42414c414e43455f52455645525445440000000060208201529193509150821515611848576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382528381815181526020019150805190602001908083836000838110156105015781810151838201526020016104e9565b5095945050505050565b6040805173ffffffffffffffffffffffffffffffffffffffff8416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001790526000906118e18582611981565b95945050505050565b8051602002815290565b60008061190184846119cf565b7c01000000000000000000000000000000000000000000000000000000007fffffffff0000000000000000000000000000000000000000000000000000000090911604949350505050565b9055565b6000806000806040516020818751602089018a5afa9250600083111561197557805191505b50909590945092505050565b6000806040516020818551602087016000895af160008111156119c5573d80156119b257602081146119bb576119c3565b600193506119c3565b600183511493505b505b5090949350505050565b0160200151905600a165627a7a7230582079959e429032044ca887606d4966d2e5941eda9ca04bb87dabd8d3b0b81b70800029ebb05b386a8d34882b8711d156f463690983dc47815980fb82aeeff1aa43579e608060405261001564010000000061001a810204565b610223565b61002b64010000000061011a810204565b60408051808201909152601881527f494e49545f414c52454144595f494e495449414c495a4544000000000000000060208201529015610103576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156100c85781810151838201526020016100b0565b50505050905090810190601f1680156100f55780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50610118600019640100000000610145810204565b565b6000610140600080516020610a7a83398151915264010000000061080c61021b82021704565b905090565b61015664010000000061011a810204565b60408051808201909152601881527f494e49545f414c52454144595f494e495449414c495a45440000000000000000602082015290156101f2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382528381815181526020019150805190602001908083836000838110156100c85781810151838201526020016100b0565b50610218600080516020610a7a8339815191528264010000000061081861021f82021704565b50565b5490565b9055565b610848806102326000396000f30060806040526004361061006c5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630803fac08114610071578063279cea351461009a5780638333d9b2146101475780638b3dd7491461016e578063de4796ed14610183575b600080fd5b34801561007d57600080fd5b50610086610198565b604080519115158252519081900360200190f35b3480156100a657600080fd5b506100d260246004803582810192908201359181358083019290820135916044359182019101356101c1565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561010c5781810151838201526020016100f4565b50505050905090810190601f1680156101395780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561015357600080fd5b5061015c6106dc565b60408051918252519081900360200190f35b34801561017a57600080fd5b5061015c610700565b34801561018f57600080fd5b50610086610730565b6000806101a3610700565b905080158015906101bb5750806101b8610761565b10155b91505090565b606060008060008060008060006101d6610198565b60408051808201909152601481527f494e49545f4e4f545f494e495449414c495a454400000000000000000000000060208201529015156102af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561027457818101518382015260200161025c565b50505050905090810190601f1680156102a15780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600496505b8c8710156106cb5760408051808201909152601781527f45564d43414c4c535f494e56414c49445f4c454e47544800000000000000000060208201526018888f03101561035e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360008381101561027457818101518382015260200161025c565b506103a2878f8f8080601f01602080910402602001604051908101604052809392919081815260200183838082843750949594505063ffffffff6107651692505050565b9550600094505b888510156104b4578989868181106103bd57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614156040805190810160405280601981526020017f45564d43414c4c535f424c41434b4c49535445445f43414c4c000000000000008152509015156104a8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360008381101561027457818101518382015260200161025c565b506001909401936103a9565b60405173ffffffffffffffffffffffffffffffffffffffff871690309033907f9dcff9d94fbfdb4622d11edb383005f95e78efb446c72d92f8e615c6025c470390600090a461053f876014018f8f8080601f01602080910402602001604051908101604052809392919081815260200183838082843750949594505063ffffffff6107ad1692505050565b63ffffffff169350866014016004019250610593838f8f8080601f01602080910402602001604051908101604052809392919081815260200183838082843750949594505063ffffffff6108051692505050565b60408051808201909152601781527f45564d43414c4c535f494e56414c49445f4c454e475448000000000000000000602082015284860198509092508d881115610639576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360008381101561027457818101518382015260200161025c565b50600080858460008a6113885a03f19050808015610656576106c5565b6040513d8015610669573d6000833e3d82fd5b7f08c379a000000000000000000000000000000000000000000000000000000000825260206004830152601660248301527f45564d43414c4c535f43414c4c5f5245564552544544000000000000000000006044830152606482fd5b506102b5565b505050505050509695505050505050565b7f2dc858a00f3e417be1394b87c07158e989ec681ce8cc68a9093680ac1a87030290565b600061072b7febb05b386a8d34882b8711d156f463690983dc47815980fb82aeeff1aa43579e61080c565b905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61075b610700565b14905090565b4390565b6000806107728484610810565b6c010000000000000000000000007fffffffffffffffffffffffffffffffffffffffff00000000000000000000000090911604949350505050565b6000806107ba8484610810565b7c01000000000000000000000000000000000000000000000000000000007fffffffff0000000000000000000000000000000000000000000000000000000090911604949350505050565b0160200190565b5490565b016020015190565b90555600a165627a7a72305820ab9e75a00e63cfcfbd1642fb842561c2da9bc206c48478d9b37a4ec20a9ea6170029ebb05b386a8d34882b8711d156f463690983dc47815980fb82aeeff1aa43579e", "deployedBytecode": "0x6080604052600436106100565763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663127d679c811461005b57806333404143146100995780634de50a3a146100c7575b600080fd5b34801561006757600080fd5b506100706100dc565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b3480156100a557600080fd5b5061007073ffffffffffffffffffffffffffffffffffffffff600435166100f8565b3480156100d357600080fd5b50610070610776565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b604080516004808252602480830184526020830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f8129fc1c000000000000000000000000000000000000000000000000000000001781526000805495517fc050a7a60000000000000000000000000000000000000000000000000000000081527fddbcfd564f642ab5627cf68b9b7d374fb4f8a36e941a75d89c87998cef03bd6194810185815273ffffffffffffffffffffffffffffffffffffffff97881694820185905260016064830181905260806044840190815288516084850152885194998a98908c169763c050a7a697919690958b95939260a4909101918083838e5b838110156102125781810151838201526020016101fa565b50505050905090810190601f16801561023f5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15801561026157600080fd5b505af1158015610275573d6000803e3d6000fd5b505050506040513d602081101561028b57600080fd5b5051604080517fde287359000000000000000000000000000000000000000000000000000000008152905191945073ffffffffffffffffffffffffffffffffffffffff86169163de287359916004808201926020929091908290030181600087803b1580156102f957600080fd5b505af115801561030d573d6000803e3d6000fd5b505050506040513d602081101561032357600080fd5b5051604080517f19f3d10f000000000000000000000000000000000000000000000000000000008152905191925073ffffffffffffffffffffffffffffffffffffffff8084169263be0384789230928892908316916319f3d10f9160048083019260209291908290030181600087803b15801561039f57600080fd5b505af11580156103b3573d6000803e3d6000fd5b505050506040513d60208110156103c957600080fd5b5051604080517c010000000000000000000000000000000000000000000000000000000063ffffffff871602815273ffffffffffffffffffffffffffffffffffffffff948516600482015292909316602483015260448201523060648201529051608480830192600092919082900301818387803b15801561044a57600080fd5b505af115801561045e573d6000803e3d6000fd5b5050600154604080517f87a16f1200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9283166004820152905191871693506387a16f1292506024808201926020929091908290030181600087803b1580156104d757600080fd5b505af11580156104eb573d6000803e3d6000fd5b505050506040513d602081101561050157600080fd5b5050604080517f19f3d10f000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff80841692639d0effdb9230928892908316916319f3d10f916004808201926020929091908290030181600087803b15801561057b57600080fd5b505af115801561058f573d6000803e3d6000fd5b505050506040513d60208110156105a557600080fd5b5051604080517c010000000000000000000000000000000000000000000000000000000063ffffffff871602815273ffffffffffffffffffffffffffffffffffffffff948516600482015292909316602483015260448201529051606480830192600092919082900301818387803b15801561062057600080fd5b505af1158015610634573d6000803e3d6000fd5b505050508073ffffffffffffffffffffffffffffffffffffffff1663a885508a848573ffffffffffffffffffffffffffffffffffffffff166319f3d10f6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156106b957600080fd5b505af11580156106cd573d6000803e3d6000fd5b505050506040513d60208110156106e357600080fd5b5051604080517c010000000000000000000000000000000000000000000000000000000063ffffffff861602815273ffffffffffffffffffffffffffffffffffffffff9093166004840152602483019190915251604480830192600092919082900301818387803b15801561075757600080fd5b505af115801561076b573d6000803e3d6000fd5b505050505050919050565b60015473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a7230582033b08ba5e367ce82d8f412d191e18d1095ab2da27dac6006051c0762d4ea18cb0029", "sourceMap": "225:1215:50:-;;;448:135;8:9:-1;5:2;;;30:1;27;20:12;5:2;448:135:50;489:23;;:::i;:::-;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;479:7:50;:33;;-1:-1:-1;;;;;;479:33:50;-1:-1:-1;;;;;479:33:50;;;;;;;;;;558:17;;:::i;:::-;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;522:14:50;:54;;-1:-1:-1;;;;;;522:54:50;-1:-1:-1;;;;;522:54:50;;;;;;;;;;225:1215;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;", "deployedSourceMap": "225:1215:50:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;295:32;;8:9:-1;5:2;;;30:1;27;20:12;5:2;295:32:50;;;;;;;;;;;;;;;;;;;;;;;747:691;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;747:691:50;;;;;;;333:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;333:40:50;;;;295:32;;;;;;:::o;747:691::-;866:47;;;22:32:-1;6:49;;;866:47:50;;;;;;49:4:-1;25:18;;61:17;;866:47:50;182:15:-1;889:23:50;179:29:-1;160:49;;806:21:50;1000:7;;947:80;;;;;330:66:44;947:80:50;;;;;;889:14;1000:7;;;947:80;;;;;;973:25;947:80;;;;;;;;;;;;;;;;;;;;;806:21;;;;947:25;;;;;;330:66:44;;1000:7:50;;866:47;;947:80;;;;;;;;;25:18:-1;806:21:50;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;947:80:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;947:80:50;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;947:80:50;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;947:80:50;1053:10;;;;;;;;947:80;;-1:-1:-1;1053:8:50;;;;;;:10;;;;;947:80;;1053:10;;;;;;;;;:8;:10;;;5:2:-1;;;;30:1;27;20:12;5:2;1053:10:50;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1053:10:50;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1053:10:50;1107:32;;;;;;;;1053:10;;-1:-1:-1;1075:20:50;;;;;;;1096:4;;1102:3;;1107:30;;;;;;:32;;;;;1053:10;;1107:32;;;;;;;;:30;:32;;;5:2:-1;;;;30:1;27;20:12;5:2;1107:32:50;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1107:32:50;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1107:32:50;1075:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1141:4;1075:71;;;;;;;;;;;-1:-1:-1;;1075:71:50;;;;;;;-1:-1:-1;1075:71:50;;;;5:2:-1;;;;30:1;27;20:12;5:2;1075:71:50;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;1179:14:50;;1157:37;;;;;;:21;1179:14;;;1157:37;;;;;;:21;;;;-1:-1:-1;1157:21:50;;-1:-1:-1;1157:37:50;;;;;;;;;;;;;;;1179:14;1157:21;:37;;;5:2:-1;;;;30:1;27;20:12;5:2;1157:37:50;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1157:37:50;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;1301:32:50;;;;;;;;1269:20;;;;;;;1290:4;;1296:3;;1301:30;;;;;;:32;;;;;1157:37;;1301:32;;;;;;;;;:30;:32;;;5:2:-1;;;;30:1;27;20:12;5:2;1301:32:50;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1301:32:50;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1301:32:50;1269:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1269:65:50;;;;;;;-1:-1:-1;1269:65:50;;;;5:2:-1;;;;30:1;27;20:12;5:2;1269:65:50;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1269:65:50;;;;1344:3;:27;;;1372:3;1377;:30;;;:32;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1377:32:50;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1377:32:50;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1377:32:50;1344:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1344:66:50;;;;;;;-1:-1:-1;1344:66:50;;;;5:2:-1;;;;30:1;27;20:12;5:2;1344:66:50;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;;;747:691:50;;;;;:::o;333:40::-;;;;;;:::o", "source": "pragma solidity 0.4.24;\n\nimport \"../evmscript/IEVMScriptExecutor.sol\";\nimport \"../evmscript/EVMScriptRegistry.sol\";\n\nimport \"../evmscript/executors/CallsScript.sol\";\n\nimport \"../kernel/Kernel.sol\";\nimport \"../acl/ACL.sol\";\n\n\ncontract EVMScriptRegistryFactory is EVMScriptRegistryConstants {\n EVMScriptRegistry public baseReg;\n IEVMScriptExecutor public baseCallScript;\n\n /**\n * @notice Create a new EVMScriptRegistryFactory.\n */\n constructor() public {\n baseReg = new EVMScriptRegistry();\n baseCallScript = IEVMScriptExecutor(new CallsScript());\n }\n\n /**\n * @notice Install a new pinned instance of EVMScriptRegistry on `_dao`.\n * @param _dao Kernel\n * @return Installed EVMScriptRegistry\n */\n function newEVMScriptRegistry(Kernel _dao) public returns (EVMScriptRegistry reg) {\n bytes memory initPayload = abi.encodeWithSelector(reg.initialize.selector);\n reg = EVMScriptRegistry(_dao.newPinnedAppInstance(EVMSCRIPT_REGISTRY_APP_ID, baseReg, initPayload, true));\n\n ACL acl = ACL(_dao.acl());\n\n acl.createPermission(this, reg, reg.REGISTRY_ADD_EXECUTOR_ROLE(), this);\n\n reg.addScriptExecutor(baseCallScript); // spec 1 = CallsScript\n\n // Clean up the permissions\n acl.revokePermission(this, reg, reg.REGISTRY_ADD_EXECUTOR_ROLE());\n acl.removePermissionManager(reg, reg.REGISTRY_ADD_EXECUTOR_ROLE());\n\n return reg;\n }\n}\n", "sourcePath": "@aragon/os/contracts/factory/EVMScriptRegistryFactory.sol", "ast": { "absolutePath": "@aragon/os/contracts/factory/EVMScriptRegistryFactory.sol", "exportedSymbols": { "EVMScriptRegistryFactory": [ 12546 ] }, "id": 12547, "nodeType": "SourceUnit", "nodes": [ { "id": 12441, "literals": [ "solidity", "0.4", ".24" ], "nodeType": "PragmaDirective", "src": "0:23:50" }, { "absolutePath": "@aragon/os/contracts/evmscript/IEVMScriptExecutor.sol", "file": "../evmscript/IEVMScriptExecutor.sol", "id": 12442, "nodeType": "ImportDirective", "scope": 12547, "sourceUnit": 11844, "src": "25:45:50", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "@aragon/os/contracts/evmscript/EVMScriptRegistry.sol", "file": "../evmscript/EVMScriptRegistry.sol", "id": 12443, "nodeType": "ImportDirective", "scope": 12547, "sourceUnit": 11658, "src": "71:44:50", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "@aragon/os/contracts/evmscript/executors/CallsScript.sol", "file": "../evmscript/executors/CallsScript.sol", "id": 12444, "nodeType": "ImportDirective", "scope": 12547, "sourceUnit": 12127, "src": "117:48:50", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "@aragon/os/contracts/kernel/Kernel.sol", "file": "../kernel/Kernel.sol", "id": 12445, "nodeType": "ImportDirective", "scope": 12547, "sourceUnit": 13093, "src": "167:30:50", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "@aragon/os/contracts/acl/ACL.sol", "file": "../acl/ACL.sol", "id": 12446, "nodeType": "ImportDirective", "scope": 12547, "sourceUnit": 9153, "src": "198:24:50", "symbolAliases": [], "unitAlias": "" }, { "baseContracts": [ { "arguments": null, "baseName": { "contractScope": null, "id": 12447, "name": "EVMScriptRegistryConstants", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 11850, "src": "262:26:50", "typeDescriptions": { "typeIdentifier": "t_contract$_EVMScriptRegistryConstants_$11850", "typeString": "contract EVMScriptRegistryConstants" } }, "id": 12448, "nodeType": "InheritanceSpecifier", "src": "262:26:50" } ], "contractDependencies": [ 11657, 11850, 12126 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, "id": 12546, "linearizedBaseContracts": [ 12546, 11850 ], "name": "EVMScriptRegistryFactory", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, "id": 12450, "name": "baseReg", "nodeType": "VariableDeclaration", "scope": 12546, "src": "295:32:50", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_contract$_EVMScriptRegistry_$11657", "typeString": "contract EVMScriptRegistry" }, "typeName": { "contractScope": null, "id": 12449, "name": "EVMScriptRegistry", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 11657, "src": "295:17:50", "typeDescriptions": { "typeIdentifier": "t_contract$_EVMScriptRegistry_$11657", "typeString": "contract EVMScriptRegistry" } }, "value": null, "visibility": "public" }, { "constant": false, "id": 12452, "name": "baseCallScript", "nodeType": "VariableDeclaration", "scope": 12546, "src": "333:40:50", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_contract$_IEVMScriptExecutor_$11843", "typeString": "contract IEVMScriptExecutor" }, "typeName": { "contractScope": null, "id": 12451, "name": "IEVMScriptExecutor", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 11843, "src": "333:18:50", "typeDescriptions": { "typeIdentifier": "t_contract$_IEVMScriptExecutor_$11843", "typeString": "contract IEVMScriptExecutor" } }, "value": null, "visibility": "public" }, { "body": { "id": 12469, "nodeType": "Block", "src": "469:114:50", "statements": [ { "expression": { "argumentTypes": null, "id": 12459, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 12455, "name": "baseReg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12450, "src": "479:7:50", "typeDescriptions": { "typeIdentifier": "t_contract$_EVMScriptRegistry_$11657", "typeString": "contract EVMScriptRegistry" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "id": 12457, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "NewExpression", "src": "489:21:50", "typeDescriptions": { "typeIdentifier": "t_function_creation_nonpayable$__$returns$_t_contract$_EVMScriptRegistry_$11657_$", "typeString": "function () returns (contract EVMScriptRegistry)" }, "typeName": { "contractScope": null, "id": 12456, "name": "EVMScriptRegistry", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 11657, "src": "493:17:50", "typeDescriptions": { "typeIdentifier": "t_contract$_EVMScriptRegistry_$11657", "typeString": "contract EVMScriptRegistry" } } }, "id": 12458, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "489:23:50", "typeDescriptions": { "typeIdentifier": "t_contract$_EVMScriptRegistry_$11657", "typeString": "contract EVMScriptRegistry" } }, "src": "479:33:50", "typeDescriptions": { "typeIdentifier": "t_contract$_EVMScriptRegistry_$11657", "typeString": "contract EVMScriptRegistry" } }, "id": 12460, "nodeType": "ExpressionStatement", "src": "479:33:50" }, { "expression": { "argumentTypes": null, "id": 12467, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 12461, "name": "baseCallScript", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12452, "src": "522:14:50", "typeDescriptions": { "typeIdentifier": "t_contract$_IEVMScriptExecutor_$11843", "typeString": "contract IEVMScriptExecutor" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "id": 12464, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "NewExpression", "src": "558:15:50", "typeDescriptions": { "typeIdentifier": "t_function_creation_nonpayable$__$returns$_t_contract$_CallsScript_$12126_$", "typeString": "function () returns (contract CallsScript)" }, "typeName": { "contractScope": null, "id": 12463, "name": "CallsScript", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 12126, "src": "562:11:50", "typeDescriptions": { "typeIdentifier": "t_contract$_CallsScript_$12126", "typeString": "contract CallsScript" } } }, "id": 12465, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "558:17:50", "typeDescriptions": { "typeIdentifier": "t_contract$_CallsScript_$12126", "typeString": "contract CallsScript" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_contract$_CallsScript_$12126", "typeString": "contract CallsScript" } ], "id": 12462, "name": "IEVMScriptExecutor", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11843, "src": "539:18:50", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_IEVMScriptExecutor_$11843_$", "typeString": "type(contract IEVMScriptExecutor)" } }, "id": 12466, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "539:37:50", "typeDescriptions": { "typeIdentifier": "t_contract$_IEVMScriptExecutor_$11843", "typeString": "contract IEVMScriptExecutor" } }, "src": "522:54:50", "typeDescriptions": { "typeIdentifier": "t_contract$_IEVMScriptExecutor_$11843", "typeString": "contract IEVMScriptExecutor" } }, "id": 12468, "nodeType": "ExpressionStatement", "src": "522:54:50" } ] }, "documentation": "@notice Create a new EVMScriptRegistryFactory.", "id": 12470, "implemented": true, "isConstructor": true, "isDeclaredConst": false, "modifiers": [], "name": "", "nodeType": "FunctionDefinition", "parameters": { "id": 12453, "nodeType": "ParameterList", "parameters": [], "src": "459:2:50" }, "payable": false, "returnParameters": { "id": 12454, "nodeType": "ParameterList", "parameters": [], "src": "469:0:50" }, "scope": 12546, "src": "448:135:50", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 12544, "nodeType": "Block", "src": "829:609:50", "statements": [ { "assignments": [ 12478 ], "declarations": [ { "constant": false, "id": 12478, "name": "initPayload", "nodeType": "VariableDeclaration", "scope": 12545, "src": "839:24:50", "stateVariable": false,