@daostack/access_control
Version:
Capability-based access control for Ethereum smart contracts.
858 lines • 96 kB
JSON
{
"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