{ "contractName": "WhitelistModule", "abi": [ { "constant": true, "inputs": [ { "name": "", "type": "address" } ], "name": "isWhitelisted", "outputs": [ { "name": "", "type": "bool" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "manager", "outputs": [ { "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "name": "_masterCopy", "type": "address" } ], "name": "changeMasterCopy", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [], "name": "NAME", "outputs": [ { "name": "", "type": "string" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "VERSION", "outputs": [ { "name": "", "type": "string" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "name": "accounts", "type": "address[]" } ], "name": "setup", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "account", "type": "address" } ], "name": "addToWhitelist", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "account", "type": "address" } ], "name": "removeFromWhitelist", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "to", "type": "address" }, { "name": "value", "type": "uint256" }, { "name": "data", "type": "bytes" } ], "name": "executeWhitelisted", "outputs": [ { "name": "", "type": "bool" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" } ], "bytecode": "0x608060405234801561001057600080fd5b50611248806100206000396000f300608060405260043610610099576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680632f2f3be11461009e5780633af32abf14610149578063481c6a75146101a45780637de7edef146101fb5780638ab1d6811461023e578063a3f4df7e14610281578063bd5b853b14610311578063e43252d714610377578063ffa1ad74146103ba575b600080fd5b3480156100aa57600080fd5b5061012f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929050505061044a565b604051808215151515815260200191505060405180910390f35b34801561015557600080fd5b5061018a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506108c4565b604051808215151515815260200191505060405180910390f35b3480156101b057600080fd5b506101b96108e4565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561020757600080fd5b5061023c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061090a565b005b34801561024a57600080fd5b5061027f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610aed565b005b34801561028d57600080fd5b50610296610cf4565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102d65780820151818401526020810190506102bb565b50505050905090810190601f1680156103035780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561031d57600080fd5b5061037560048036038101908080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050610d2d565b005b34801561038357600080fd5b506103b8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e59565b005b3480156103c657600080fd5b506103cf6110f0565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561040f5780820151818401526020810190506103f4565b50505050905090810190601f16801561043c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632f54bf6e336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561050957600080fd5b505af115801561051d573d6000803e3d6000fd5b505050506040513d602081101561053357600080fd5b810190808051906020019092919050505015156105de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4d6574686f642063616e206f6e6c792062652063616c6c656420627920616e2081526020017f6f776e657200000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156106c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f546172676574206163636f756e74206973206e6f742077686974656c6973746581526020017f640000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468721a785858560006040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018060200183600281111561077f57fe5b60ff168152602001828103825284818151815260200191508051906020019080838360005b838110156107bf5780820151818401526020810190506107a4565b50505050905090810190601f1680156107ec5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15801561080e57600080fd5b505af1158015610822573d6000803e3d6000fd5b505050506040513d602081101561083857600080fd5b810190808051906020019092919050505015156108bd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f436f756c64206e6f742065786563757465207472616e73616374696f6e00000081525060200191505060405180910390fd5b9392505050565b60026020528060005260406000206000915054906101000a900460ff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156109f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614151515610aaa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610bd8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515610c99576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f4163636f756e74206973206e6f742077686974656c697374656400000000000081525060200191505060405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6040805190810160405280601081526020017f57686974656c697374204d6f64756c650000000000000000000000000000000081525081565b600080610d38611129565b600091505b8251821015610e54578282815181101515610d5457fe5b90602001906020020151905060008173ffffffffffffffffffffffffffffffffffffffff1614151515610def576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f496e76616c6964206163636f756e742070726f7669646564000000000000000081525060200191505060405180910390fd5b6001600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508180600101925050610d3d565b505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610f44576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614151515610fd3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f496e76616c6964206163636f756e742070726f7669646564000000000000000081525060200191505060405180910390fd5b600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515611095576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4163636f756e7420697320616c72656164792077686974656c6973746564000081525060200191505060405180910390fd5b6001600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6040805190810160405280600581526020017f302e302e3100000000000000000000000000000000000000000000000000000081525081565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156111d9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4d616e616765722068617320616c7265616479206265656e207365740000000081525060200191505060405180910390fd5b33600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505600a165627a7a72305820dd944d1950617a0d837e1ab02a0fe81721a2e32aac404e122496a0af8b3397d40029", "deployedBytecode": "0x608060405260043610610099576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680632f2f3be11461009e5780633af32abf14610149578063481c6a75146101a45780637de7edef146101fb5780638ab1d6811461023e578063a3f4df7e14610281578063bd5b853b14610311578063e43252d714610377578063ffa1ad74146103ba575b600080fd5b3480156100aa57600080fd5b5061012f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929050505061044a565b604051808215151515815260200191505060405180910390f35b34801561015557600080fd5b5061018a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506108c4565b604051808215151515815260200191505060405180910390f35b3480156101b057600080fd5b506101b96108e4565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561020757600080fd5b5061023c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061090a565b005b34801561024a57600080fd5b5061027f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610aed565b005b34801561028d57600080fd5b50610296610cf4565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102d65780820151818401526020810190506102bb565b50505050905090810190601f1680156103035780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561031d57600080fd5b5061037560048036038101908080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050610d2d565b005b34801561038357600080fd5b506103b8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e59565b005b3480156103c657600080fd5b506103cf6110f0565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561040f5780820151818401526020810190506103f4565b50505050905090810190601f16801561043c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632f54bf6e336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561050957600080fd5b505af115801561051d573d6000803e3d6000fd5b505050506040513d602081101561053357600080fd5b810190808051906020019092919050505015156105de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4d6574686f642063616e206f6e6c792062652063616c6c656420627920616e2081526020017f6f776e657200000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156106c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f546172676574206163636f756e74206973206e6f742077686974656c6973746581526020017f640000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468721a785858560006040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018060200183600281111561077f57fe5b60ff168152602001828103825284818151815260200191508051906020019080838360005b838110156107bf5780820151818401526020810190506107a4565b50505050905090810190601f1680156107ec5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15801561080e57600080fd5b505af1158015610822573d6000803e3d6000fd5b505050506040513d602081101561083857600080fd5b810190808051906020019092919050505015156108bd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f436f756c64206e6f742065786563757465207472616e73616374696f6e00000081525060200191505060405180910390fd5b9392505050565b60026020528060005260406000206000915054906101000a900460ff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156109f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614151515610aaa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610bd8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515610c99576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f4163636f756e74206973206e6f742077686974656c697374656400000000000081525060200191505060405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6040805190810160405280601081526020017f57686974656c697374204d6f64756c650000000000000000000000000000000081525081565b600080610d38611129565b600091505b8251821015610e54578282815181101515610d5457fe5b90602001906020020151905060008173ffffffffffffffffffffffffffffffffffffffff1614151515610def576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f496e76616c6964206163636f756e742070726f7669646564000000000000000081525060200191505060405180910390fd5b6001600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508180600101925050610d3d565b505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610f44576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614151515610fd3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f496e76616c6964206163636f756e742070726f7669646564000000000000000081525060200191505060405180910390fd5b600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515611095576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4163636f756e7420697320616c72656164792077686974656c6973746564000081525060200191505060405180910390fd5b6001600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6040805190810160405280600581526020017f302e302e3100000000000000000000000000000000000000000000000000000081525081565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156111d9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4d616e616765722068617320616c7265616479206265656e207365740000000081525060200191505060405180910390fd5b33600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505600a165627a7a72305820dd944d1950617a0d837e1ab02a0fe81721a2e32aac404e122496a0af8b3397d40029", "sourceMap": "289:2199:21:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;289:2199:21;;;;;;;", "deployedSourceMap": "289:2199:21:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1984:502;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1984:502:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;498:46;;8:9:-1;5:2;;;30:1;27;20:12;5:2;498:46:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;262:28:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;262:28:7;;;;;;;;;;;;;;;;;;;;;;;;;;;626:248:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;626:248:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;1528:202:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1528:202:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;331:48;;8:9:-1;5:2;;;30:1;27;20:12;5:2;331:48:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;331:48:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;667:298;;8:9:-1;5:2;;;30:1;27;20:12;5:2;667:298:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1114:260;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1114:260:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;385:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;385:40:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;385:40:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1984:502;2083:4;2213:7;;;;;;;;;;;2200:29;;;2230:10;2200:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2200:41:21;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2200:41:21;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2200:41:21;;;;;;;;;;;;;;;;2192:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2301:13;:17;2315:2;2301:17;;;;;;;;;;;;;;;;;;;;;;;;;2293:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2374:7;;;;;;;;;;;:33;;;2408:2;2412:5;2419:4;2425:19;2374:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;2374:71:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2374:71:21;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2374:71:21;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2374:71:21;;;;;;;;;;;;;;;;2366:113;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1984:502;;;;;:::o;498:46::-;;;;;;;;;;;;;;;;;;;;;;:::o;262:28:7:-;;;;;;;;;;;;;:::o;626:248:5:-;359:7:7;;;;;;;;;;;337:30;;:10;:30;;;329:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;791:1:5;776:11;:16;;;;768:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;856:11;843:10;;:24;;;;;;;;;;;;;;;;;;626:248;:::o;1528:202:21:-;359:7:7;;;;;;;;;;;337:30;;:10;:30;;;329:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1630:13:21;:22;1644:7;1630:22;;;;;;;;;;;;;;;;;;;;;;;;;1622:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1718:5;1693:13;:22;1707:7;1693:22;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;1528:202;:::o;331:48::-;;;;;;;;;;;;;;;;;;;;:::o;667:298::-;758:9;813:15;731:12;:10;:12::i;:::-;770:1;758:13;;753:206;777:8;:15;773:1;:19;753:206;;;831:8;840:1;831:11;;;;;;;;;;;;;;;;;;813:29;;875:1;864:7;:12;;;;856:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;944:4;919:13;:22;933:7;919:22;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;794:3;;;;;;;753:206;;;667:298;;;:::o;1114:260::-;359:7:7;;;;;;;;;;;337:30;;:10;:30;;;329:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1222:1:21;1211:7;:12;;;;1203:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1271:13;:22;1285:7;1271:22;;;;;;;;;;;;;;;;;;;;;;;;;1270:23;1262:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1363:4;1338:13;:22;1352:7;1338:22;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;1114:260;:::o;385:40::-;;;;;;;;;;;;;;;;;;;;:::o;434:300:7:-;648:1;636:7;;;;;;;;;;;628:21;;;620:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;716:10;692:7;;:35;;;;;;;;;;;;;;;;;;434:300::o", "source": "pragma solidity 0.4.24;\nimport \"../Enum.sol\";\nimport \"../Module.sol\";\nimport \"../ModuleManager.sol\";\nimport \"../OwnerManager.sol\";\n\n\n/// @title Whitelist Module - Allows to execute transactions to whitelisted addresses without confirmations.\n/// @author Stefan George - \ncontract WhitelistModule is Module {\n\n string public constant NAME = \"Whitelist Module\";\n string public constant VERSION = \"0.0.1\";\n\n // isWhitelisted mapping maps destination address to boolean.\n mapping (address => bool) public isWhitelisted;\n\n /// @dev Setup function sets initial storage of contract.\n /// @param accounts List of whitelisted accounts.\n function setup(address[] accounts)\n public\n {\n setManager();\n for (uint256 i = 0; i < accounts.length; i++) {\n address account = accounts[i];\n require(account != 0, \"Invalid account provided\");\n isWhitelisted[account] = true;\n }\n }\n\n /// @dev Allows to add destination to whitelist. This can only be done via a Safe transaction.\n /// @param account Destination address.\n function addToWhitelist(address account)\n public\n authorized\n {\n require(account != 0, \"Invalid account provided\");\n require(!isWhitelisted[account], \"Account is already whitelisted\");\n isWhitelisted[account] = true;\n }\n\n /// @dev Allows to remove destination from whitelist. This can only be done via a Safe transaction.\n /// @param account Destination address.\n function removeFromWhitelist(address account)\n public\n authorized\n {\n require(isWhitelisted[account], \"Account is not whitelisted\");\n isWhitelisted[account] = false;\n }\n\n /// @dev Returns if Safe transaction is to a whitelisted destination.\n /// @param to Whitelisted destination address.\n /// @param value Not checked.\n /// @param data Not checked.\n /// @return Returns if transaction can be executed.\n function executeWhitelisted(address to, uint256 value, bytes data)\n public\n returns (bool)\n {\n // Only Safe owners are allowed to execute transactions to whitelisted accounts.\n require(OwnerManager(manager).isOwner(msg.sender), \"Method can only be called by an owner\");\n require(isWhitelisted[to], \"Target account is not whitelisted\");\n require(manager.execTransactionFromModule(to, value, data, Enum.Operation.Call), \"Could not execute transaction\");\n }\n}\n", "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/modules/WhitelistModule.sol", "ast": { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/modules/WhitelistModule.sol", "exportedSymbols": { "WhitelistModule": [ 2685 ] }, "id": 2686, "nodeType": "SourceUnit", "nodes": [ { "id": 2533, "literals": [ "solidity", "0.4", ".24" ], "nodeType": "PragmaDirective", "src": "0:23:21" }, { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Enum.sol", "file": "../Enum.sol", "id": 2534, "nodeType": "ImportDirective", "scope": 2686, "sourceUnit": 31, "src": "24:21:21", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Module.sol", "file": "../Module.sol", "id": 2535, "nodeType": "ImportDirective", "scope": 2686, "sourceUnit": 733, "src": "46:23:21", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/ModuleManager.sol", "file": "../ModuleManager.sol", "id": 2536, "nodeType": "ImportDirective", "scope": 2686, "sourceUnit": 1104, "src": "70:30:21", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/OwnerManager.sol", "file": "../OwnerManager.sol", "id": 2537, "nodeType": "ImportDirective", "scope": 2686, "sourceUnit": 1514, "src": "101:29:21", "symbolAliases": [], "unitAlias": "" }, { "baseContracts": [ { "arguments": null, "baseName": { "contractScope": null, "id": 2538, "name": "Module", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 732, "src": "317:6:21", "typeDescriptions": { "typeIdentifier": "t_contract$_Module_$732", "typeString": "contract Module" } }, "id": 2539, "nodeType": "InheritanceSpecifier", "src": "317:6:21" } ], "contractDependencies": [ 632, 732, 1663 ], "contractKind": "contract", "documentation": "@title Whitelist Module - Allows to execute transactions to whitelisted addresses without confirmations.\n @author Stefan George - ", "fullyImplemented": true, "id": 2685, "linearizedBaseContracts": [ 2685, 732, 632, 1663 ], "name": "WhitelistModule", "nodeType": "ContractDefinition", "nodes": [ { "constant": true, "id": 2542, "name": "NAME", "nodeType": "VariableDeclaration", "scope": 2685, "src": "331:48:21", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_memory", "typeString": "string" }, "typeName": { "id": 2540, "name": "string", "nodeType": "ElementaryTypeName", "src": "331:6:21", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": { "argumentTypes": null, "hexValue": "57686974656c697374204d6f64756c65", "id": 2541, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "361:18:21", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_84d69d03a7c747e8eefe7cc2b9e87b566cfc57cc90e4ed88f03f9c9780b7d4e6", "typeString": "literal_string \"Whitelist Module\"" }, "value": "Whitelist Module" }, "visibility": "public" }, { "constant": true, "id": 2545, "name": "VERSION", "nodeType": "VariableDeclaration", "scope": 2685, "src": "385:40:21", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_memory", "typeString": "string" }, "typeName": { "id": 2543, "name": "string", "nodeType": "ElementaryTypeName", "src": "385:6:21", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": { "argumentTypes": null, "hexValue": "302e302e31", "id": 2544, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "418:7:21", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_ae209a0b48f21c054280f2455d32cf309387644879d9acbd8ffc199163811885", "typeString": "literal_string \"0.0.1\"" }, "value": "0.0.1" }, "visibility": "public" }, { "constant": false, "id": 2549, "name": "isWhitelisted", "nodeType": "VariableDeclaration", "scope": 2685, "src": "498:46:21", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" }, "typeName": { "id": 2548, "keyType": { "id": 2546, "name": "address", "nodeType": "ElementaryTypeName", "src": "507:7:21", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", "src": "498:25:21", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" }, "valueType": { "id": 2547, "name": "bool", "nodeType": "ElementaryTypeName", "src": "518:4:21", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } }, "value": null, "visibility": "public" }, { "body": { "id": 2590, "nodeType": "Block", "src": "721:244:21", "statements": [ { "expression": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "id": 2555, "name": "setManager", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 731, "src": "731:10:21", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, "id": 2556, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "731:12:21", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2557, "nodeType": "ExpressionStatement", "src": "731:12:21" }, { "body": { "id": 2588, "nodeType": "Block", "src": "799:160:21", "statements": [ { "assignments": [ 2570 ], "declarations": [ { "constant": false, "id": 2570, "name": "account", "nodeType": "VariableDeclaration", "scope": 2591, "src": "813:15:21", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 2569, "name": "address", "nodeType": "ElementaryTypeName", "src": "813:7:21", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "id": 2574, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 2571, "name": "accounts", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2552, "src": "831:8:21", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, "id": 2573, "indexExpression": { "argumentTypes": null, "id": 2572, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2559, "src": "840:1:21", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "831:11:21", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", "src": "813:29:21" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 2578, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 2576, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2570, "src": "864:7:21", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 2577, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "875:1:21", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "864:12:21", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "496e76616c6964206163636f756e742070726f7669646564", "id": 2579, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "878:26:21", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_da3a197794c99763c55550690a7eddbab5a672fb560947793aaf405a2b5f9490", "typeString": "literal_string \"Invalid account provided\"" }, "value": "Invalid account provided" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_da3a197794c99763c55550690a7eddbab5a672fb560947793aaf405a2b5f9490", "typeString": "literal_string \"Invalid account provided\"" } ], "id": 2575, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 2703, 2704 ], "referencedDeclaration": 2704, "src": "856:7:21", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 2580, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "856:49:21", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2581, "nodeType": "ExpressionStatement", "src": "856:49:21" }, { "expression": { "argumentTypes": null, "id": 2586, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 2582, "name": "isWhitelisted", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2549, "src": "919:13:21", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, "id": 2584, "indexExpression": { "argumentTypes": null, "id": 2583, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2570, "src": "933:7:21", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "919:22:21", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", "id": 2585, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "944:4:21", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, "src": "919:29:21", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 2587, "nodeType": "ExpressionStatement", "src": "919:29:21" } ] }, "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 2565, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 2562, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2559, "src": "773:1:21", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 2563, "name": "accounts", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2552, "src": "777:8:21", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, "id": 2564, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "777:15:21", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "773:19:21", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 2589, "initializationExpression": { "assignments": [ 2559 ], "declarations": [ { "constant": false, "id": 2559, "name": "i", "nodeType": "VariableDeclaration", "scope": 2591, "src": "758:9:21", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 2558, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "758:7:21", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 2561, "initialValue": { "argumentTypes": null, "hexValue": "30", "id": 2560, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "770:1:21", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "nodeType": "VariableDeclarationStatement", "src": "758:13:21" }, "loopExpression": { "expression": { "argumentTypes": null, "id": 2567, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "++", "prefix": false, "src": "794:3:21", "subExpression": { "argumentTypes": null, "id": 2566, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2559, "src": "794:1:21", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 2568, "nodeType": "ExpressionStatement", "src": "794:3:21" }, "nodeType": "ForStatement", "src": "753:206:21" } ] }, "documentation": "@dev Setup function sets initial storage of contract.\n @param accounts List of whitelisted accounts.", "id": 2591, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], "name": "setup", "nodeType": "FunctionDefinition", "parameters": { "id": 2553, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2552, "name": "accounts", "nodeType": "VariableDeclaration", "scope": 2591, "src": "682:18:21", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[]" }, "typeName": { "baseType": { "id": 2550, "name": "address", "nodeType": "ElementaryTypeName", "src": "682:7:21", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 2551, "length": null, "nodeType": "ArrayTypeName", "src": "682:9:21", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" } }, "value": null, "visibility": "internal" } ], "src": "681:20:21" }, "payable": false, "returnParameters": { "id": 2554, "nodeType": "ParameterList", "parameters": [], "src": "721:0:21" }, "scope": 2685, "src": "667:298:21", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 2619, "nodeType": "Block", "src": "1193:181:21", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 2601, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 2599, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2593, "src": "1211:7:21", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 2600, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1222:1:21", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "1211:12:21", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "496e76616c6964206163636f756e742070726f7669646564", "id": 2602, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "1225:26:21", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_da3a197794c99763c55550690a7eddbab5a672fb560947793aaf405a2b5f9490", "typeString": "literal_string \"Invalid account provided\"" }, "value": "Invalid account provided" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_da3a197794c99763c55550690a7eddbab5a672fb560947793aaf405a2b5f9490", "typeString": "literal_string \"Invalid account provided\"" } ], "id": 2598, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 2703, 2704 ], "referencedDeclaration": 2704, "src": "1203:7:21", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 2603, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1203:49:21", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2604, "nodeType": "ExpressionStatement", "src": "1203:49:21" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 2609, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "!", "prefix": true, "src": "1270:23:21", "subExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 2606, "name": "isWhitelisted", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2549, "src": "1271:13:21", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, "id": 2608, "indexExpression": { "argumentTypes": null, "id": 2607, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2593, "src": "1285:7:21", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "1271:22:21", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4163636f756e7420697320616c72656164792077686974656c6973746564", "id": 2610, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "1295:32:21", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_42f0c01c0b06bc5e652009543318e4fd67cfba114702c7f55fad1ff0c3c82ad8", "typeString": "literal_string \"Account is already whitelisted\"" }, "value": "Account is already whitelisted" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_42f0c01c0b06bc5e652009543318e4fd67cfba114702c7f55fad1ff0c3c82ad8", "typeString": "literal_string \"Account is already whitelisted\"" } ], "id": 2605, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 2703, 2704 ], "referencedDeclaration": 2704, "src": "1262:7:21", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 2611, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1262:66:21", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2612, "nodeType": "ExpressionStatement", "src": "1262:66:21" }, { "expression": { "argumentTypes": null, "id": 2617, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 2613, "name": "isWhitelisted", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2549, "src": "1338:13:21", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, "id": 2615, "indexExpression": { "argumentTypes": null, "id": 2614, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2593, "src": "1352:7:21", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "1338:22:21", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", "id": 2616, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "1363:4:21", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, "src": "1338:29:21", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 2618, "nodeType": "ExpressionStatement", "src": "1338:29:21" } ] }, "documentation": "@dev Allows to add destination to whitelist. This can only be done via a Safe transaction.\n @param account Destination address.", "id": 2620, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, "id": 2596, "modifierName": { "argumentTypes": null, "id": 2595, "name": "authorized", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 711, "src": "1178:10:21", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", "src": "1178:10:21" } ], "name": "addToWhitelist", "nodeType": "FunctionDefinition", "parameters": { "id": 2594, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2593, "name": "account", "nodeType": "VariableDeclaration", "scope": 2620, "src": "1138:15:21", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 2592, "name": "address", "nodeType": "ElementaryTypeName", "src": "1138:7:21", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "1137:17:21" }, "payable": false, "returnParameters": { "id": 2597, "nodeType": "ParameterList", "parameters": [], "src": "1193:0:21" }, "scope": 2685, "src": "1114:260:21", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 2640, "nodeType": "Block", "src": "1612:118:21", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 2628, "name": "isWhitelisted", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2549, "src": "1630:13:21", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, "id": 2630, "indexExpression": { "argumentTypes": null, "id": 2629, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2622, "src": "1644:7:21", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "1630:22:21", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4163636f756e74206973206e6f742077686974656c6973746564", "id": 2631, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "1654:28:21", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_2f56605dd36b69a55672cdc762e8d3959c002a474a30a6774bba38bb65f718e1", "typeString": "literal_string \"Account is not whitelisted\"" }, "value": "Account is not whitelisted" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_2f56605dd36b69a55672cdc762e8d3959c002a474a30a6774bba38bb65f718e1", "typeString": "literal_string \"Account is not whitelisted\"" } ], "id": 2627, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 2703, 2704 ], "referencedDeclaration": 2704, "src": "1622:7:21", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 2632, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1622:61:21", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2633, "nodeType": "ExpressionStatement", "src": "1622:61:21" }, { "expression": { "argumentTypes": null, "id": 2638, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 2634, "name": "isWhitelisted", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2549, "src": "1693:13:21", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, "id": 2636, "indexExpression": { "argumentTypes": null, "id": 2635, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2622, "src": "1707:7:21", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "1693:22:21", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "66616c7365", "id": 2637, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "1718:5:21", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "false" }, "src": "1693:30:21", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 2639, "nodeType": "ExpressionStatement", "src": "1693:30:21" } ] }, "documentation": "@dev Allows to remove destination from whitelist. This can only be done via a Safe transaction.\n @param account Destination address.", "id": 2641, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, "id": 2625, "modifierName": { "argumentTypes": null, "id": 2624, "name": "authorized", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 711, "src": "1597:10:21", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", "src": "1597:10:21" } ], "name": "removeFromWhitelist", "nodeType": "FunctionDefinition", "parameters": { "id": 2623, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2622, "name": "account", "nodeType": "VariableDeclaration", "scope": 2641, "src": "1557:15:21", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 2621, "name": "address", "nodeType": "ElementaryTypeName", "src": "1557:7:21", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "1556:17:21" }, "payable": false, "returnParameters": { "id": 2626, "nodeType": "ParameterList", "parameters": [], "src": "1612:0:21" }, "scope": 2685, "src": "1528:202:21", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 2683, "nodeType": "Block", "src": "2093:393:21", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 2657, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2700, "src": "2230:3:21", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 2658, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "2230:10:21", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 2654, "name": "manager", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 697, "src": "2213:7:21", "typeDescriptions": { "typeIdentifier": "t_contract$_ModuleManager_$1103", "typeString": "contract ModuleManager" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_contract$_ModuleManager_$1103", "typeString": "contract ModuleManager" } ], "id": 2653, "name": "OwnerManager", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1513, "src": "2200:12:21", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_OwnerManager_$1513_$", "typeString": "type(contract OwnerManager)" } }, "id": 2655, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2200:21:21", "typeDescriptions": { "typeIdentifier": "t_contract$_OwnerManager_$1513", "typeString": "contract OwnerManager" } }, "id": 2656, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "isOwner", "nodeType": "MemberAccess", "referencedDeclaration": 1463, "src": "2200:29:21", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$", "typeString": "function (address) view external returns (bool)" } }, "id": 2659, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2200:41:21", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4d6574686f642063616e206f6e6c792062652063616c6c656420627920616e206f776e6572", "id": 2660, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "2243:39:21", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_4df072353ff501a1071e1cc3e2eb3ee0ebb21a35321efe90c0960bf2f4356640", "typeString": "literal_string \"Method can only be called by an owner\"" }, "value": "Method can only be called by an owner" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_4df072353ff501a1071e1cc3e2eb3ee0ebb21a35321efe90c0960bf2f4356640", "typeString": "literal_string \"Method can only be called by an owner\"" } ], "id": 2652, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 2703, 2704 ], "referencedDeclaration": 2704, "src": "2192:7:21", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 2661, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2192:91:21", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2662, "nodeType": "ExpressionStatement", "src": "2192:91:21" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 2664, "name": "isWhitelisted", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2549, "src": "2301:13:21", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, "id": 2666, "indexExpression": { "argumentTypes": null, "id": 2665, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2643, "src": "2315:2:21", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "2301:17:21", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "546172676574206163636f756e74206973206e6f742077686974656c6973746564", "id": 2667, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "2320:35:21", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_9a154d7dadc01125e34b410c8bdd8fd2546fbbac90b22b0d92787a072cf6fc42", "typeString": "literal_string \"Target account is not whitelisted\"" }, "value": "Target account is not whitelisted" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_9a154d7dadc01125e34b410c8bdd8fd2546fbbac90b22b0d92787a072cf6fc42", "typeString": "literal_string \"Target account is not whitelisted\"" } ], "id": 2663, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 2703, 2704 ], "referencedDeclaration": 2704, "src": "2293:7:21", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 2668, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2293:63:21", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2669, "nodeType": "ExpressionStatement", "src": "2293:63:21" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 2673, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2643, "src": "2408:2:21", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 2674, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2645, "src": "2412:5:21", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 2675, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2647, "src": "2419:4:21", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 2676, "name": "Enum", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 30, "src": "2425:4:21", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_Enum_$30_$", "typeString": "type(contract Enum)" } }, "id": 2677, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "Operation", "nodeType": "MemberAccess", "referencedDeclaration": 29, "src": "2425:14:21", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_Operation_$29_$", "typeString": "type(enum Enum.Operation)" } }, "id": 2678, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "Call", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "2425:19:21", "typeDescriptions": { "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" }, { "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" } ], "expression": { "argumentTypes": null, "id": 2671, "name": "manager", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 697, "src": "2374:7:21", "typeDescriptions": { "typeIdentifier": "t_contract$_ModuleManager_$1103", "typeString": "contract ModuleManager" } }, "id": 2672, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "execTransactionFromModule", "nodeType": "MemberAccess", "referencedDeclaration": 930, "src": "2374:33:21", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$29_$returns$_t_bool_$", "typeString": "function (address,uint256,bytes memory,enum Enum.Operation) external returns (bool)" } }, "id": 2679, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2374:71:21", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "436f756c64206e6f742065786563757465207472616e73616374696f6e", "id": 2680, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "2447:31:21", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_b0a2f29e31cc28eee068c27ff93342fb8d9840dcad25c6f669ce8154844930c4", "typeString": "literal_string \"Could not execute transaction\"" }, "value": "Could not execute transaction" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_b0a2f29e31cc28eee068c27ff93342fb8d9840dcad25c6f669ce8154844930c4", "typeString": "literal_string \"Could not execute transaction\"" } ], "id": 2670, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 2703, 2704 ], "referencedDeclaration": 2704, "src": "2366:7:21", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 2681, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2366:113:21", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2682, "nodeType": "ExpressionStatement", "src": "2366:113:21" } ] }, "documentation": "@dev Returns if Safe transaction is to a whitelisted destination.\n @param to Whitelisted destination address.\n @param value Not checked.\n @param data Not checked.\n @return Returns if transaction can be executed.", "id": 2684, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], "name": "executeWhitelisted", "nodeType": "FunctionDefinition", "parameters": { "id": 2648, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2643, "name": "to", "nodeType": "VariableDeclaration", "scope": 2684, "src": "2012:10:21", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 2642, "name": "address", "nodeType": "ElementaryTypeName", "src": "2012:7:21", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 2645, "name": "value", "nodeType": "VariableDeclaration", "scope": 2684, "src": "2024:13:21", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 2644, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2024:7:21", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 2647, "name": "data", "nodeType": "VariableDeclaration", "scope": 2684, "src": "2039:10:21", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 2646, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "2039:5:21", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "value": null, "visibility": "internal" } ], "src": "2011:39:21" }, "payable": false, "returnParameters": { "id": 2651, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2650, "name": "", "nodeType": "VariableDeclaration", "scope": 2684, "src": "2083:4:21", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 2649, "name": "bool", "nodeType": "ElementaryTypeName", "src": "2083:4:21", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" } ], "src": "2082:6:21" }, "scope": 2685, "src": "1984:502:21", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], "scope": 2686, "src": "289:2199:21" } ], "src": "0:2489:21" }, "legacyAST": { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/modules/WhitelistModule.sol", "exportedSymbols": { "WhitelistModule": [ 2685 ] }, "id": 2686, "nodeType": "SourceUnit", "nodes": [ { "id": 2533, "literals": [ "solidity", "0.4", ".24" ], "nodeType": "PragmaDirective", "src": "0:23:21" }, { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Enum.sol", "file": "../Enum.sol", "id": 2534, "nodeType": "ImportDirective", "scope": 2686, "sourceUnit": 31, "src": "24:21:21", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Module.sol", "file": "../Module.sol", "id": 2535, "nodeType": "ImportDirective", "scope": 2686, "sourceUnit": 733, "src": "46:23:21", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/ModuleManager.sol", "file": "../ModuleManager.sol", "id": 2536, "nodeType": "ImportDirective", "scope": 2686, "sourceUnit": 1104, "src": "70:30:21", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/OwnerManager.sol", "file": "../OwnerManager.sol", "id": 2537, "nodeType": "ImportDirective", "scope": 2686, "sourceUnit": 1514, "src": "101:29:21", "symbolAliases": [], "unitAlias": "" }, { "baseContracts": [ { "arguments": null, "baseName": { "contractScope": null, "id": 2538, "name": "Module", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 732, "src": "317:6:21", "typeDescriptions": { "typeIdentifier": "t_contract$_Module_$732", "typeString": "contract Module" } }, "id": 2539, "nodeType": "InheritanceSpecifier", "src": "317:6:21" } ], "contractDependencies": [ 632, 732, 1663 ], "contractKind": "contract", "documentation": "@title Whitelist Module - Allows to execute transactions to whitelisted addresses without confirmations.\n @author Stefan George - ", "fullyImplemented": true, "id": 2685, "linearizedBaseContracts": [ 2685, 732, 632, 1663 ], "name": "WhitelistModule", "nodeType": "ContractDefinition", "nodes": [ { "constant": true, "id": 2542, "name": "NAME", "nodeType": "VariableDeclaration", "scope": 2685, "src": "331:48:21", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_memory", "typeString": "string" }, "typeName": { "id": 2540, "name": "string", "nodeType": "ElementaryTypeName", "src": "331:6:21", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": { "argumentTypes": null, "hexValue": "57686974656c697374204d6f64756c65", "id": 2541, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "361:18:21", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_84d69d03a7c747e8eefe7cc2b9e87b566cfc57cc90e4ed88f03f9c9780b7d4e6", "typeString": "literal_string \"Whitelist Module\"" }, "value": "Whitelist Module" }, "visibility": "public" }, { "constant": true, "id": 2545, "name": "VERSION", "nodeType": "VariableDeclaration", "scope": 2685, "src": "385:40:21", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_memory", "typeString": "string" }, "typeName": { "id": 2543, "name": "string", "nodeType": "ElementaryTypeName", "src": "385:6:21", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": { "argumentTypes": null, "hexValue": "302e302e31", "id": 2544, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "418:7:21", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_ae209a0b48f21c054280f2455d32cf309387644879d9acbd8ffc199163811885", "typeString": "literal_string \"0.0.1\"" }, "value": "0.0.1" }, "visibility": "public" }, { "constant": false, "id": 2549, "name": "isWhitelisted", "nodeType": "VariableDeclaration", "scope": 2685, "src": "498:46:21", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" }, "typeName": { "id": 2548, "keyType": { "id": 2546, "name": "address", "nodeType": "ElementaryTypeName", "src": "507:7:21", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", "src": "498:25:21", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" }, "valueType": { "id": 2547, "name": "bool", "nodeType": "ElementaryTypeName", "src": "518:4:21", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } }, "value": null, "visibility": "public" }, { "body": { "id": 2590, "nodeType": "Block", "src": "721:244:21", "statements": [ { "expression": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "id": 2555, "name": "setManager", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 731, "src": "731:10:21", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, "id": 2556, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "731:12:21", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2557, "nodeType": "ExpressionStatement", "src": "731:12:21" }, { "body": { "id": 2588, "nodeType": "Block", "src": "799:160:21", "statements": [ { "assignments": [ 2570 ], "declarations": [ { "constant": false, "id": 2570, "name": "account", "nodeType": "VariableDeclaration", "scope": 2591, "src": "813:15:21", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 2569, "name": "address", "nodeType": "ElementaryTypeName", "src": "813:7:21", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "id": 2574, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 2571, "name": "accounts", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2552, "src": "831:8:21", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, "id": 2573, "indexExpression": { "argumentTypes": null, "id": 2572, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2559, "src": "840:1:21", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "831:11:21", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", "src": "813:29:21" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 2578, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 2576, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2570, "src": "864:7:21", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 2577, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "875:1:21", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "864:12:21", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "496e76616c6964206163636f756e742070726f7669646564", "id": 2579, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "878:26:21", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_da3a197794c99763c55550690a7eddbab5a672fb560947793aaf405a2b5f9490", "typeString": "literal_string \"Invalid account provided\"" }, "value": "Invalid account provided" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_da3a197794c99763c55550690a7eddbab5a672fb560947793aaf405a2b5f9490", "typeString": "literal_string \"Invalid account provided\"" } ], "id": 2575, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 2703, 2704 ], "referencedDeclaration": 2704, "src": "856:7:21", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 2580, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "856:49:21", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2581, "nodeType": "ExpressionStatement", "src": "856:49:21" }, { "expression": { "argumentTypes": null, "id": 2586, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 2582, "name": "isWhitelisted", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2549, "src": "919:13:21", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, "id": 2584, "indexExpression": { "argumentTypes": null, "id": 2583, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2570, "src": "933:7:21", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "919:22:21", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", "id": 2585, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "944:4:21", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, "src": "919:29:21", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 2587, "nodeType": "ExpressionStatement", "src": "919:29:21" } ] }, "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 2565, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 2562, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2559, "src": "773:1:21", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 2563, "name": "accounts", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2552, "src": "777:8:21", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, "id": 2564, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "777:15:21", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "773:19:21", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 2589, "initializationExpression": { "assignments": [ 2559 ], "declarations": [ { "constant": false, "id": 2559, "name": "i", "nodeType": "VariableDeclaration", "scope": 2591, "src": "758:9:21", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 2558, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "758:7:21", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 2561, "initialValue": { "argumentTypes": null, "hexValue": "30", "id": 2560, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "770:1:21", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "nodeType": "VariableDeclarationStatement", "src": "758:13:21" }, "loopExpression": { "expression": { "argumentTypes": null, "id": 2567, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "++", "prefix": false, "src": "794:3:21", "subExpression": { "argumentTypes": null, "id": 2566, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2559, "src": "794:1:21", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 2568, "nodeType": "ExpressionStatement", "src": "794:3:21" }, "nodeType": "ForStatement", "src": "753:206:21" } ] }, "documentation": "@dev Setup function sets initial storage of contract.\n @param accounts List of whitelisted accounts.", "id": 2591, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], "name": "setup", "nodeType": "FunctionDefinition", "parameters": { "id": 2553, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2552, "name": "accounts", "nodeType": "VariableDeclaration", "scope": 2591, "src": "682:18:21", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[]" }, "typeName": { "baseType": { "id": 2550, "name": "address", "nodeType": "ElementaryTypeName", "src": "682:7:21", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 2551, "length": null, "nodeType": "ArrayTypeName", "src": "682:9:21", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" } }, "value": null, "visibility": "internal" } ], "src": "681:20:21" }, "payable": false, "returnParameters": { "id": 2554, "nodeType": "ParameterList", "parameters": [], "src": "721:0:21" }, "scope": 2685, "src": "667:298:21", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 2619, "nodeType": "Block", "src": "1193:181:21", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 2601, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 2599, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2593, "src": "1211:7:21", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 2600, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1222:1:21", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "1211:12:21", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "496e76616c6964206163636f756e742070726f7669646564", "id": 2602, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "1225:26:21", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_da3a197794c99763c55550690a7eddbab5a672fb560947793aaf405a2b5f9490", "typeString": "literal_string \"Invalid account provided\"" }, "value": "Invalid account provided" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_da3a197794c99763c55550690a7eddbab5a672fb560947793aaf405a2b5f9490", "typeString": "literal_string \"Invalid account provided\"" } ], "id": 2598, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 2703, 2704 ], "referencedDeclaration": 2704, "src": "1203:7:21", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 2603, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1203:49:21", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2604, "nodeType": "ExpressionStatement", "src": "1203:49:21" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 2609, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "!", "prefix": true, "src": "1270:23:21", "subExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 2606, "name": "isWhitelisted", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2549, "src": "1271:13:21", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, "id": 2608, "indexExpression": { "argumentTypes": null, "id": 2607, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2593, "src": "1285:7:21", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "1271:22:21", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4163636f756e7420697320616c72656164792077686974656c6973746564", "id": 2610, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "1295:32:21", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_42f0c01c0b06bc5e652009543318e4fd67cfba114702c7f55fad1ff0c3c82ad8", "typeString": "literal_string \"Account is already whitelisted\"" }, "value": "Account is already whitelisted" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_42f0c01c0b06bc5e652009543318e4fd67cfba114702c7f55fad1ff0c3c82ad8", "typeString": "literal_string \"Account is already whitelisted\"" } ], "id": 2605, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 2703, 2704 ], "referencedDeclaration": 2704, "src": "1262:7:21", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 2611, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1262:66:21", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2612, "nodeType": "ExpressionStatement", "src": "1262:66:21" }, { "expression": { "argumentTypes": null, "id": 2617, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 2613, "name": "isWhitelisted", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2549, "src": "1338:13:21", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, "id": 2615, "indexExpression": { "argumentTypes": null, "id": 2614, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2593, "src": "1352:7:21", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "1338:22:21", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", "id": 2616, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "1363:4:21", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, "src": "1338:29:21", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 2618, "nodeType": "ExpressionStatement", "src": "1338:29:21" } ] }, "documentation": "@dev Allows to add destination to whitelist. This can only be done via a Safe transaction.\n @param account Destination address.", "id": 2620, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, "id": 2596, "modifierName": { "argumentTypes": null, "id": 2595, "name": "authorized", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 711, "src": "1178:10:21", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", "src": "1178:10:21" } ], "name": "addToWhitelist", "nodeType": "FunctionDefinition", "parameters": { "id": 2594, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2593, "name": "account", "nodeType": "VariableDeclaration", "scope": 2620, "src": "1138:15:21", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 2592, "name": "address", "nodeType": "ElementaryTypeName", "src": "1138:7:21", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "1137:17:21" }, "payable": false, "returnParameters": { "id": 2597, "nodeType": "ParameterList", "parameters": [], "src": "1193:0:21" }, "scope": 2685, "src": "1114:260:21", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 2640, "nodeType": "Block", "src": "1612:118:21", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 2628, "name": "isWhitelisted", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2549, "src": "1630:13:21", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, "id": 2630, "indexExpression": { "argumentTypes": null, "id": 2629, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2622, "src": "1644:7:21", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "1630:22:21", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4163636f756e74206973206e6f742077686974656c6973746564", "id": 2631, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "1654:28:21", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_2f56605dd36b69a55672cdc762e8d3959c002a474a30a6774bba38bb65f718e1", "typeString": "literal_string \"Account is not whitelisted\"" }, "value": "Account is not whitelisted" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_2f56605dd36b69a55672cdc762e8d3959c002a474a30a6774bba38bb65f718e1", "typeString": "literal_string \"Account is not whitelisted\"" } ], "id": 2627, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 2703, 2704 ], "referencedDeclaration": 2704, "src": "1622:7:21", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 2632, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1622:61:21", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2633, "nodeType": "ExpressionStatement", "src": "1622:61:21" }, { "expression": { "argumentTypes": null, "id": 2638, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 2634, "name": "isWhitelisted", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2549, "src": "1693:13:21", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, "id": 2636, "indexExpression": { "argumentTypes": null, "id": 2635, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2622, "src": "1707:7:21", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "1693:22:21", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "66616c7365", "id": 2637, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "1718:5:21", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "false" }, "src": "1693:30:21", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 2639, "nodeType": "ExpressionStatement", "src": "1693:30:21" } ] }, "documentation": "@dev Allows to remove destination from whitelist. This can only be done via a Safe transaction.\n @param account Destination address.", "id": 2641, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, "id": 2625, "modifierName": { "argumentTypes": null, "id": 2624, "name": "authorized", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 711, "src": "1597:10:21", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", "src": "1597:10:21" } ], "name": "removeFromWhitelist", "nodeType": "FunctionDefinition", "parameters": { "id": 2623, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2622, "name": "account", "nodeType": "VariableDeclaration", "scope": 2641, "src": "1557:15:21", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 2621, "name": "address", "nodeType": "ElementaryTypeName", "src": "1557:7:21", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "1556:17:21" }, "payable": false, "returnParameters": { "id": 2626, "nodeType": "ParameterList", "parameters": [], "src": "1612:0:21" }, "scope": 2685, "src": "1528:202:21", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 2683, "nodeType": "Block", "src": "2093:393:21", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 2657, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2700, "src": "2230:3:21", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 2658, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "2230:10:21", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 2654, "name": "manager", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 697, "src": "2213:7:21", "typeDescriptions": { "typeIdentifier": "t_contract$_ModuleManager_$1103", "typeString": "contract ModuleManager" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_contract$_ModuleManager_$1103", "typeString": "contract ModuleManager" } ], "id": 2653, "name": "OwnerManager", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1513, "src": "2200:12:21", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_OwnerManager_$1513_$", "typeString": "type(contract OwnerManager)" } }, "id": 2655, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2200:21:21", "typeDescriptions": { "typeIdentifier": "t_contract$_OwnerManager_$1513", "typeString": "contract OwnerManager" } }, "id": 2656, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "isOwner", "nodeType": "MemberAccess", "referencedDeclaration": 1463, "src": "2200:29:21", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$", "typeString": "function (address) view external returns (bool)" } }, "id": 2659, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2200:41:21", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4d6574686f642063616e206f6e6c792062652063616c6c656420627920616e206f776e6572", "id": 2660, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "2243:39:21", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_4df072353ff501a1071e1cc3e2eb3ee0ebb21a35321efe90c0960bf2f4356640", "typeString": "literal_string \"Method can only be called by an owner\"" }, "value": "Method can only be called by an owner" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_4df072353ff501a1071e1cc3e2eb3ee0ebb21a35321efe90c0960bf2f4356640", "typeString": "literal_string \"Method can only be called by an owner\"" } ], "id": 2652, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 2703, 2704 ], "referencedDeclaration": 2704, "src": "2192:7:21", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 2661, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2192:91:21", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2662, "nodeType": "ExpressionStatement", "src": "2192:91:21" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 2664, "name": "isWhitelisted", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2549, "src": "2301:13:21", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, "id": 2666, "indexExpression": { "argumentTypes": null, "id": 2665, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2643, "src": "2315:2:21", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "2301:17:21", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "546172676574206163636f756e74206973206e6f742077686974656c6973746564", "id": 2667, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "2320:35:21", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_9a154d7dadc01125e34b410c8bdd8fd2546fbbac90b22b0d92787a072cf6fc42", "typeString": "literal_string \"Target account is not whitelisted\"" }, "value": "Target account is not whitelisted" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_9a154d7dadc01125e34b410c8bdd8fd2546fbbac90b22b0d92787a072cf6fc42", "typeString": "literal_string \"Target account is not whitelisted\"" } ], "id": 2663, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 2703, 2704 ], "referencedDeclaration": 2704, "src": "2293:7:21", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 2668, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2293:63:21", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2669, "nodeType": "ExpressionStatement", "src": "2293:63:21" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 2673, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2643, "src": "2408:2:21", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 2674, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2645, "src": "2412:5:21", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 2675, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2647, "src": "2419:4:21", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 2676, "name": "Enum", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 30, "src": "2425:4:21", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_Enum_$30_$", "typeString": "type(contract Enum)" } }, "id": 2677, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "Operation", "nodeType": "MemberAccess", "referencedDeclaration": 29, "src": "2425:14:21", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_Operation_$29_$", "typeString": "type(enum Enum.Operation)" } }, "id": 2678, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "Call", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "2425:19:21", "typeDescriptions": { "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" }, { "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" } ], "expression": { "argumentTypes": null, "id": 2671, "name": "manager", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 697, "src": "2374:7:21", "typeDescriptions": { "typeIdentifier": "t_contract$_ModuleManager_$1103", "typeString": "contract ModuleManager" } }, "id": 2672, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "execTransactionFromModule", "nodeType": "MemberAccess", "referencedDeclaration": 930, "src": "2374:33:21", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$29_$returns$_t_bool_$", "typeString": "function (address,uint256,bytes memory,enum Enum.Operation) external returns (bool)" } }, "id": 2679, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2374:71:21", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "436f756c64206e6f742065786563757465207472616e73616374696f6e", "id": 2680, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "2447:31:21", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_b0a2f29e31cc28eee068c27ff93342fb8d9840dcad25c6f669ce8154844930c4", "typeString": "literal_string \"Could not execute transaction\"" }, "value": "Could not execute transaction" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_b0a2f29e31cc28eee068c27ff93342fb8d9840dcad25c6f669ce8154844930c4", "typeString": "literal_string \"Could not execute transaction\"" } ], "id": 2670, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 2703, 2704 ], "referencedDeclaration": 2704, "src": "2366:7:21", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 2681, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2366:113:21", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2682, "nodeType": "ExpressionStatement", "src": "2366:113:21" } ] }, "documentation": "@dev Returns if Safe transaction is to a whitelisted destination.\n @param to Whitelisted destination address.\n @param value Not checked.\n @param data Not checked.\n @return Returns if transaction can be executed.", "id": 2684, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], "name": "executeWhitelisted", "nodeType": "FunctionDefinition", "parameters": { "id": 2648, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2643, "name": "to", "nodeType": "VariableDeclaration", "scope": 2684, "src": "2012:10:21", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 2642, "name": "address", "nodeType": "ElementaryTypeName", "src": "2012:7:21", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 2645, "name": "value", "nodeType": "VariableDeclaration", "scope": 2684, "src": "2024:13:21", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 2644, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2024:7:21", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 2647, "name": "data", "nodeType": "VariableDeclaration", "scope": 2684, "src": "2039:10:21", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 2646, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "2039:5:21", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "value": null, "visibility": "internal" } ], "src": "2011:39:21" }, "payable": false, "returnParameters": { "id": 2651, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2650, "name": "", "nodeType": "VariableDeclaration", "scope": 2684, "src": "2083:4:21", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 2649, "name": "bool", "nodeType": "ElementaryTypeName", "src": "2083:4:21", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" } ], "src": "2082:6:21" }, "scope": 2685, "src": "1984:502:21", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], "scope": 2686, "src": "289:2199:21" } ], "src": "0:2489:21" }, "compiler": { "name": "solc", "version": "0.4.24+commit.e67f0147.Emscripten.clang" }, "networks": { "4": { "events": {}, "links": {}, "address": "0xbaa61d045b5fed7a21dd37ccd3beef2dbf6f5a8a", "transactionHash": "0x40568a410a329444f7f469f0d2861308dda4c1c0d2bb520eb9b40317b2a646db" }, "1529327661534": { "events": {}, "links": {}, "address": "0x012bfd13175d46df700e32bcf7f212c93d858210", "transactionHash": "0x1626d24aa1a64aacd449ea6acba369532bbb860b2db5fcfd6d1aba65f03d47fb" }, "1529333415702": { "events": {}, "links": {}, "address": "0x6fafade61582e994730a7cd15480155d8017e888", "transactionHash": "0x7850b601cdea18ba050f455b4fad47c152c51ed5d2c56e88a54a336780ddcbd2" }, "1529652204341": { "events": {}, "links": {}, "address": "0x88ed584819ee8dda7263b501af76ca07befa9ac7", "transactionHash": "0x07909d849b2c29127266874541e7145062da0e1af6ab5d204cd91ca8d08d48d0" } }, "schemaVersion": "2.0.0", "updatedAt": "2018-06-22T07:24:16.263Z" }