UNPKG

@daostack/access_control

Version:

Capability-based access control for Ethereum smart contracts.

858 lines 96 kB
{ "contractName": "PermissionedMock", "abi": [ { "constant": true, "inputs": [ { "name": "interfaceID", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "name": "", "type": "bool" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "name": "_id", "type": "bytes32" }, { "name": "_to", "type": "address" } ], "name": "assignFullKey", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [ { "name": "", "type": "bytes32" }, { "name": "", "type": "address" } ], "name": "keys", "outputs": [ { "name": "exists", "type": "bool" }, { "name": "assignable", "type": "bool" }, { "name": "start", "type": "uint256" }, { "name": "expiration", "type": "uint256" }, { "name": "uses", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "name": "_expiration", "type": "uint256" } ], "name": "isValidExpiration", "outputs": [ { "name": "valid", "type": "bool" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "name": "_id", "type": "bytes32" } ], "name": "revokeKey", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [ { "name": "_id", "type": "bytes32" }, { "name": "_owner", "type": "address" } ], "name": "unlockable", "outputs": [ { "name": "", "type": "bool" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "name": "_id", "type": "bytes32" }, { "name": "_owner", "type": "address" } ], "name": "getKey", "outputs": [ { "name": "", "type": "bool" }, { "name": "", "type": "bool" }, { "name": "", "type": "uint256" }, { "name": "", "type": "uint256" }, { "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "name": "_id", "type": "bytes32" }, { "name": "_to", "type": "address" }, { "name": "_assignable", "type": "bool" }, { "name": "_start", "type": "uint256" }, { "name": "_expiration", "type": "uint256" }, { "name": "_uses", "type": "uint256" } ], "name": "assignKey", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "anonymous": false, "inputs": [ { "indexed": true, "name": "_id", "type": "bytes32" }, { "indexed": true, "name": "_from", "type": "address" }, { "indexed": true, "name": "_to", "type": "address" }, { "indexed": false, "name": "_assignable", "type": "bool" }, { "indexed": false, "name": "_start", "type": "uint256" }, { "indexed": false, "name": "_expiration", "type": "uint256" }, { "indexed": false, "name": "_uses", "type": "uint256" } ], "name": "AssignKey", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "name": "_id", "type": "bytes32" }, { "indexed": true, "name": "_owner", "type": "address" } ], "name": "RevokeKey", "type": "event" }, { "constant": false, "inputs": [ { "name": "_id", "type": "bytes32" }, { "name": "_owner", "type": "address" } ], "name": "revokeOwnerKey_", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "_id", "type": "bytes32" }, { "name": "_to", "type": "address" }, { "name": "_assignable", "type": "bool" }, { "name": "_start", "type": "uint256" }, { "name": "_expiration", "type": "uint256" }, { "name": "_uses", "type": "uint256" } ], "name": "grantKey_", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "_id", "type": "bytes32" }, { "name": "_to", "type": "address" } ], "name": "grantFullKey_", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "_id", "type": "bytes32" } ], "name": "unlock_", "outputs": [ { "name": "", "type": "bool" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" } ], "bytecode": "0x608060405234801561001057600080fd5b50611205806100206000396000f3006080604052600436106100b95763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166301ffc9a781146100be57806313fb5c3d1461010c57806321f240011461013f5780632903b8ee1461017e57806343751d60146101dc57806354c39e80146101f4578063572f221014610225578063598870461461023d578063719af01f146102555780639f9e407a14610286578063baf81f65146102b7578063bc4f5a33146102e8575b600080fd5b3480156100ca57600080fd5b506100f87fffffffff0000000000000000000000000000000000000000000000000000000060043516610327565b604080519115158252519081900360200190f35b34801561011857600080fd5b5061013d60043573ffffffffffffffffffffffffffffffffffffffff602435166103c2565b005b34801561014b57600080fd5b5061013d60043573ffffffffffffffffffffffffffffffffffffffff60243516604435151560643560843560a435610456565b34801561018a57600080fd5b506101af60043573ffffffffffffffffffffffffffffffffffffffff6024351661046c565b60408051951515865293151560208601528484019290925260608401526080830152519081900360a00190f35b3480156101e857600080fd5b506100f86004356104a6565b34801561020057600080fd5b5061013d60043573ffffffffffffffffffffffffffffffffffffffff602435166104b7565b34801561023157600080fd5b5061013d6004356104c5565b34801561024957600080fd5b506100f86004356104d2565b34801561026157600080fd5b506100f860043573ffffffffffffffffffffffffffffffffffffffff602435166104dd565b34801561029257600080fd5b5061013d60043573ffffffffffffffffffffffffffffffffffffffff6024351661058a565b3480156102c357600080fd5b506101af60043573ffffffffffffffffffffffffffffffffffffffff60243516610594565b3480156102f457600080fd5b5061013d60043573ffffffffffffffffffffffffffffffffffffffff60243516604435151560643560843560a4356105e7565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a70000000000000000000000000000000000000000000000000000000014806103ba57507fffffffff0000000000000000000000000000000000000000000000000000000082167f33f9cb6400000000000000000000000000000000000000000000000000000000145b90505b919050565b6103ca6111a5565b5060008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff85168452825291829020825160a081018452815460ff80821615158352610100909104161515928101839052600182015493810184905260028201546060820181905260039092015460808201819052909361045193879387939192916105e7565b505050565b610464868686868686610d92565b505050505050565b6000602081815292815260408082209093529081522080546001820154600283015460039093015460ff8084169461010090940416929085565b60008115806103ba57505042111590565b6104c18282610f97565b5050565b6104cf8133610f97565b50565b60006103ba8261102c565b60006104e76111a5565b5060008381526020818152604080832073ffffffffffffffffffffffffffffffffffffffff86168452825291829020825160a081018452815460ff8082161580158085526101009093049091161515948301949094526001830154948201949094526002820154606082015260039091015460808201529190610572575061057281606001516104a6565b8015610582575042816040015111155b949350505050565b6104c18282611058565b60009182526020828152604080842073ffffffffffffffffffffffffffffffffffffffff939093168452919052902080546001820154600283015460039093015460ff8084169561010090940416939192565b6105ef6111a5565b6105f76111a5565b6000888152602081815260408083203384528252808320815160a081018352815460ff80821615801580855261010090930490911615159583019590955260018301549382019390935260028201546060820152600390910154608082015294509061066b575061066b83606001516104a6565b15156106d857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f496e76616c6964206b6579000000000000000000000000000000000000000000604482015290519081900360640190fd5b8260200151151561074a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4b6579206973206e6f742061737369676e61626c650000000000000000000000604482015290519081900360640190fd5b428360400151111580610761575082604001518610155b15156107f457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f43616e6e6f7420726564756365206b657927732066757475726520737461727460448201527f2074696d65000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b606083015115806108145750826060015185111580156108145750600085115b151561088157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f43616e6e6f7420657874656e64206b657927732065787069726174696f6e0000604482015290519081900360640190fd5b84158061088d57508486105b151561092057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f53746172742074696d65206d757374206265207374726963746c79206c65737360448201527f207468616e2065787069726174696f6e00000000000000000000000000000000606482015290519081900360840190fd5b610929856104a6565b151561099657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f45787069726174696f6e206d75737420626520696e2074686520667574757265604482015290519081900360640190fd5b608083015115806109b65750826080015184111580156109b65750600084115b1515610a2357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4e6f7420656e6f7567682075736573206176616961626c650000000000000000604482015290519081900360640190fd5b60008981526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8c168452825291829020825160a081018452815460ff80821615158352610100909104161515928101929092526001810154928201929092526002820154606082015260039091015460808201529150610aa189896104dd565b80610aaf5750428260400151115b9050801580610afc575086151582602001511515148015610ad35750848260600151145b8015610afc575042826040015111158015610aee5750428611155b80610afc5750858260400151145b1515610b8f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f43616e6e6f74206d6572676520696e746f20726563657065696e742773206b6560448201527f7900000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b610b998985611069565b610ba389896104dd565b15610c3b57608082015115610c3657831515610bef5760008981526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8c168452909152812060030155610c36565b6080820151610c04908563ffffffff61118016565b60008a81526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8d1684529091529020600301555b610d21565b60a0604051908101604052806001151581526020018815158152602001878152602001868152602001858152506000808b6000191660001916815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548160ff02191690831515021790555060208201518160000160016101000a81548160ff0219169083151502179055506040820151816001015560608201518160020155608082015181600301559050505b6040805188151581526020810188905280820187905260608101869052905173ffffffffffffffffffffffffffffffffffffffff8a169133918c917f6bb983ad4fd27414749e3cd41e18f0e39e54a860dad0a7ccb2a2ecb902226e17919081900360800190a4505050505050505050565b811580610d9e57508183105b1515610e3157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f53746172742074696d65206d757374206265207374726963746c79206c65737360448201527f207468616e2065787069726174696f6e00000000000000000000000000000000606482015290519081900360840190fd5b610e3a826104a6565b1515610ea757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f45787069726174696f6e206d75737420626520696e2074686520667574757265604482015290519081900360640190fd5b60008681526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8916808552908352818420805489151561010081027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00909316600190811793909316178355908201899055600282018890556003909101869055825190815292830187905282820186905260608301859052905190929189917f6bb983ad4fd27414749e3cd41e18f0e39e54a860dad0a7ccb2a2ecb902226e179181900360800190a4505050505050565b60008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000168155600181018490556002810184905560030183905551909184917ffed57faa4b67e0f08c65114689e4d61da45604656746dbbd5218f0ed1286ce299190a35050565b600061103882336104dd565b1561105057611048826001611069565b5060016103bd565b506000919050565b6104c1828260016000806000610d92565b6110716111a5565b506000828152602081815260408083203384528252808320815160a081018352815460ff80821615158352610100909104161515938101939093526001810154918301919091526002810154606083015260030154608082018190529091101561045157818160800151141561113557600083815260208181526040808320338452909152812080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000168155600181018290556002810182905560030155610451565b600083815260208181526040808320338452909152902060030154611160908363ffffffff61119316565b600084815260208181526040808320338452909152902060030155505050565b8181018281101561118d57fe5b92915050565b60008282111561119f57fe5b50900390565b60a06040519081016040528060001515815260200160001515815260200160008152602001600081526020016000815250905600a165627a7a72305820ef4bfa95b0d51e312fc0cb06e2edb15f3db2d4f94b2afd613187053e23fdda970029", "deployedBytecode": "0x6080604052600436106100b95763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166301ffc9a781146100be57806313fb5c3d1461010c57806321f240011461013f5780632903b8ee1461017e57806343751d60146101dc57806354c39e80146101f4578063572f221014610225578063598870461461023d578063719af01f146102555780639f9e407a14610286578063baf81f65146102b7578063bc4f5a33146102e8575b600080fd5b3480156100ca57600080fd5b506100f87fffffffff0000000000000000000000000000000000000000000000000000000060043516610327565b604080519115158252519081900360200190f35b34801561011857600080fd5b5061013d60043573ffffffffffffffffffffffffffffffffffffffff602435166103c2565b005b34801561014b57600080fd5b5061013d60043573ffffffffffffffffffffffffffffffffffffffff60243516604435151560643560843560a435610456565b34801561018a57600080fd5b506101af60043573ffffffffffffffffffffffffffffffffffffffff6024351661046c565b60408051951515865293151560208601528484019290925260608401526080830152519081900360a00190f35b3480156101e857600080fd5b506100f86004356104a6565b34801561020057600080fd5b5061013d60043573ffffffffffffffffffffffffffffffffffffffff602435166104b7565b34801561023157600080fd5b5061013d6004356104c5565b34801561024957600080fd5b506100f86004356104d2565b34801561026157600080fd5b506100f860043573ffffffffffffffffffffffffffffffffffffffff602435166104dd565b34801561029257600080fd5b5061013d60043573ffffffffffffffffffffffffffffffffffffffff6024351661058a565b3480156102c357600080fd5b506101af60043573ffffffffffffffffffffffffffffffffffffffff60243516610594565b3480156102f457600080fd5b5061013d60043573ffffffffffffffffffffffffffffffffffffffff60243516604435151560643560843560a4356105e7565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a70000000000000000000000000000000000000000000000000000000014806103ba57507fffffffff0000000000000000000000000000000000000000000000000000000082167f33f9cb6400000000000000000000000000000000000000000000000000000000145b90505b919050565b6103ca6111a5565b5060008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff85168452825291829020825160a081018452815460ff80821615158352610100909104161515928101839052600182015493810184905260028201546060820181905260039092015460808201819052909361045193879387939192916105e7565b505050565b610464868686868686610d92565b505050505050565b6000602081815292815260408082209093529081522080546001820154600283015460039093015460ff8084169461010090940416929085565b60008115806103ba57505042111590565b6104c18282610f97565b5050565b6104cf8133610f97565b50565b60006103ba8261102c565b60006104e76111a5565b5060008381526020818152604080832073ffffffffffffffffffffffffffffffffffffffff86168452825291829020825160a081018452815460ff8082161580158085526101009093049091161515948301949094526001830154948201949094526002820154606082015260039091015460808201529190610572575061057281606001516104a6565b8015610582575042816040015111155b949350505050565b6104c18282611058565b60009182526020828152604080842073ffffffffffffffffffffffffffffffffffffffff939093168452919052902080546001820154600283015460039093015460ff8084169561010090940416939192565b6105ef6111a5565b6105f76111a5565b6000888152602081815260408083203384528252808320815160a081018352815460ff80821615801580855261010090930490911615159583019590955260018301549382019390935260028201546060820152600390910154608082015294509061066b575061066b83606001516104a6565b15156106d857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f496e76616c6964206b6579000000000000000000000000000000000000000000604482015290519081900360640190fd5b8260200151151561074a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4b6579206973206e6f742061737369676e61626c650000000000000000000000604482015290519081900360640190fd5b428360400151111580610761575082604001518610155b15156107f457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f43616e6e6f7420726564756365206b657927732066757475726520737461727460448201527f2074696d65000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b606083015115806108145750826060015185111580156108145750600085115b151561088157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f43616e6e6f7420657874656e64206b657927732065787069726174696f6e0000604482015290519081900360640190fd5b84158061088d57508486105b151561092057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f53746172742074696d65206d757374206265207374726963746c79206c65737360448201527f207468616e2065787069726174696f6e00000000000000000000000000000000606482015290519081900360840190fd5b610929856104a6565b151561099657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f45787069726174696f6e206d75737420626520696e2074686520667574757265604482015290519081900360640190fd5b608083015115806109b65750826080015184111580156109b65750600084115b1515610a2357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4e6f7420656e6f7567682075736573206176616961626c650000000000000000604482015290519081900360640190fd5b60008981526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8c168452825291829020825160a081018452815460ff80821615158352610100909104161515928101929092526001810154928201929092526002820154606082015260039091015460808201529150610aa189896104dd565b80610aaf5750428260400151115b9050801580610afc575086151582602001511515148015610ad35750848260600151145b8015610afc575042826040015111158015610aee5750428611155b80610afc5750858260400151145b1515610b8f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f43616e6e6f74206d6572676520696e746f20726563657065696e742773206b6560448201527f7900000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b610b998985611069565b610ba389896104dd565b15610c3b57608082015115610c3657831515610bef5760008981526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8c168452909152812060030155610c36565b6080820151610c04908563ffffffff61118016565b60008a81526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8d1684529091529020600301555b610d21565b60a0604051908101604052806001151581526020018815158152602001878152602001868152602001858152506000808b6000191660001916815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548160ff02191690831515021790555060208201518160000160016101000a81548160ff0219169083151502179055506040820151816001015560608201518160020155608082015181600301559050505b6040805188151581526020810188905280820187905260608101869052905173ffffffffffffffffffffffffffffffffffffffff8a169133918c917f6bb983ad4fd27414749e3cd41e18f0e39e54a860dad0a7ccb2a2ecb902226e17919081900360800190a4505050505050505050565b811580610d9e57508183105b1515610e3157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f53746172742074696d65206d757374206265207374726963746c79206c65737360448201527f207468616e2065787069726174696f6e00000000000000000000000000000000606482015290519081900360840190fd5b610e3a826104a6565b1515610ea757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f45787069726174696f6e206d75737420626520696e2074686520667574757265604482015290519081900360640190fd5b60008681526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8916808552908352818420805489151561010081027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00909316600190811793909316178355908201899055600282018890556003909101869055825190815292830187905282820186905260608301859052905190929189917f6bb983ad4fd27414749e3cd41e18f0e39e54a860dad0a7ccb2a2ecb902226e179181900360800190a4505050505050565b60008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000168155600181018490556002810184905560030183905551909184917ffed57faa4b67e0f08c65114689e4d61da45604656746dbbd5218f0ed1286ce299190a35050565b600061103882336104dd565b1561105057611048826001611069565b5060016103bd565b506000919050565b6104c1828260016000806000610d92565b6110716111a5565b506000828152602081815260408083203384528252808320815160a081018352815460ff80821615158352610100909104161515938101939093526001810154918301919091526002810154606083015260030154608082018190529091101561045157818160800151141561113557600083815260208181526040808320338452909152812080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000168155600181018290556002810182905560030155610451565b600083815260208181526040808320338452909152902060030154611160908363ffffffff61119316565b600084815260208181526040808320338452909152902060030155505050565b8181018281101561118d57fe5b92915050565b60008282111561119f57fe5b50900390565b60a06040519081016040528060001515815260200160001515815260200160008152602001600081526020016000815250905600a165627a7a72305820ef4bfa95b0d51e312fc0cb06e2edb15f3db2d4f94b2afd613187053e23fdda970029", "sourceMap": "58:706:8:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;58:706:8;;;;;;;", "deployedSourceMap": "58:706:8:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1050:481:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1050:481:5;;;;;;;;;;;;;;;;;;;;;;;;;5592:294;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5592:294:5;;;;;;;;;;;225:336:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;225:336:8;;;;;;;;;;;;;;;;;;;164:55:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;164:55:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2219:202:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2219:202:5;;;;;107:112:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;107:112:8;;;;;;;;;5956:87:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5956:87:5;;;;;675::8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;675:87:8;;;;;2551:273:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2551:273:5;;;;;;;;;567:102:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;567:102:8;;;;;;;;;1724:327:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1724:327:5;;;;;;;;;3267:2196;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3267:2196:5;;;;;;;;;;;;;;;;;;;1050:481;1120:4;1155:46;;;1170:31;1155:46;;:347;;-1:-1:-1;1298:204:5;;;1325:177;1298:204;1155:347;1136:366;;1050:481;;;;:::o;5592:294::-;5684:14;;:::i;:::-;-1:-1:-1;5701:4:5;:9;;;;;;;;;;;:14;;;;;;;;;;;5684:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5725:154;;5706:3;;5711;;5684:31;;;5725:9;:154::i;:::-;5592:294;;;:::o;225:336:8:-;413:141;435:3;452;469:11;494:6;514:11;539:5;413:8;:141::i;:::-;225:336;;;;;;:::o;164:55:2:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2219:202:5:-;2285:10;2376:16;;;:38;;-1:-1:-1;;2411:3:5;-1:-1:-1;2396:18:5;;2219:202::o;107:112:8:-;185:27;200:3;205:6;185:14;:27::i;:::-;107:112;;:::o;5956:87:5:-;6005:31;6020:3;6025:10;6005:14;:31::i;:::-;5956:87;:::o;675::8:-;721:4;744:11;751:3;744:6;:11::i;2551:273:5:-;2621:4;2637:14;;:::i;:::-;-1:-1:-1;2654:4:5;:9;;;;;;;;;;;:17;;;;;;;;;;;2637:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2750:47;;;2764:33;2782:3;:14;;;2764:17;:33::i;:::-;2750:67;;;;;2814:3;2801;:9;;;:16;;2750:67;2743:74;2551:273;-1:-1:-1;;;;2551:273:5:o;567:102:8:-;640:22;653:3;658;640:12;:22::i;1724:327:5:-;1792:4;1853:9;;;;;;;;;;;:17;;;;;;;;;;;;:24;;;1933:23;;;1970:28;;;;2012:22;;;;;1853:24;;;;;;1891:28;;;;;1933:23;;1724:327::o;3267:2196::-;3448:14;;:::i;:::-;4279:18;;:::i;:::-;4324:14;3465:9;;;;;;;;;;;3475:10;3465:21;;;;;;;3448:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3448:38:5;3504:47;;;3518:33;3536:3;:14;;;3518:17;:33::i;:::-;3496:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3585:3;:14;;;3577:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3719:3;3706;:9;;;:16;;:39;;;;3736:3;:9;;;3726:6;:19;;3706:39;3698:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3805:14;;;;:19;;:73;;;3844:3;:14;;;3829:11;:29;;:48;;;;;3876:1;3862:11;:15;3829:48;3797:116;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3931:16;;;:40;;;3960:11;3951:6;:20;3931:40;3923:101;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4042:30;4060:11;4042:17;:30::i;:::-;4034:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4127:8;;;;:13;;:49;;;4154:3;:8;;;4145:5;:17;;:30;;;;;4174:1;4166:5;:9;4145:30;4119:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4300:4;:9;;;;;;;;;;;:14;;;;;;;;;;;4279:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4341:20:5;4305:3;4310;4341:10;:20::i;:::-;:43;;;;4381:3;4365:7;:13;;;:19;4341:43;4324:60;;4416:9;4415:10;:381;;;;4469:11;4447:33;;:7;:18;;;:33;;;:70;;;;;4506:11;4484:7;:18;;;:33;4447:70;:335;;;;;4696:3;4679:7;:13;;;:20;;:37;;;;;4713:3;4703:6;:13;;4679:37;4678:86;;;;4758:6;4741:7;:13;;;:23;4678:86;4394:461;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4866:23;4879:3;4883:5;4866:12;:23::i;:::-;4904:20;4915:3;4920;4904:10;:20::i;:::-;4900:375;;;4944:12;;;;:17;4940:227;;4985:10;;4981:172;;;5041:1;5019:9;;;;;;;;;;;:14;;;;;;;;;;:19;;:23;4981:172;;;5111:12;;;;:23;;5128:5;5111:23;:16;:23;:::i;:::-;5089:4;:9;;;;;;;;;;;:14;;;;;;;;;;:19;;:45;4981:172;4900:375;;;5214:50;;;;;;;;;5218:4;5214:50;;;;;;5224:11;5214:50;;;;;;5237:6;5214:50;;;;5245:11;5214:50;;;;5258:5;5214:50;;;5197:4;:9;5202:3;5197:9;;;;;;;;;;;;;;;;;:14;5207:3;5197:14;;;;;;;;;;;;;;;:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4900:375;5290:166;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5330:10;;5313:3;;5290:166;;;;;;;;;;3267:2196;;;;;;;;;:::o;6734:761::-;6924:16;;;:40;;;6953:11;6944:6;:20;6924:40;6916:101;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7035:30;7053:11;7035:17;:30::i;:::-;7027:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7113:4;:9;;;;;;;;;;;:14;;;;;;;;;;;;:28;;7151:39;;;7113:28;7151:39;;;7113:28;;;;7137:4;7113:28;;;7151:39;;;;;;;7200:20;;;:29;;;7239:25;;;:39;;;7288:19;;;;:27;;;7331:157;;;;;;;;;;;;;;;;;;;;;;;;;7113:14;;:4;:9;;7331:157;;;;;;;;;6734:761;;;;;;:::o;6156:140::-;6235:4;:9;;;;;;;;;;;:17;;;;;;;;;;;6228:24;;;;;;;;;;;;;;;;;;;;;;;6267:22;6235:17;;6240:3;;6267:22;;6235:4;6267:22;6156:140;;:::o;7965:194::-;8012:4;8032:27;8043:3;8048:10;8032;:27::i;:::-;8028:103;;;8075:20;8088:3;8093:1;8075:12;:20::i;:::-;-1:-1:-1;8116:4:5;8109:11;;8028:103;-1:-1:-1;8147:5:5;7965:194;;;:::o;7663:215::-;7756:115;7778:3;7795;7812:4;7830:1;7845;7860;7756:8;:115::i;8327:350::-;8392:14;;:::i;:::-;-1:-1:-1;8409:4:5;:9;;;;;;;;;;;8419:10;8409:21;;;;;;;8392:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8440:231:5;;;8488:5;8476:3;:8;;;:17;8472:189;;;8520:4;:9;;;;;;;;;;;8530:10;8520:21;;;;;;;8513:28;;;;;;;;;;;;;;;;;;;;;8472:189;;;8609:4;:9;;;;;;;;;;;8619:10;8609:21;;;;;;;:26;;;:37;;8640:5;8609:37;:30;:37;:::i;:::-;8580:4;:9;;;;;;;;;;;8590:10;8580:21;;;;;;;:26;;:66;8327:350;;;:::o;1238:128:10:-;1319:7;;;1339;;;;1332:15;;;;1238:128;;;;:::o;1060:116::-;1120:7;1142:8;;;;1135:16;;;;-1:-1:-1;1164:7:10;;;1060:116::o;58:706:8:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o", "source": "pragma solidity ^0.4.24;\n\nimport \"../Permissioned.sol\";\n\n\ncontract PermissionedMock is Permissioned {\n\n function revokeOwnerKey_(bytes32 _id, address _owner) public {\n return revokeOwnerKey(_id, _owner);\n }\n\n function grantKey_(\n bytes32 _id,\n address _to,\n bool _assignable,\n uint _start,\n uint _expiration,\n uint _uses\n ) public\n {\n return grantKey(\n _id,\n _to,\n _assignable,\n _start,\n _expiration,\n _uses\n );\n }\n\n function grantFullKey_(bytes32 _id, address _to) public {\n return grantFullKey(_id, _to);\n }\n\n function unlock_(bytes32 _id) public returns (bool) {\n return unlock(_id);\n }\n}\n", "sourcePath": "/home/tsuberim/projects/daostack/access_control/contracts/test/PermissionedMock.sol", "ast": { "absolutePath": "/home/tsuberim/projects/daostack/access_control/contracts/test/PermissionedMock.sol", "exportedSymbols": { "PermissionedMock": [ 1343 ] }, "id": 1344, "nodeType": "SourceUnit", "nodes": [ { "id": 1276, "literals": [ "solidity", "^", "0.4", ".24" ], "nodeType": "PragmaDirective", "src": "0:24:8" }, { "absolutePath": "/home/tsuberim/projects/daostack/access_control/contracts/Permissioned.sol", "file": "../Permissioned.sol", "id": 1277, "nodeType": "ImportDirective", "scope": 1344, "sourceUnit": 1051, "src": "26:29:8", "symbolAliases": [], "unitAlias": "" }, { "baseContracts": [ { "arguments": null, "baseName": { "contractScope": null, "id": 1278, "name": "Permissioned", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 1050, "src": "87:12:8", "typeDescriptions": { "typeIdentifier": "t_contract$_Permissioned_$1050", "typeString": "contract Permissioned" } }, "id": 1279, "nodeType": "InheritanceSpecifier", "src": "87:12:8" } ], "contractDependencies": [ 48, 126, 138, 1050, 1353 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, "id": 1343, "linearizedBaseContracts": [ 1343, 1050, 138, 48, 126, 1353 ], "name": "PermissionedMock", "nodeType": "ContractDefinition", "nodes": [ { "body": { "id": 1291, "nodeType": "Block", "src": "168:51:8", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 1287, "name": "_id", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1281, "src": "200:3:8", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { "argumentTypes": null, "id": 1288, "name": "_owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1283, "src": "205:6:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 1286, "name": "revokeOwnerKey", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 862, "src": "185:14:8", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", "typeString": "function (bytes32,address)" } }, "id": 1289, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "185:27:8", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "functionReturnParameters": 1285, "id": 1290, "nodeType": "Return", "src": "178:34:8" } ] }, "documentation": null, "id": 1292, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], "name": "revokeOwnerKey_", "nodeType": "FunctionDefinition", "parameters": { "id": 1284, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1281, "name": "_id", "nodeType": "VariableDeclaration", "scope": 1292, "src": "132:11:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "typeName": { "id": 1280, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "132:7:8", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 1283, "name": "_owner", "nodeType": "VariableDeclaration", "scope": 1292, "src": "145:14:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 1282, "name": "address", "nodeType": "ElementaryTypeName", "src": "145:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "131:29:8" }, "payable": false, "returnParameters": { "id": 1285, "nodeType": "ParameterList", "parameters": [], "src": "168:0:8" }, "scope": 1343, "src": "107:112:8", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 1316, "nodeType": "Block", "src": "396:165:8", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 1308, "name": "_id", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1294, "src": "435:3:8", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { "argumentTypes": null, "id": 1309, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1296, "src": "452:3:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 1310, "name": "_assignable", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1298, "src": "469:11:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "id": 1311, "name": "_start", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1300, "src": "494:6:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 1312, "name": "_expiration", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1302, "src": "514:11:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 1313, "name": "_uses", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1304, "src": "539:5:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 1307, "name": "grantKey", "nodeType": "Identifier", "overloadedDeclarations": [ 951 ], "referencedDeclaration": 951, "src": "413:8:8", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$_t_bool_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (bytes32,address,bool,uint256,uint256,uint256)" } }, "id": 1314, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "413:141:8", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "functionReturnParameters": 1306, "id": 1315, "nodeType": "Return", "src": "406:148:8" } ] }, "documentation": null, "id": 1317, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], "name": "grantKey_", "nodeType": "FunctionDefinition", "parameters": { "id": 1305, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1294, "name": "_id", "nodeType": "VariableDeclaration", "scope": 1317, "src": "253:11:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "typeName": { "id": 1293, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "253:7:8", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 1296, "name": "_to", "nodeType": "VariableDeclaration", "scope": 1317, "src": "274:11:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 1295, "name": "address", "nodeType": "ElementaryTypeName", "src": "274:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 1298, "name": "_assignable", "nodeType": "VariableDeclaration", "scope": 1317, "src": "295:16:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 1297, "name": "bool", "nodeType": "ElementaryTypeName", "src": "295:4:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 1300, "name": "_start", "nodeType": "VariableDeclaration", "scope": 1317, "src": "321:11:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 1299, "name": "uint", "nodeType": "ElementaryTypeName", "src": "321:4:8", "typeDescriptions": { "typeIdentifi