{"contractName":"StateChannelModule","abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"masterCopy","type":"address"}],"name":"ChangedMasterCopy","type":"event"},{"constant":true,"inputs":[],"name":"NAME","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"VERSION","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_masterCopy","type":"address"}],"name":"changeMasterCopy","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"isExecuted","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"manager","outputs":[{"internalType":"contract ModuleManager","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"setup","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"enum Enum.Operation","name":"operation","type":"uint8"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"signatures","type":"bytes"}],"name":"execTransaction","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"enum Enum.Operation","name":"operation","type":"uint8"},{"internalType":"uint256","name":"nonce","type":"uint256"}],"name":"getTransactionHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"}],"bytecode":"0x608060405234801561001057600080fd5b50611111806100206000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c8063ba0bba401161005b578063ba0bba40146102ae578063e52cb36a146102b8578063f6cc15d0146102fa578063ffa1ad741461048d57610088565b80632b5000411461008d578063481c6a751461019d5780637de7edef146101e7578063a3f4df7e1461022b575b600080fd5b610187600480360360a08110156100a357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001906401000000008111156100ea57600080fd5b8201836020820111156100fc57600080fd5b8035906020019184600183028401116401000000008311171561011e57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803560ff16906020019092919080359060200190929190505050610510565b6040518082815260200191505060405180910390f35b6101a56106c6565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610229600480360360208110156101fd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506106ec565b005b6102336108be565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610273578082015181840152602081019050610258565b50505050905090810190601f1680156102a05780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102b66108f7565b005b6102e4600480360360208110156102ce57600080fd5b8101908080359060200190929190505050610901565b6040518082815260200191505060405180910390f35b61048b600480360360c081101561031057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561035757600080fd5b82018360208201111561036957600080fd5b8035906020019184600183028401116401000000008311171561038b57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803560ff169060200190929190803590602001909291908035906020019064010000000081111561040557600080fd5b82018360208201111561041757600080fd5b8035906020019184600183028401116401000000008311171561043957600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610919565b005b610495610bb8565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156104d55780820151818401526020810190506104ba565b50505050905090810190601f1680156105025780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6000601960f81b600060f81b30888888888860405160200180897effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152600101887effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526001018773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b81526014018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b815260140185815260200184805190602001908083835b6020831061065c5780518252602082019150602081019050602083039250610639565b6001836020036101000a03801982511681845116808217855250505050505090500183600181111561068a57fe5b60ff1660f81b81526001018281526020019850505050505050505060405160208183030381529060405280519060200120905095945050505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610792576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806110b76026913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610818576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806110686024913960400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f75e41bc35ff1bf14d81d1d2f649c0084a0f974f9289c803ec9898eeec4c8d0b881604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b6040518060400160405280601481526020017f5374617465204368616e6e656c204d6f64756c6500000000000000000000000081525081565b6108ff610bf1565b565b60026020528060005260406000206000915090505481565b60006109288787878787610510565b905060006002600083815260200190815260200160002054146109b3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f5472616e73616374696f6e20616c72656164792065786563757465640000000081525060200191505060405180910390fd5b6109bd8183610cf8565b60016002600083815260200190815260200160002081905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468721a7888888886040518563ffffffff1660e01b8152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200180602001836001811115610a7357fe5b60ff168152602001828103825284818151815260200191508051906020019080838360005b83811015610ab3578082015181840152602081019050610a98565b50505050905090810190601f168015610ae05780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b158015610b0257600080fd5b505af1158015610b16573d6000803e3d6000fd5b505050506040513d6020811015610b2c57600080fd5b8101908080519060200190929190505050610baf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f436f756c64206e6f742065786563757465207472616e73616374696f6e00000081525060200191505060405180910390fd5b50505050505050565b6040518060400160405280600581526020017f302e312e3000000000000000000000000000000000000000000000000000000081525081565b600073ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cb5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4d616e616765722068617320616c7265616479206265656e207365740000000081525060200191505060405180910390fd5b33600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008090506000806000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e75235b86040518163ffffffff1660e01b815260040160206040518083038186803b158015610d6a57600080fd5b505afa158015610d7e573d6000803e3d6000fd5b505050506040513d6020811015610d9457600080fd5b81019080805190602001909291905050509050600091505b80821015610fa157610dbf868684610fa9565b9250600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632f54bf6e846040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610e6057600080fd5b505afa158015610e74573d6000803e3d6000fd5b505050506040513d6020811015610e8a57600080fd5b8101908080519060200190929190505050610f0d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5369676e6174757265206e6f742070726f7669646564206279206f776e65720081525060200191505060405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1611610f91576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b81526020018061108c602b913960400191505060405180910390fd5b8293508180600101925050610dac565b505050505050565b600080600080610fb98686611038565b80935081945082955050505060018784848460405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015611022573d6000803e3d6000fd5b5050506020604051035193505050509392505050565b60008060008360410260208101860151925060408101860151915060ff6041820187015116935050925092509256fe496e76616c6964206d617374657220636f707920616464726573732070726f76696465645369676e61747572657320617265206e6f74206f726465726564206279206f776e657220616464726573734d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d616e61676572a265627a7a723158200addabc5c8fe1ebe9ba34c5055270afff18c8504d2ed15bc47e10f6e89ffb09064736f6c634300050e0032","deployedBytecode":"0x608060405234801561001057600080fd5b50600436106100885760003560e01c8063ba0bba401161005b578063ba0bba40146102ae578063e52cb36a146102b8578063f6cc15d0146102fa578063ffa1ad741461048d57610088565b80632b5000411461008d578063481c6a751461019d5780637de7edef146101e7578063a3f4df7e1461022b575b600080fd5b610187600480360360a08110156100a357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001906401000000008111156100ea57600080fd5b8201836020820111156100fc57600080fd5b8035906020019184600183028401116401000000008311171561011e57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803560ff16906020019092919080359060200190929190505050610510565b6040518082815260200191505060405180910390f35b6101a56106c6565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610229600480360360208110156101fd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506106ec565b005b6102336108be565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610273578082015181840152602081019050610258565b50505050905090810190601f1680156102a05780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102b66108f7565b005b6102e4600480360360208110156102ce57600080fd5b8101908080359060200190929190505050610901565b6040518082815260200191505060405180910390f35b61048b600480360360c081101561031057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561035757600080fd5b82018360208201111561036957600080fd5b8035906020019184600183028401116401000000008311171561038b57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803560ff169060200190929190803590602001909291908035906020019064010000000081111561040557600080fd5b82018360208201111561041757600080fd5b8035906020019184600183028401116401000000008311171561043957600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610919565b005b610495610bb8565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156104d55780820151818401526020810190506104ba565b50505050905090810190601f1680156105025780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6000601960f81b600060f81b30888888888860405160200180897effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152600101887effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526001018773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b81526014018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b815260140185815260200184805190602001908083835b6020831061065c5780518252602082019150602081019050602083039250610639565b6001836020036101000a03801982511681845116808217855250505050505090500183600181111561068a57fe5b60ff1660f81b81526001018281526020019850505050505050505060405160208183030381529060405280519060200120905095945050505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610792576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806110b76026913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610818576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806110686024913960400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f75e41bc35ff1bf14d81d1d2f649c0084a0f974f9289c803ec9898eeec4c8d0b881604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b6040518060400160405280601481526020017f5374617465204368616e6e656c204d6f64756c6500000000000000000000000081525081565b6108ff610bf1565b565b60026020528060005260406000206000915090505481565b60006109288787878787610510565b905060006002600083815260200190815260200160002054146109b3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f5472616e73616374696f6e20616c72656164792065786563757465640000000081525060200191505060405180910390fd5b6109bd8183610cf8565b60016002600083815260200190815260200160002081905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468721a7888888886040518563ffffffff1660e01b8152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200180602001836001811115610a7357fe5b60ff168152602001828103825284818151815260200191508051906020019080838360005b83811015610ab3578082015181840152602081019050610a98565b50505050905090810190601f168015610ae05780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b158015610b0257600080fd5b505af1158015610b16573d6000803e3d6000fd5b505050506040513d6020811015610b2c57600080fd5b8101908080519060200190929190505050610baf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f436f756c64206e6f742065786563757465207472616e73616374696f6e00000081525060200191505060405180910390fd5b50505050505050565b6040518060400160405280600581526020017f302e312e3000000000000000000000000000000000000000000000000000000081525081565b600073ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cb5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4d616e616765722068617320616c7265616479206265656e207365740000000081525060200191505060405180910390fd5b33600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008090506000806000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e75235b86040518163ffffffff1660e01b815260040160206040518083038186803b158015610d6a57600080fd5b505afa158015610d7e573d6000803e3d6000fd5b505050506040513d6020811015610d9457600080fd5b81019080805190602001909291905050509050600091505b80821015610fa157610dbf868684610fa9565b9250600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632f54bf6e846040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610e6057600080fd5b505afa158015610e74573d6000803e3d6000fd5b505050506040513d6020811015610e8a57600080fd5b8101908080519060200190929190505050610f0d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5369676e6174757265206e6f742070726f7669646564206279206f776e65720081525060200191505060405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1611610f91576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b81526020018061108c602b913960400191505060405180910390fd5b8293508180600101925050610dac565b505050505050565b600080600080610fb98686611038565b80935081945082955050505060018784848460405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015611022573d6000803e3d6000fd5b5050506020604051035193505050509392505050565b60008060008360410260208101860151925060408101860151915060ff6041820187015116935050925092509256fe496e76616c6964206d617374657220636f707920616464726573732070726f76696465645369676e61747572657320617265206e6f74206f726465726564206279206f776e657220616464726573734d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d616e61676572a265627a7a723158200addabc5c8fe1ebe9ba34c5055270afff18c8504d2ed15bc47e10f6e89ffb09064736f6c634300050e0032","sourceMap":"357:2878:26:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;357:2878:26;;;;;;;","deployedSourceMap":"357:2878:26:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;357:2878:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2901:332;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;2901:332:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;2901:332:26;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;2901:332:26;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;2901:332:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;2901:332:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;278:28:4;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;794:302:9;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;794:302:9;;;;;;;;;;;;;;;;;;;:::i;:::-;;420:52:26;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;420:52:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;710:65;;;:::i;:::-;;616:46;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;616:46:26;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1240:644;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;1240:644:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;1240:644:26;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;1240:644:26;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;1240:644:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;1240:644:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;1240:644:26;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;1240:644:26;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;1240:644:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;1240:644:26;;;;;;;;;;;;;;;:::i;:::-;;478:40;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;478:40:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2901:332;3107:7;3169:4;3164:10;;3181:1;3176:7;;3185:4;3191:2;3195:5;3202:4;3208:9;3219:5;3147:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;3147:78:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;3147:78:26;;;3137:89;;;;;;3130:96;;2901:332;;;;;;;:::o;278:28:4:-;;;;;;;;;;;;;:::o;794:302:9:-;375:7:4;;;;;;;;;;;353:30;;:10;:30;;;345:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;967:1:9;944:25;;:11;:25;;;;936:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1033:11;1020:10;;:24;;;;;;;;;;;;;;;;;;1059:30;1077:11;1059:30;;;;;;;;;;;;;;;;;;;;;;794:302;:::o;420:52:26:-;;;;;;;;;;;;;;;;;;;:::o;710:65::-;756:12;:10;:12::i;:::-;710:65::o;616:46::-;;;;;;;;;;;;;;;;;:::o;1240:644::-;1460:23;1486:53;1505:2;1509:5;1516:4;1522:9;1533:5;1486:18;:53::i;:::-;1460:79;;1588:1;1557:10;:27;1568:15;1557:27;;;;;;;;;;;;:32;1549:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1632:38;1642:15;1659:10;1632:9;:38::i;:::-;1763:1;1733:10;:27;1744:15;1733:27;;;;;;;;;;;:31;;;;1782:7;;;;;;;;;;;:33;;;1816:2;1820:5;1827:4;1833:9;1782:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;1782:61:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1782:61:26;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1782:61:26;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1782:61:26;;;;;;;;;;;;;;;;1774:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1240:644;;;;;;;:::o;478:40::-;;;;;;;;;;;;;;;;;;;:::o;450:309:4:-;672:1;644:30;;652:7;;;;;;;;;;;644:30;;;636:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;741:10;717:7;;:35;;;;;;;;;;;;;;;;;;450:309::o;1890:733:26:-;2055:17;2083:1;2055:30;;2095:20;2125:9;2144:17;2185:7;;;;;;;;;;;2164:43;;;:45;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2164:45:26;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2164:45:26;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2164:45:26;;;;;;;;;;;;;;;;2144:65;;2270:1;2266:5;;2261:356;2277:9;2273:1;:13;2261:356;;;2322:42;2333:15;2350:10;2362:1;2322:10;:42::i;:::-;2307:57;;2407:7;;;;;;;;;;;2386:38;;;2425:12;2386:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2386:52:26;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2386:52:26;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2386:52:26;;;;;;;;;;;;;;;;2378:96;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2511:9;2496:24;;:12;:24;;;2488:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2594:12;2582:24;;2288:3;;;;;;;2261:356;;;1890:733;;;;;;:::o;491:345:12:-;654:7;677;694:9;713;744:37;759:16;777:3;744:14;:37::i;:::-;732:49;;;;;;;;;;;;798:31;808:11;821:1;824;827;798:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;798:31:12;;;;;;;;791:38;;;;;491:345;;;;;:::o;1223:921::-;1332:7;1341:9;1352;1652:3;1646:4;1642:14;1714:4;1700:12;1696:23;1684:10;1680:40;1674:47;1669:52;;1779:4;1765:12;1761:23;1749:10;1745:40;1739:47;1734:52;;2123:4;2114;2100:12;2096:23;2084:10;2080:40;2074:47;2070:58;2065:63;;1608:530;;;;;;:::o","source":"pragma solidity >=0.5.0 <0.7.0;\nimport \"../base/Module.sol\";\nimport \"../base/OwnerManager.sol\";\nimport \"../common/Enum.sol\";\nimport \"../common/SignatureDecoder.sol\";\n\n\n/// @title Gnosis Safe State Module - A module that allows interaction with statechannels.\n/// @author Stefan George - <stefan@gnosis.pm>\n/// @author Richard Meissner - <richard@gnosis.pm>\ncontract StateChannelModule is Module, SignatureDecoder {\n\n    string public constant NAME = \"State Channel Module\";\n    string public constant VERSION = \"0.1.0\";\n\n    // isExecuted mapping allows to check if a transaction (by hash) was already executed.\n    mapping (bytes32 => uint256) public isExecuted;\n\n    /// @dev Setup function sets manager\n    function setup()\n        public\n    {\n        setManager();\n    }\n\n    /// @dev Allows to execute a Safe transaction confirmed by required number of owners.\n    /// @param to Destination address of Safe transaction.\n    /// @param value Ether value of Safe transaction.\n    /// @param data Data payload of Safe transaction.\n    /// @param operation Operation type of Safe transaction.\n    /// @param nonce Nonce used for this Safe transaction.\n    /// @param signatures Packed signature data ({bytes32 r}{bytes32 s}{uint8 v})\n    function execTransaction(\n        address to,\n        uint256 value,\n        bytes memory data,\n        Enum.Operation operation,\n        uint256 nonce,\n        bytes memory signatures\n    )\n        public\n    {\n        bytes32 transactionHash = getTransactionHash(to, value, data, operation, nonce);\n        require(isExecuted[transactionHash] == 0, \"Transaction already executed\");\n        checkHash(transactionHash, signatures);\n        // Mark as executed and execute transaction.\n        isExecuted[transactionHash] = 1;\n        require(manager.execTransactionFromModule(to, value, data, operation), \"Could not execute transaction\");\n    }\n\n    function checkHash(bytes32 transactionHash, bytes memory signatures)\n        internal\n        view\n    {\n        // There cannot be an owner with address 0.\n        address lastOwner = address(0);\n        address currentOwner;\n        uint256 i;\n        uint256 threshold = OwnerManager(address(manager)).getThreshold();\n        // Validate threshold is reached.\n        for (i = 0; i < threshold; i++) {\n            currentOwner = recoverKey(transactionHash, signatures, i);\n            require(OwnerManager(address(manager)).isOwner(currentOwner), \"Signature not provided by owner\");\n            require(currentOwner > lastOwner, \"Signatures are not ordered by owner address\");\n            lastOwner = currentOwner;\n        }\n    }\n\n    /// @dev Returns hash to be signed by owners.\n    /// @param to Destination address.\n    /// @param value Ether value.\n    /// @param data Data payload.\n    /// @param operation Operation type.\n    /// @param nonce Transaction nonce.\n    /// @return Transaction hash.\n    function getTransactionHash(\n        address to,\n        uint256 value,\n        bytes memory data,\n        Enum.Operation operation,\n        uint256 nonce\n    )\n        public\n        view\n        returns (bytes32)\n    {\n        return keccak256(abi.encodePacked(byte(0x19), byte(0), this, to, value, data, operation, nonce));\n    }\n}\n","compiler":{"name":"solc","version":"0.5.14+commit.01f1aaa4.Emscripten.clang"},"networks":{},"schemaVersion":"2.0.3","updatedAt":"2022-11-11T08:20:54.752Z"}