safe-react/safe-contracts/build/contracts/BaseSafe.json

1149 lines
85 KiB
JSON

{
"contractName": "BaseSafe",
"abi": [
{
"constant": false,
"inputs": [
{
"name": "owner",
"type": "address"
},
{
"name": "_threshold",
"type": "uint256"
}
],
"name": "addOwnerWithThreshold",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "owner",
"type": "address"
}
],
"name": "isOwner",
"outputs": [
{
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "to",
"type": "address"
},
{
"name": "value",
"type": "uint256"
},
{
"name": "data",
"type": "bytes"
},
{
"name": "operation",
"type": "uint8"
}
],
"name": "execTransactionFromModule",
"outputs": [
{
"name": "success",
"type": "bool"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "module",
"type": "address"
}
],
"name": "enableModule",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_threshold",
"type": "uint256"
}
],
"name": "changeThreshold",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "SENTINEL_MODULES",
"outputs": [
{
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "SENTINEL_OWNERS",
"outputs": [
{
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "getOwners",
"outputs": [
{
"name": "",
"type": "address[]"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "getModules",
"outputs": [
{
"name": "",
"type": "address[]"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "prevModule",
"type": "address"
},
{
"name": "module",
"type": "address"
}
],
"name": "disableModule",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "prevOwner",
"type": "address"
},
{
"name": "oldOwner",
"type": "address"
},
{
"name": "newOwner",
"type": "address"
}
],
"name": "swapOwner",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "getThreshold",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "prevOwner",
"type": "address"
},
{
"name": "owner",
"type": "address"
},
{
"name": "_threshold",
"type": "uint256"
}
],
"name": "removeOwner",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"payable": true,
"stateMutability": "payable",
"type": "fallback"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"name": "owner",
"type": "address"
}
],
"name": "AddedOwner",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"name": "owner",
"type": "address"
}
],
"name": "RemovedOwner",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"name": "threshold",
"type": "uint256"
}
],
"name": "ChangedThreshold",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"name": "module",
"type": "address"
}
],
"name": "EnabledModule",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"name": "module",
"type": "address"
}
],
"name": "DisabledModule",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"name": "newContract",
"type": "address"
}
],
"name": "ContractCreation",
"type": "event"
}
],
"bytecode": "0x608060405234801561001057600080fd5b506128c9806100206000396000f3006080604052600436106100c5576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630d582f13146100c75780632f54bf6e14610114578063468721a71461016f578063610b592514610227578063694e80c31461026a57806385e332cd146102975780638cff6355146102ee578063a0e67e2b14610345578063b2494df3146103b1578063e009cfde1461041d578063e318b52b14610480578063e75235b814610503578063f8dc5dd91461052e575b005b3480156100d357600080fd5b50610112600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061059b565b005b34801561012057600080fd5b50610155600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a04565b604051808215151515815260200191505060405180910390f35b34801561017b57600080fd5b5061020d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190505050610a86565b604051808215151515815260200191505060405180910390f35b34801561023357600080fd5b50610268600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610bb1565b005b34801561027657600080fd5b5061029560048036038101908080359060200190929190505050610fee565b005b3480156102a357600080fd5b506102ac611239565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156102fa57600080fd5b5061030361123e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561035157600080fd5b5061035a611243565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561039d578082015181840152602081019050610382565b505050509050019250505060405180910390f35b3480156103bd57600080fd5b506103c66113de565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156104095780820151818401526020810190506103ee565b505050509050019250505060405180910390f35b34801561042957600080fd5b5061047e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611681565b005b34801561048c57600080fd5b50610501600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611af9565b005b34801561050f57600080fd5b5061051861220c565b6040518082815260200191505060405180910390f35b34801561053a57600080fd5b50610599600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612216565b005b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610664576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff16141580156106b85750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b151561072c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610819576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b60016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506002600081548092919060010191905055507f9465fa0c962cc76958e6373a993326400c1c94f8be2fe3a952adfa7f60b2ea2682604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a180600354141515610a00576109ff81610fee565b5b5050565b600080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b6000806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151515610b9a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206181526020017f6e20656e61626c6564206d6f64756c650000000000000000000000000000000081525060400191505060405180910390fd5b610ba7858585855a61275e565b9050949350505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610c7a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614158015610cce5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515610d42576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610e2e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4d6f64756c652068617320616c7265616479206265656e20616464656400000081525060200191505060405180910390fd5b600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fecdf3a3effea5783a3c4c2140e677577666428d44ed9d474a0b3a4c9943f844081604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156110b7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b6002548111151515611157576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f5468726573686f6c642063616e6e6f7420657863656564206f776e657220636f81526020017f756e74000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600181101515156111f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f5468726573686f6c64206e6565647320746f206265206772656174657220746881526020017f616e20300000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806003819055507f610f7ff2b304ae8903c3de74c60c6ab1f7d6226b3f52c5161905bb5ad4039c936003546040518082815260200191505060405180910390a150565b600181565b600181565b60608060008060025460405190808252806020026020018201604052801561127a5781602001602082028038833980820191505090505b5092506000915060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415156113d55780838381518110151561132a57fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081806001019250506112e5565b82935050505090565b6060600080606060009250600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415156114f0576000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169150828060010193505061144c565b8260405190808252806020026020018201604052801561151f5781602001602082028038833980820191505090505b50905060009250600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515611678578181848151811015156115ce57fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691508280600101935050611589565b80935050505090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561174a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff161415801561179e5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515611812576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611939576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001807f496e76616c696420707265764d6f64756c652c206d6f64756c6520706169722081526020017f70726f766964656400000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507faab4fa2b463f581b2b32cb3b7e3b704b9ce37cc209b5fb4d77e593ace405427681604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611bc2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614158015611c165750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515611c8a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611d77576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1614158015611dcb5750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1515611e3f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611f67576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f496e76616c696420707265764f776e65722c206f776e6572207061697220707281526020017f6f7669646564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507ff8d49fc529812e9a7c5c50e69c20f0dccc0db8fa95c98bc58cc9a4f1c1299eaf82604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a17f9465fa0c962cc76958e6373a993326400c1c94f8be2fe3a952adfa7f60b2ea2681604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1505050565b6000600354905090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156122df576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b8060016002540310151515612382576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260358152602001807f4e6577206f776e657220636f756e74206e6565647320746f206265206c61726781526020017f6572207468616e206e6577207468726573686f6c64000000000000000000000081525060400191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff16141580156123d65750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b151561244a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612572576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f496e76616c696420707265764f776e65722c206f776e6572207061697220707281526020017f6f7669646564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600260008154809291906001900391905055507ff8d49fc529812e9a7c5c50e69c20f0dccc0db8fa95c98bc58cc9a4f1c1299eaf82604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1806003541415156127595761275881610fee565b5b505050565b6000806000600281111561276e57fe5b84600281111561277a57fe5b14156127935761278c8787878661285b565b9150612851565b600160028111156127a057fe5b8460028111156127ac57fe5b14156127c4576127bd878685612874565b9150612850565b6127cd8561288b565b905060008173ffffffffffffffffffffffffffffffffffffffff16141591507f4db17dd5e4732fb6da34a148104a592783ca119a1e7bb8829eba6cbadef0b51181604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15b5b5095945050505050565b6000806000845160208601878987f19050949350505050565b60008060008451602086018786f490509392505050565b60008151602083016000f090509190505600a165627a7a72305820a8a2b520d7d496943dca4ccdd5d3bd3b7788132d42c3118aa0577fe7365e28210029",
"deployedBytecode": "0x6080604052600436106100c5576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630d582f13146100c75780632f54bf6e14610114578063468721a71461016f578063610b592514610227578063694e80c31461026a57806385e332cd146102975780638cff6355146102ee578063a0e67e2b14610345578063b2494df3146103b1578063e009cfde1461041d578063e318b52b14610480578063e75235b814610503578063f8dc5dd91461052e575b005b3480156100d357600080fd5b50610112600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061059b565b005b34801561012057600080fd5b50610155600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a04565b604051808215151515815260200191505060405180910390f35b34801561017b57600080fd5b5061020d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190505050610a86565b604051808215151515815260200191505060405180910390f35b34801561023357600080fd5b50610268600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610bb1565b005b34801561027657600080fd5b5061029560048036038101908080359060200190929190505050610fee565b005b3480156102a357600080fd5b506102ac611239565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156102fa57600080fd5b5061030361123e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561035157600080fd5b5061035a611243565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561039d578082015181840152602081019050610382565b505050509050019250505060405180910390f35b3480156103bd57600080fd5b506103c66113de565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156104095780820151818401526020810190506103ee565b505050509050019250505060405180910390f35b34801561042957600080fd5b5061047e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611681565b005b34801561048c57600080fd5b50610501600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611af9565b005b34801561050f57600080fd5b5061051861220c565b6040518082815260200191505060405180910390f35b34801561053a57600080fd5b50610599600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612216565b005b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610664576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff16141580156106b85750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b151561072c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610819576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b60016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506002600081548092919060010191905055507f9465fa0c962cc76958e6373a993326400c1c94f8be2fe3a952adfa7f60b2ea2682604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a180600354141515610a00576109ff81610fee565b5b5050565b600080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b6000806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151515610b9a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206181526020017f6e20656e61626c6564206d6f64756c650000000000000000000000000000000081525060400191505060405180910390fd5b610ba7858585855a61275e565b9050949350505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610c7a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614158015610cce5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515610d42576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610e2e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4d6f64756c652068617320616c7265616479206265656e20616464656400000081525060200191505060405180910390fd5b600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fecdf3a3effea5783a3c4c2140e677577666428d44ed9d474a0b3a4c9943f844081604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156110b7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b6002548111151515611157576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f5468726573686f6c642063616e6e6f7420657863656564206f776e657220636f81526020017f756e74000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600181101515156111f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f5468726573686f6c64206e6565647320746f206265206772656174657220746881526020017f616e20300000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806003819055507f610f7ff2b304ae8903c3de74c60c6ab1f7d6226b3f52c5161905bb5ad4039c936003546040518082815260200191505060405180910390a150565b600181565b600181565b60608060008060025460405190808252806020026020018201604052801561127a5781602001602082028038833980820191505090505b5092506000915060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415156113d55780838381518110151561132a57fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081806001019250506112e5565b82935050505090565b6060600080606060009250600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415156114f0576000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169150828060010193505061144c565b8260405190808252806020026020018201604052801561151f5781602001602082028038833980820191505090505b50905060009250600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515611678578181848151811015156115ce57fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691508280600101935050611589565b80935050505090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561174a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff161415801561179e5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515611812576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611939576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001807f496e76616c696420707265764d6f64756c652c206d6f64756c6520706169722081526020017f70726f766964656400000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507faab4fa2b463f581b2b32cb3b7e3b704b9ce37cc209b5fb4d77e593ace405427681604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611bc2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614158015611c165750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515611c8a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611d77576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1614158015611dcb5750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1515611e3f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611f67576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f496e76616c696420707265764f776e65722c206f776e6572207061697220707281526020017f6f7669646564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507ff8d49fc529812e9a7c5c50e69c20f0dccc0db8fa95c98bc58cc9a4f1c1299eaf82604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a17f9465fa0c962cc76958e6373a993326400c1c94f8be2fe3a952adfa7f60b2ea2681604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1505050565b6000600354905090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156122df576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b8060016002540310151515612382576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260358152602001807f4e6577206f776e657220636f756e74206e6565647320746f206265206c61726781526020017f6572207468616e206e6577207468726573686f6c64000000000000000000000081525060400191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff16141580156123d65750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b151561244a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612572576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f496e76616c696420707265764f776e65722c206f776e6572207061697220707281526020017f6f7669646564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600260008154809291906001900391905055507ff8d49fc529812e9a7c5c50e69c20f0dccc0db8fa95c98bc58cc9a4f1c1299eaf82604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1806003541415156127595761275881610fee565b5b505050565b6000806000600281111561276e57fe5b84600281111561277a57fe5b14156127935761278c8787878661285b565b9150612851565b600160028111156127a057fe5b8460028111156127ac57fe5b14156127c4576127bd878685612874565b9150612850565b6127cd8561288b565b905060008173ffffffffffffffffffffffffffffffffffffffff16141591507f4db17dd5e4732fb6da34a148104a592783ca119a1e7bb8829eba6cbadef0b51181604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15b5b5095945050505050565b6000806000845160208601878987f19050949350505050565b60008060008451602086018786f490509392505050565b60008151602083016000f090509190505600a165627a7a72305820a8a2b520d7d496943dca4ccdd5d3bd3b7788132d42c3118aa0577fe7365e28210029",
"sourceMap": "371:680:2:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;371:680:2;;;;;;;",
"deployedSourceMap": "371:680:2:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2225:627:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2225:627:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5925:129;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5925:129:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2785:429:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2785:429:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1182:495;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1182:495:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;5357:441:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5357:441:6;;;;;;;;;;;;;;;;;;;;;;;;;;488:55:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;488:55:5;;;;;;;;;;;;;;;;;;;;;;;;;;;419:54:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;419:54:6;;;;;;;;;;;;;;;;;;;;;;;;;;;6136:458;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6136:458:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;6136:458:6;;;;;;;;;;;;;;;;;3293:738:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3293:738:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;3293:738:5;;;;;;;;;;;;;;;;;1938:511;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1938:511:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4345:823:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4345:823:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5804:115;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5804:115:6;;;;;;;;;;;;;;;;;;;;;;;3194:817;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3194:817:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2225:627;244:4:11;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2397:1:6;2388:5;:10;;;;:38;;;;;469:3;2402:24;;:5;:24;;;;2388:38;2380:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2536:1;2519:6;:13;2526:5;2519:13;;;;;;;;;;;;;;;;;;;;;;;;;:18;;;2511:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2595:6;:23;469:3;2595:23;;;;;;;;;;;;;;;;;;;;;;;;;2579:6;:13;2586:5;2579:13;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;2654:5;2628:6;:23;469:3;2628:23;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;2669:10;;:12;;;;;;;;;;;;;2696:17;2707:5;2696:17;;;;;;;;;;;;;;;;;;;;;;2794:10;2781:9;;:23;;2777:68;;;2818:27;2834:10;2818:15;:27::i;:::-;2777:68;2225:627;;:::o;5925:129::-;6002:4;6046:1;6029:6;:13;6036:5;6029:13;;;;;;;;;;;;;;;;;;;;;;;;;:18;;;;6022:25;;5925:129;;;:::o;2785:429:5:-;2917:12;3025:1;3002:7;:19;3010:10;3002:19;;;;;;;;;;;;;;;;;;;;;;;;;:24;;;;2994:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3161:46;3169:2;3173:5;3180:4;3186:9;3197;3161:7;:46::i;:::-;3151:56;;2785:429;;;;;;:::o;1182:495::-;244:4:11;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1348:1:5;1337:6;1329:20;;;;:59;;;;;539:3;1353:35;;1361:6;1353:35;;;;1329:59;1321:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1502:1;1483:7;:15;1491:6;1483:15;;;;;;;;;;;;;;;;;;;;;;;;;:20;;;1475:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1565:7;:25;539:3;1565:25;;;;;;;;;;;;;;;;;;;;;;;;;1547:7;:15;1555:6;1547:15;;;;;;;;;;;;;;;;:43;;;;;;;;;;;;;;;;;;1628:6;1600:7;:25;539:3;1600:25;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;1649:21;1663:6;1649:21;;;;;;;;;;;;;;;;;;;;;;1182:495;:::o;5357:441:6:-;244:4:11;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5541:10:6;;5527;:24;;5519:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5675:1;5661:10;:15;;5653:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5739:10;5727:9;:22;;;;5764:27;5781:9;;5764:27;;;;;;;;;;;;;;;;;;5357:441;:::o;488:55:5:-;539:3;488:55;:::o;419:54:6:-;469:3;419:54;:::o;6136:458::-;6202:9;6227:22;6321:13;6348:20;6266:10;;6252:25;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;6252:25:6;;;;6227:50;;6337:1;6321:17;;6371:6;:23;469:3;6371:23;;;;;;;;;;;;;;;;;;;;;;;;;6348:46;;6404:162;469:3;6410:31;;:12;:31;;;;6404:162;;;6472:12;6457:5;6463;6457:12;;;;;;;;;;;;;;;;;:27;;;;;;;;;;;6513:6;:20;6520:12;6513:20;;;;;;;;;;;;;;;;;;;;;;;;;6498:35;;6547:8;;;;;;;6404:162;;;6582:5;6575:12;;6136:458;;;;:::o;3293:738:5:-;3360:9;3419:19;3452:21;3652:22;3441:1;3419:23;;3476:7;:25;539:3;3476:25;;;;;;;;;;;;;;;;;;;;;;;;;3452:49;;3511:132;539:3;3517:33;;:13;:33;;;;3511:132;;;3582:7;:22;3590:13;3582:22;;;;;;;;;;;;;;;;;;;;;;;;;3566:38;;3618:14;;;;;;;3511:132;;;3691:11;3677:26;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;3677:26:5;;;;3652:51;;3761:1;3747:15;;3788:7;:25;539:3;3788:25;;;;;;;;;;;;;;;;;;;;;;;;;3772:41;;3823:180;539:3;3829:33;;:13;:33;;;;3823:180;;;3899:13;3878:5;3884:11;3878:18;;;;;;;;;;;;;;;;;:34;;;;;;;;;;;3942:7;:22;3950:13;3942:22;;;;;;;;;;;;;;;;;;;;;;;;;3926:38;;3978:14;;;;;;;3823:180;;;4019:5;4012:12;;3293:738;;;;:::o;1938:511::-;244:4:11;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2152:1:5;2141:6;2133:20;;;;:59;;;;;539:3;2157:35;;2165:6;2157:35;;;;2133:59;2125:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2277:6;2246:38;;:7;:19;2254:10;2246:19;;;;;;;;;;;;;;;;;;;;;;;;;:38;;;2238:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2361:7;:15;2369:6;2361:15;;;;;;;;;;;;;;;;;;;;;;;;;2339:7;:19;2347:10;2339:19;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;2404:1;2386:7;:15;2394:6;2386:15;;;;;;;;;;;;;;;;:19;;;;;;;;;;;;;;;;;;2420:22;2435:6;2420:22;;;;;;;;;;;;;;;;;;;;;;1938:511;;:::o;4345:823:6:-;244:4:11;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4528:1:6;4516:8;:13;;;;:44;;;;;469:3;4533:27;;:8;:27;;;;4516:44;4508:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4673:1;4653:6;:16;4660:8;4653:16;;;;;;;;;;;;;;;;;;;;;;;;;:21;;;4645:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4819:1;4807:8;:13;;;;:44;;;;;469:3;4824:27;;:8;:27;;;;4807:44;4799:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4925:8;4904:29;;:6;:17;4911:9;4904:17;;;;;;;;;;;;;;;;;;;;;;;;;:29;;;4896:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5005:6;:16;5012:8;5005:16;;;;;;;;;;;;;;;;;;;;;;;;;4986:6;:16;4993:8;4986:16;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;5051:8;5031:6;:17;5038:9;5031:17;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;5088:1;5069:6;:16;5076:8;5069:16;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;5104:22;5117:8;5104:22;;;;;;;;;;;;;;;;;;;;;;5141:20;5152:8;5141:20;;;;;;;;;;;;;;;;;;;;;;4345:823;;;:::o;5804:115::-;5873:7;5903:9;;5896:16;;5804:115;:::o;3194:817::-;244:4:11;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3420:10:6;3415:1;3402:10;;:14;:28;;3394:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3595:1;3586:5;:10;;;;:38;;;;;469:3;3600:24;;:5;:24;;;;3586:38;3578:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3698:5;3677:26;;:6;:17;3684:9;3677:17;;;;;;;;;;;;;;;;;;;;;;;;;:26;;;3669:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3776:6;:13;3783:5;3776:13;;;;;;;;;;;;;;;;;;;;;;;;;3756:6;:17;3763:9;3756:17;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;3815:1;3799:6;:13;3806:5;3799:13;;;;;;;;;;;;;;;;:17;;;;;;;;;;;;;;;;;;3826:10;;:12;;;;;;;;;;;;;;3853:19;3866:5;3853:19;;;;;;;;;;;;;;;;;;;;;;3953:10;3940:9;;:23;;3936:68;;;3977:27;3993:10;3977:15;:27::i;:::-;3936:68;3194:817;;;:::o;313:548:3:-;444:12;715:19;489;476:32;;;;;;;;:9;:32;;;;;;;;;472:383;;;532:35;544:2;548:5;555:4;561:5;532:11;:35::i;:::-;522:45;;472:383;;;599:27;586:40;;;;;;;;:9;:40;;;;;;;;;582:273;;;650:36;670:2;674:4;680:5;650:19;:36::i;:::-;640:46;;582:273;;;737:19;751:4;737:13;:19::i;:::-;715:41;;795:1;780:11;:16;;;;770:26;;815:29;832:11;815:29;;;;;;;;;;;;;;;;;;;;;;582:273;472:383;313:548;;;;;;;;:::o;867:309::-;976:12;1158:1;1155;1148:4;1142:11;1135:4;1129;1125:15;1118:5;1114:2;1107:5;1102:58;1091:69;;1077:93;;;;;;:::o;1182:303::-;1284:12;1467:1;1464;1457:4;1451:11;1444:4;1438;1434:15;1430:2;1423:5;1410:59;1399:70;;1385:94;;;;;:::o;1491:261::-;1560:19;1730:4;1724:11;1717:4;1711;1707:15;1704:1;1697:39;1682:54;;1668:78;;;:::o",
"source": "pragma solidity 0.4.24;\nimport \"./Module.sol\";\nimport \"./ModuleManager.sol\";\nimport \"./OwnerManager.sol\";\n\n\n/// @title Base Safe - A multisignature wallet with support for modules and owners. This contract needs to be extented to add functionality to execute transactions.\n/// @author Stefan George - <stefan@gnosis.pm>\n/// @author Richard Meissner - <richard@gnosis.pm>\ncontract BaseSafe is ModuleManager, OwnerManager {\n\n /// @dev Setup function sets initial storage of contract.\n /// @param _owners List of Safe owners.\n /// @param _threshold Number of required confirmations for a Safe transaction.\n /// @param to Contract address for optional delegate call.\n /// @param data Data payload for optional delegate call.\n function setupSafe(address[] _owners, uint256 _threshold, address to, bytes data)\n internal\n {\n setupOwners(_owners, _threshold);\n // As setupOwners can only be called if the contract has not been initialized we don't need a check for setupModules\n setupModules(to, data);\n }\n}\n",
"sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/BaseSafe.sol",
"ast": {
"absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/BaseSafe.sol",
"exportedSymbols": {
"BaseSafe": [
782
]
},
"id": 783,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 751,
"literals": [
"solidity",
"0.4",
".24"
],
"nodeType": "PragmaDirective",
"src": "0:23:2"
},
{
"absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/Module.sol",
"file": "./Module.sol",
"id": 752,
"nodeType": "ImportDirective",
"scope": 783,
"sourceUnit": 936,
"src": "24:22:2",
"symbolAliases": [],
"unitAlias": ""
},
{
"absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/ModuleManager.sol",
"file": "./ModuleManager.sol",
"id": 753,
"nodeType": "ImportDirective",
"scope": 783,
"sourceUnit": 1213,
"src": "47:29:2",
"symbolAliases": [],
"unitAlias": ""
},
{
"absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/OwnerManager.sol",
"file": "./OwnerManager.sol",
"id": 754,
"nodeType": "ImportDirective",
"scope": 783,
"sourceUnit": 1653,
"src": "77:28:2",
"symbolAliases": [],
"unitAlias": ""
},
{
"baseContracts": [
{
"arguments": null,
"baseName": {
"contractScope": null,
"id": 755,
"name": "ModuleManager",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 1212,
"src": "392:13:2",
"typeDescriptions": {
"typeIdentifier": "t_contract$_ModuleManager_$1212",
"typeString": "contract ModuleManager"
}
},
"id": 756,
"nodeType": "InheritanceSpecifier",
"src": "392:13:2"
},
{
"arguments": null,
"baseName": {
"contractScope": null,
"id": 757,
"name": "OwnerManager",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 1652,
"src": "407:12:2",
"typeDescriptions": {
"typeIdentifier": "t_contract$_OwnerManager_$1652",
"typeString": "contract OwnerManager"
}
},
"id": 758,
"nodeType": "InheritanceSpecifier",
"src": "407:12:2"
}
],
"contractDependencies": [
892,
1212,
1652,
1666,
1735
],
"contractKind": "contract",
"documentation": "@title Base Safe - A multisignature wallet with support for modules and owners. This contract needs to be extented to add functionality to execute transactions.\n @author Stefan George - <stefan@gnosis.pm>\n @author Richard Meissner - <richard@gnosis.pm>",
"fullyImplemented": true,
"id": 782,
"linearizedBaseContracts": [
782,
1652,
1212,
892,
1666,
1735
],
"name": "BaseSafe",
"nodeType": "ContractDefinition",
"nodes": [
{
"body": {
"id": 780,
"nodeType": "Block",
"src": "843:206:2",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 771,
"name": "_owners",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 761,
"src": "865:7:2",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
"typeString": "address[] memory"
}
},
{
"argumentTypes": null,
"id": 772,
"name": "_threshold",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 763,
"src": "874:10:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
"typeString": "address[] memory"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 770,
"name": "setupOwners",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1341,
"src": "853:11:2",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_uint256_$returns$__$",
"typeString": "function (address[] memory,uint256)"
}
},
"id": 773,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "853:32:2",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 774,
"nodeType": "ExpressionStatement",
"src": "853:32:2"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 776,
"name": "to",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 765,
"src": "1033:2:2",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"argumentTypes": null,
"id": 777,
"name": "data",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 767,
"src": "1037:4:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 775,
"name": "setupModules",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 999,
"src": "1020:12:2",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$",
"typeString": "function (address,bytes memory)"
}
},
"id": 778,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1020:22:2",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 779,
"nodeType": "ExpressionStatement",
"src": "1020:22:2"
}
]
},
"documentation": "@dev Setup function sets initial storage of contract.\n @param _owners List of Safe owners.\n @param _threshold Number of required confirmations for a Safe transaction.\n @param to Contract address for optional delegate call.\n @param data Data payload for optional delegate call.",
"id": 781,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "setupSafe",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 768,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 761,
"name": "_owners",
"nodeType": "VariableDeclaration",
"scope": 781,
"src": "759:17:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
"typeString": "address[]"
},
"typeName": {
"baseType": {
"id": 759,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "759:7:2",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 760,
"length": null,
"nodeType": "ArrayTypeName",
"src": "759:9:2",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
"typeString": "address[]"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 763,
"name": "_threshold",
"nodeType": "VariableDeclaration",
"scope": 781,
"src": "778:18:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 762,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "778:7:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 765,
"name": "to",
"nodeType": "VariableDeclaration",
"scope": 781,
"src": "798:10:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 764,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "798:7:2",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 767,
"name": "data",
"nodeType": "VariableDeclaration",
"scope": 781,
"src": "810:10:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 766,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "810:5:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "758:63:2"
},
"payable": false,
"returnParameters": {
"id": 769,
"nodeType": "ParameterList",
"parameters": [],
"src": "843:0:2"
},
"scope": 782,
"src": "740:309:2",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "internal"
}
],
"scope": 783,
"src": "371:680:2"
}
],
"src": "0:1052:2"
},
"legacyAST": {
"absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/BaseSafe.sol",
"exportedSymbols": {
"BaseSafe": [
782
]
},
"id": 783,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 751,
"literals": [
"solidity",
"0.4",
".24"
],
"nodeType": "PragmaDirective",
"src": "0:23:2"
},
{
"absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/Module.sol",
"file": "./Module.sol",
"id": 752,
"nodeType": "ImportDirective",
"scope": 783,
"sourceUnit": 936,
"src": "24:22:2",
"symbolAliases": [],
"unitAlias": ""
},
{
"absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/ModuleManager.sol",
"file": "./ModuleManager.sol",
"id": 753,
"nodeType": "ImportDirective",
"scope": 783,
"sourceUnit": 1213,
"src": "47:29:2",
"symbolAliases": [],
"unitAlias": ""
},
{
"absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/OwnerManager.sol",
"file": "./OwnerManager.sol",
"id": 754,
"nodeType": "ImportDirective",
"scope": 783,
"sourceUnit": 1653,
"src": "77:28:2",
"symbolAliases": [],
"unitAlias": ""
},
{
"baseContracts": [
{
"arguments": null,
"baseName": {
"contractScope": null,
"id": 755,
"name": "ModuleManager",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 1212,
"src": "392:13:2",
"typeDescriptions": {
"typeIdentifier": "t_contract$_ModuleManager_$1212",
"typeString": "contract ModuleManager"
}
},
"id": 756,
"nodeType": "InheritanceSpecifier",
"src": "392:13:2"
},
{
"arguments": null,
"baseName": {
"contractScope": null,
"id": 757,
"name": "OwnerManager",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 1652,
"src": "407:12:2",
"typeDescriptions": {
"typeIdentifier": "t_contract$_OwnerManager_$1652",
"typeString": "contract OwnerManager"
}
},
"id": 758,
"nodeType": "InheritanceSpecifier",
"src": "407:12:2"
}
],
"contractDependencies": [
892,
1212,
1652,
1666,
1735
],
"contractKind": "contract",
"documentation": "@title Base Safe - A multisignature wallet with support for modules and owners. This contract needs to be extented to add functionality to execute transactions.\n @author Stefan George - <stefan@gnosis.pm>\n @author Richard Meissner - <richard@gnosis.pm>",
"fullyImplemented": true,
"id": 782,
"linearizedBaseContracts": [
782,
1652,
1212,
892,
1666,
1735
],
"name": "BaseSafe",
"nodeType": "ContractDefinition",
"nodes": [
{
"body": {
"id": 780,
"nodeType": "Block",
"src": "843:206:2",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 771,
"name": "_owners",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 761,
"src": "865:7:2",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
"typeString": "address[] memory"
}
},
{
"argumentTypes": null,
"id": 772,
"name": "_threshold",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 763,
"src": "874:10:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
"typeString": "address[] memory"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 770,
"name": "setupOwners",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1341,
"src": "853:11:2",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_uint256_$returns$__$",
"typeString": "function (address[] memory,uint256)"
}
},
"id": 773,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "853:32:2",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 774,
"nodeType": "ExpressionStatement",
"src": "853:32:2"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 776,
"name": "to",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 765,
"src": "1033:2:2",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"argumentTypes": null,
"id": 777,
"name": "data",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 767,
"src": "1037:4:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 775,
"name": "setupModules",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 999,
"src": "1020:12:2",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$",
"typeString": "function (address,bytes memory)"
}
},
"id": 778,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1020:22:2",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 779,
"nodeType": "ExpressionStatement",
"src": "1020:22:2"
}
]
},
"documentation": "@dev Setup function sets initial storage of contract.\n @param _owners List of Safe owners.\n @param _threshold Number of required confirmations for a Safe transaction.\n @param to Contract address for optional delegate call.\n @param data Data payload for optional delegate call.",
"id": 781,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "setupSafe",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 768,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 761,
"name": "_owners",
"nodeType": "VariableDeclaration",
"scope": 781,
"src": "759:17:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
"typeString": "address[]"
},
"typeName": {
"baseType": {
"id": 759,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "759:7:2",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 760,
"length": null,
"nodeType": "ArrayTypeName",
"src": "759:9:2",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
"typeString": "address[]"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 763,
"name": "_threshold",
"nodeType": "VariableDeclaration",
"scope": 781,
"src": "778:18:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 762,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "778:7:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 765,
"name": "to",
"nodeType": "VariableDeclaration",
"scope": 781,
"src": "798:10:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 764,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "798:7:2",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 767,
"name": "data",
"nodeType": "VariableDeclaration",
"scope": 781,
"src": "810:10:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 766,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "810:5:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "758:63:2"
},
"payable": false,
"returnParameters": {
"id": 769,
"nodeType": "ParameterList",
"parameters": [],
"src": "843:0:2"
},
"scope": 782,
"src": "740:309:2",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "internal"
}
],
"scope": 783,
"src": "371:680:2"
}
],
"src": "0:1052:2"
},
"compiler": {
"name": "solc",
"version": "0.4.24+commit.e67f0147.Emscripten.clang"
},
"networks": {},
"schemaVersion": "2.0.0",
"updatedAt": "2018-10-05T14:25:58.886Z"
}